O Consenso de Nakamoto é o nome do primeiro sistema de consenso gerado para criptomoedas, cujo nome deriva de seu criador, Satoshi Nakamoto, que também desenvolveu o Bitcoin.
Esse sistema é o que possibilita o funcionamento do Bitcoin e, como sistema de consenso, reúne uma série de funções fundamentais para viabilizar a implantação e operação dessa criptomoeda.
O que é o Consenso de Nakamoto?
O Consenso Nakamoto é na verdade a união de vários algoritmos que, aplicados como um todo, permitem que o Bitcoin funcione como um rede descentralizada alimentada por um protocolo de comunicação P2P, um sistema de mineração para geração de criptomoedas, validação de operações e geração de histórico de operações dentro da rede.
Então, basicamente, o Consenso de Nakamoto compreende:
- El Algoritmo de Prova de Trabalho (PoW), considerado o primeiro algoritmo de consenso com base em uma prova de trabalho com um custo computacional associado.
- Un Sistema de comunicação P2P. inicialmente, Bitcoin utilizou um sistema baseado no protocolo kademlia, mas atualmente evoluiu e utiliza um sistema derivado do Protocolo Gossip.
- Um conjunto de regras focadas na validação do trabalho feitas pelos mineradores que fazem parte da rede P2P. Essas regras são o que os mineradores devem cumprir para que seu trabalho seja aceito pela rede de nós. Os nós têm a obrigação de validar esse trabalho, qualquer bloco que esteja fora dessas regras é descartado. A ideia é que todos os nós gerenciem as mesmas regras e as apliquem, criando um consenso sobre o histórico e permitindo gerar uma rede com resistência a ataques bizantinos (BFT).
Desta forma, o Consenso Nakamoto é responsável por fornecer ao Bitcoin as funções e capacidades necessárias para que ele funcione de forma descentralizada e segura.
Como funciona o Consenso de Nakamoto
Agora, vamos analisar um pouco como funciona o Consenso Nakamoto, partindo do seu ponto mais básico: o início da geração de um bloco para a rede.
Quando o Bitcoin se prepara para gerar um novo bloco, a rede comunica esse evento por meio de uma mensagem que diz aos mineradores para começar a gerar um novo bloco, tendo em conta o nível de dificuldade da rede e do alvo.
Neste ponto, os nós e mineradores sabem que o dificuldade e alvo São elementos que fazem parte das regras de validação de blocos dentro do Consenso Nakamoto. Na verdade, esses valores devem ser levados em consideração na hora de gerar um novo bloco para a rede.
Neste ponto, os mineradores já possuem os elementos necessários para iniciar seu trabalho utilizando o algoritmo PoW. Durante seu trabalho, eles organizarão as transações a serem validadas dentro do bloco e, paralelamente, farão gerando os hashes SHA256, que deve atender a meta dada pela rede.
No final do seu trabalho, mineradores criam o bloco seguindo as regras de geração e entregá-lo à rede para verificação pelos nós.
Somente depois que o bloco é verificado, ele é adicionado à cópia do nó do blockchain e uma mensagem é enviada para o restante da rede indicando que um novo bloco foi adicionado, juntamente com uma série de metadados que ajudam o resto da rede a verificar que os dados de geração desse bloco estejam disponíveis e, assim, poder recriar e validar o referido bloco individualmente.
O processo de seleção de blocos
No entanto, a seleção de blocos é possível graças ao cumprimento de uma série de regras.
A primeira regra para selecionar um bloco válido é basicamente uma corrida. Do conjunto de mineradores dentro da rede, apenas aquele que completa um bloco que atinge o alvo dado pela rede será o vencedor da corrida. O prêmio? Emitir o bloco para que ele seja adicionado ao blockchain e assim reivindicar as comissões e a base de moedas do referido bloco.
No entanto, esse resultado só será válido se a segunda regra for verdadeira: o bloco só será adicionado se for cumprido dentro da cadeia mais longa. Cada vez que um bloco é emitido e validado, ele é adicionado ao blockchain, fazendo com que a rede cresça.
Por exemplo, se a rede Bitcoin tiver uma altura de 663.700 blocos e um novo bloco for gerado e validado, a rede terá uma altura de 663.701 blocos.
Mas há um problema. A rede é descentralizada, existem milhares de nós e mineradores todos trabalhando em paralelo, então há momentos em que uma parte da rede pode ter uma altura (663.699 blocos) e a outra pode ser diferente (663.700 blocos). Neste ponto, as regras do Consenso Nakamoto são bem claras: a rede mais longa ganha, então o minerador que deu seu trabalho na rede com uma altura de 663.700 blocos, é quem poderá realmente adicionar seu bloco à rede e reivindicar a recompensa.
Essa regra de “cadeia mais longa” se aplica não apenas aos mineradores e seu trabalho, mas também aos nós e sua sincronização para construir consenso. Se os nós detectarem um hard fork da rede, onde existem duas redes com alturas e históricos diferentes, os nós da rede decidirão manter aquele com maior altura e, portanto, um histórico mais confirmado e maior potencial computacional. Dessa forma, a rede mantém um consenso sobre qual histórico rastrear e proteger.
Por outro lado, as regras de validação garantem que os blocos propostos cumpriram tudo o que é necessário para o algoritmo PoW. Quer dizer, o bloco deve ter os dados e um hash válido, ou então é rejeitado.
Com essas regras simples, o Consenso Nakamoto não apenas protege o histórico da rede, mas também cuida eliminar aquelas histórias que podem ser manipuladas ou que não atendam aos padrões necessários para o bom funcionamento do Bitcoin.
Incentivos e Escassez
Além disso, o Consenso Nakamoto é baseado em dois conceitos-chave: o incentivos e a escassez.
A primeira delas mantém a atividade mineradora na rede, pois são os incentivos que impulsionam o trabalho dos mineradores através do comissões e recompensas em bloco.
O segundo conceito pesa sobre esses incentivos: a escassez. Bitcoin é deflacionário, com um emissão máxima de 21 milhões de moedas. Isso leva a incentivos limitados e emissão monetária, o que torna esses recursos mais apreciados. Como resultado, os mineradores buscam acumular o máximo de poder computacional possível para garantir as maiores recompensas da rede e, consequentemente, proteger a rede.
Em tudo isso, o Bitcoin aplica um sistema deflacionário que rreduz as recompensas em bloco a cada 4 anos ou mais, no que conhecemos como halving. Assim, durante seus primeiros 4 anos, a recompensa do bloco Bitcoin passou de 50 BTC para 25, e atualmente essa recompensa é de 6,25 BTC.
A redução da emissão e o enorme poder computacional acumulado, encarregam-se de tornar o Consenso Nakamoto mais robusto e a segurança da rede mais forte do que nunca.
Consenso de Nakamoto além do Bitcoin
O Consenso de Nakamoto é considerado o primeiro algoritmo de consenso capaz de oferecer uma tolerância total a falhas bizantinas aplicado a uma moeda digital descentralizada. Tal feito não passou despercebido, não só no mundo da computação, mas também na geração de novos projetos de criptomoedas.
Assim, o Consenso Nakamoto foi replicado em outros projetos, por exemplo, Litecoin e mesmo o mesmo Ethereum, que utilizou o Consenso de Nakamoto em sua implementação PoW, e atualmente utiliza uma versão modificada em sua implementação Prova de participação.