Todas as aulas:
Listas > Curso Quebra-cabeça da Blockchain - Estou aqui pela tecnologiaOlá Avatar,
Eu havia prometido, no final da aula passada, que falaríamos do ataque de um node malicioso, pensando melhor, precisaremos avançar mais algumas aulas antes de tratarmos do ataque. Sigamos…
Considere que um novo bloco (bloco 1001) foi adicionado a nossa blockchain, minerado pelo Node 6. Enquanto isso, lá do outro lado da nossa rede p2p o Node 5 também minerou um novo bloco (bloco 1001) com uma frase diferente da minerada pelo Node 6 e agora temos 2 blocos 1001 diferentes. Na prática, isso gerou uma bifurcação em nossa blockchain, conforme a imagem abaixo.
Ver maisAntes de adicionarmos o próximo bloco 1002, precisamos decidir por qual ramo seguir, no verde ou no amarelo? Para que essa decisão seja tomada , todos os Nodes precisam entrar em consenso e concordar por seguir por apenas um dos caminhos. Veja, na nossa rede p2p existem 8 Nodes, ou seja, todas as 8 pessoas que precisam concordar com o caminho verde ou com o caminho amarelo.
Para que essa decisão seja tomada, precisamos fazer um combinado entre todos, na nossa blockchain: Tamanho é documento! Sempre escolheremos o ramo com maior número de blocos. Essas regras e combinados que todos os Nodes precisam seguir para que seja atingido o consenso é chamado de “protocolo de consenso”.
Você deve ter notado que ambos os ramos estão com o mesmo número de blocos, então precisaremos aguardar até que um novo bloco seja minerado. Se for minerado no ramo verde, descartaremos o ramo amarelo e vice-versa.
Pra você, Node em qualquer ponto dentro da rede, ao receber um nova blockchain do seu vizinho: deve comparar com a sua cópia da blockchain, e se a sua tiver mais blocos ficar com a sua, se a do vizinho for maior, ficar com a do vizinho. E se forem do mesmo tamanho? Nesse caso você fica com as duas até que um novo bloco seja adicionado.
Portanto, se o próximo bloco minerado for no ramo amarelo, fica como na imagem, o ramo verde é descartado e nossa blockchain pode seguir adicionando novos blocos.
Ver maisÉ isso ! Se algo não ficou claro, por favor comente. Estamos aprendendo juntos ;)