Principais conclusões
Um algoritmo de consenso é um conjunto de regras que permite que todos os participantes de uma rede blockchain concordem sobre uma única versão do histórico de transações.
Prova de trabalho (usada pelo Bitcoin) e prova de participação (usada pela Ethereum) são hoje os dois algoritmos de consenso mais amplamente adotados.
Cada mecanismo usa um tipo diferente de participação para desencorajar comportamento desonesto: poder computacional e eletricidade na prova de trabalho, e criptomoeda bloqueada na prova de participação.
A escolha do algoritmo de consenso afeta a segurança de uma rede, o uso de energia, a descentralização e a capacidade de escalar.
Introdução
Um algoritmo de consenso é um mecanismo que permite que usuários ou máquinas coordenem em um ambiente distribuído. Ele precisa garantir que todos os agentes do sistema possam concordar sobre uma única fonte de verdade, mesmo se alguns agentes falharem ou agirem de forma desonesta. Essa propriedade às vezes é chamada de Tolerância a Falhas Bizantinas.
Em uma configuração centralizada, uma única entidade tem poder sobre o sistema e pode fazer mudanças conforme necessário. Mas em uma configuração descentralizada, o desafio é diferente. Quando muitos participantes independentes mantêm um banco de dados compartilhado, eles precisam de um jeito de concordar sobre quais entradas serão adicionadas.
Superar esse desafio em um ambiente em que estranhos não confiam um no outro foi um desenvolvimento crucial na criação de blockchains. Este artigo explica como os algoritmos de consenso funcionam e por que eles são essenciais para o funcionamento das redes de criptomoedas.
Algoritmos de Consenso e Criptomoeda
Em criptomoedas, os saldos dos usuários são registrados em um banco de dados compartilhado chamado blockchain. É essencial que cada nó da rede mantenha uma cópia idêntica desse banco de dados. Se as cópias forem diferentes, você acaba com informações conflitantes, o que mina o propósito da rede.
A criptografia de chave pública garante que os usuários não consigam gastar o dinheiro uns dos outros. Mas ainda precisa existir uma única fonte de verdade em que os participantes da rede confiam para confirmar se os fundos já foram gastos.
Satoshi Nakamoto, o criador do Bitcoin, propôs um sistema de prova de trabalho (PoW) para coordenar os participantes. Esse sistema PoW é um tipo de algoritmo de consenso. Antes de mergulhar nele, porém, vamos ver as características comuns compartilhadas pela maioria dos algoritmos de consenso.
Uma participação
Validadores devem fornecer uma participação: algo de valor que desencoraja comportamento desonesto. Se trapacearem, perdem sua participação. A participação pode ser poder computacional, criptomoeda ou reputação.
Uma recompensa
Validadores também recebem uma recompensa por participação honesta, geralmente composta por taxas de transação ou por moedas recém-criadas.
Transparência
Por fim, o sistema deve ser transparente, para que qualquer pessoa possa verificar se um validador está se comportando corretamente.
Tipos de algoritmos de consenso
Prova de trabalho (PoW)
A prova de trabalho foi implementada pela primeira vez no Bitcoin. Em um sistema PoW, validadores (chamados mineradores) repetidamente fazem hash de dados até produzirem um resultado que atenda às condições da rede. Uma função hash pega qualquer entrada e produz uma saída de tamanho fixo. A mesma entrada sempre gera a mesma saída, mas alterar nem que seja um único caractere muda o resultado inteiramente.
A rede define um alvo: por exemplo, um hash de bloco deve começar com um certo número de zeros. Os mineradores precisam tentar trilhões de entradas diferentes para encontrar uma que produza um hash qualificado. Isso exige grandes quantidades de hardware especializado e eletricidade.
Em PoW, sua participação é o custo desse hardware e eletricidade. Máquinas ASIC projetadas para mineração não têm utilidade fora de redes de criptomoedas, então os mineradores são altamente incentivados a seguir as regras. Para qualquer outra pessoa, verificar se um minerador produziu um bloco válido exige apenas um único cálculo de hash.
A prova de trabalho permanece o mecanismo de consenso do Bitcoin e fornece um alto grau de segurança graças ao custo computacional em si.
Prova de participação (PoS)
A prova de participação foi proposta como uma alternativa à prova de trabalho. Em vez de comprometer recursos computacionais, validadores bloqueiam criptomoeda como garantia. Não é necessário hardware especializado; um computador comum pode participar.
Validadores propõem ou votam no próximo bloco. Se um bloco for aceito, o validador ganha uma parte das taxas de transação. Se um validador tentar trapacear propondo transações inválidas, perde parte ou todo o valor de sua garantia bloqueada. Esse mecanismo, chamado slashing (punição), substitui o custo de energia da prova de trabalho por uma penalidade financeira direta.
Em setembro de 2022, a Ethereum mudou de prova de trabalho para prova de participação, um evento conhecido como The Merge. Isso fez com que a Ethereum se tornasse uma das maiores redes em funcionamento com prova de participação e reduziu significativamente seu consumo de energia. Muitas outras grandes blockchains agora também usam variantes de prova de participação.
Um desenvolvimento possibilitado pela prova de participação é o staking líquido, que permite que os stakers recebam um token representativo pelos fundos bloqueados e o usem em outros lugares na finança descentralizada. Isso expandiu a participação no staking para além de quem consegue arcar com os requisitos mínimos para operar um nó validador completo.
Prova de participação delegada (DPoS)
Na prova de participação delegada, os detentores de tokens votam em um conjunto de delegados que ficam responsáveis por validar transações. O número de delegados ativos geralmente é pequeno, o que torna a produção de blocos mais rápida do que em sistemas tradicionais de prova de participação.
Os detentores de tokens delegam seu poder de voto em vez de operarem nós validadores. Delegados que agirem de forma desonesta podem ser retirados por votação da comunidade, criando uma forma de responsabilização reputacional junto com a participação econômica. O DPoS é usado em várias redes de blockchain e prioriza throughput (vazão de transações) em vez de máxima descentralização.
Perguntas frequentes
O que é um algoritmo de consenso de blockchain?
Um algoritmo de consenso de blockchain é um conjunto de regras que permite que todos os participantes de uma rede distribuída concordem sobre o estado do livro-razão. Ele garante que cada nó mantenha o mesmo histórico de transações, sem precisar de uma autoridade central para coordená-los.
Qual é a diferença entre prova de trabalho e prova de participação?
A prova de trabalho exige que os validadores gastem poder de computação e eletricidade para produzir blocos válidos. A prova de participação exige que validadores bloqueiem criptomoeda como garantia. Ambas as abordagens criam incentivos econômicos para comportamento honesto, mas a prova de participação usa muito menos energia.
A Ethereum ainda usa prova de trabalho?
Não. A Ethereum mudou para prova de participação em setembro de 2022 por meio de uma atualização chamada The Merge. O Bitcoin continua usando prova de trabalho.
Uma rede de prova de participação pode ser atacada?
Uma rede de prova de participação pode, potencialmente, ser atacada por uma entidade que controle uma grande proporção do total de participação. Mecanismos de slashing são projetados para tornar esses ataques muito caros, já que o atacante perderia uma parte significativa de seus fundos em participação se for pego tentando manipular o livro-razão.
Por que diferentes blockchains usam diferentes algoritmos de consenso?
Mecanismos de consenso diferentes envolvem trade-offs entre segurança, descentralização, uso de energia e velocidade de transação. A prova de trabalho é considerada altamente segura, mas consome muita energia. A prova de participação é mais eficiente em energia, mas introduz economias diferentes para os validadores. Os projetos escolhem mecanismos com base em suas prioridades para esses fatores.
Considerações finais
Algoritmos de consenso são a base que torna as blockchains distribuídas possíveis. Eles permitem que participantes que não se conhecem ou não confiam uns nos outros concordem sobre um histórico compartilhado de transações, sem uma autoridade central. Entender como o consenso funciona é fundamental para entender como as blockchains operam e permanecem seguras.
Leitura adicional
Prova de Trabalho (PoW) vs. Prova de Participação (PoS)
O que é o Trilema da Blockchain?
O que torna uma blockchain segura?
O que é Bitcoin e como funciona?
Consenso híbrido PoW/PoS explicado
