Esse texto é uma tradução livre, modificada e aumentada do artigo: The (short) Guide to Blockchain Consensus Protocols, disponível no CoinDesk e escrito por Amy Castor.
Este pequeno guia sobre protocolos de consenso da Blockchain explora 8 protocolos de consenso que buscam resolver os problemas da prova de trabalho do Bitcoin.
Moedas digitais usam cadeiras de blocos pública para registrar informações. Nesse caso, ao invés de depender de uma autoridade para garantir a veracidade dessa informação, as moedas digitais funcionam a partir de uma rede que mantém um consenso sobre a veracidade das transações que são registradas na cadeia de blocos.
No caso das moedas, as informações giram em torno da veracidade de uma transação: se ela não é fraudulente ou se os mesmos fundos não foram usados mais de uma vez. Para atingir esse consenso, uma série de parâmetros são usados, criando um protocolo de consenso.
Um protocolo de consenso, como a prova de trabalho (proof of work/PoW) do Bitcoin faz duas coisas: garante que o próximo bloco em uma cadeia de blocos seja o único e única versão da verdade, e mantém adversários poderosos, que querem atacar a cadeia, longe do sistema.
Na prova de trabalho, os mineradores competem para resolver um enigma criptográfico extremamente difícil e adicionar o próximo bloco (um conjunto de transações) na blockchain.
No entanto, embora seja uma obra-prima como já se mostrou, a prova de trabalho do bitcoin não é perfeita. As críticas mais comuns incluem os enormes gastos com energia computacional, o problema da escalabilidade (a confirmação da transação leva cerca de 10 a 60 minutos) e que a maior parte da mineração é centralizada, deixando a rede sucetível à ataques.
O criador de Bitcoin, Satoshi Nakamoto, nos despertou para o potencial da blockchain, mas isso não significa que não possamos continuar buscando algoritmos de consenso mais rápidos, menos centralizados e mais eficientes em termos energéticos.
Embora não seja uma lista exaustiva, listamos oito diferentes algoritmos de consenso da blockchain,
1. Prova de Trabalho (Proof of Work/PoW)
A prova de trabalho é o primeiro mecanismo de consenso distribuído criado. Na PoW, todos os computadores da rede (mineradores) são encarregados de manter a segurança da cadeia. Os mineradores competem para resolver um difícil problema matemático - chamado hash- cuja dificuldade é ajustável e conhecida, de modo que, uma solução seja sempre encontrada á cada 10 minutos. O computador que encontra a resposta, informa a solução para todos os outros computadores e ganha o direito de adicionar um novo bloco à cadeia de blocos.
Como recompensa pelo poder computacional, o minerador recebe uma parcela de bitcoins recém-criados (atualmente 12,5 bitcoins por bloco), além de uma taxas de transação que os usuários pagaram para que suas transações sejam incluídas no bloco mais rapidamente.
Essa quantidade, conhecida como recompensa de bloco, reduz aproximadamente a cada 4 anos. Originalmente, a recompensa por mineração do bloco era de 50 bitcoins; diminuindo pela metade em novembro de 2012. Quando a recompensa chegar à 0, apenas as taxas pagas pelos usuários serviram como recompensa pelo trabalho dos mineradores.
Um agente mal-intencionado poderá adicionar uma transação fraudulenta caso ele detenha mais de 50% do poder computacional da rede. Essa é, segundo o white paper do Bitcoin, sua única fraqueza: o ataque 51%.
Exemplos:
Bitcoin (BTC) -2008
Litecoin (LTC) -2011
2. Prova de Participação (Proof of Stake/ PoS)
A alternativa mais comum à prova de trabalho é prova de participação.
Neste tipo de algoritmo de consenso, em vez de investir em caros equipamentos de processamento computacional em uma corrida para incluir blocos na cadeia, o "validador" é aquele que investe nas moedas do sistema.
Observe o termo validador. Isso porque não existe a criação de moeda (mineração) na prova da participação. Em vez disso, todas as moedas existem desde o primeiro dia, e os validadores (também chamados de partes interessadas, porque detêm participação no sistema) são pagos estritamente pelas taxas de transação.
Na prova de participação, sua chance de ser escolhido para criar o próximo bloco depende da fração de moedas no sistema que você possui (ou seja reservado para apostar). Um validador com 300 moedas terá três vezes mais chances de ser escolhido do que alguém com 100 moedas.
Uma vez que um validador cria um bloco, esse bloco ainda precisa ser incluído na cadeia de blocos. Diferentes sistemas de prova de participação lidam de diferentes formas com isso. Em Tendermint, por exemplo, cada nó do sistema tem que assinar um bloco até que ele alcance um voto marjoritário, enquanto em outros sistemas, um grupo aleatório de assinantes é escolhido.
Um invasor precisaria de mais de 50% das moedas para processar as transações necessárias de forma confiável; A compra destes aumentaria o preço e tornaria esse esforço proibitivamente caro. Mas existe outro problema: o que desencoraja um validador à criar dois blocos e reivindicar dois conjuntos de taxas de transação? E o que desencora um assinante de assinar ambos os blocos? Este tem sido chamado de problema "nada em jogo". Um participante com nada a perder não tem motivos para não se comportar mal.
Embora o nó que vai validar o bloco seja aleatório no longo prazo, ele é altamente previsível. Isso significa que a rede sabe onde o próximo bloco deve ser forjado. Se um nó não validar o bloco, ele é excluído da rede por um período de tempo.
No campo crescente da "criptoeconomia", os engenheiros do blockchain estão explorando maneiras de enfrentar este e outros problemas. Uma resposta é exigir que um validador bloqueie sua moeda em um tipo de cofre virtual. Se o validador tentar duplicar o sinal ou o sistema, essas moedas são cortadas.
Exemplos:
Peercoin (PPC) - 2012
NXT (NXT) - 2013
Blackcoin (BLK) - 2014
A prova da estaca é agora um mecanismo de consenso bem estabelecido, mas não é freqüentemente usado na sua forma original. Duas de suas variações são: LPoS e DPoS.
Comparação entre PoW e PoS:
3. Prova de Estaca Garantida (Leased Proof of Stake/ LPoS)
Nos PoS clássico, é improvável que os detentores de pequenos saldo consigam validar um bloco - assim como pequenos mineiros, com baixo hashrate também não conseguem minerar um bloco no PoW. Na prática, em ambos os casos, que a manutenção da rede depende de número limitado de jogadores com grandes poderes (muitas moedas ou muito poder computacional). Porém, como é sábido, quão mais distribuída for a rede, mais segurança ela terá contra ataques de inúmeros tipos.
A LPoS consegue isso, permitindo que os titulares alugem seus saldos à outros usuários. Os fundos alugados permanecem no controle total do titular e podem ser movidos ou gastos a qualquer momento (quando termina a locação). As moedas arrendadas aumentam o "peso" de um nó, aumentando suas chances de adicionar um bloco à cadeia de blocos. Todas as recompensas recebidas são compartilhadas proporcionalmente com os arrendatários.
Uma das moedas que implementam esse protocolo, é a Waves.
4. Prova de Estaca Delegada (Delegated Proof of Stake/DPoS)
Com o DPoS, os detentores de moedas usam seus saldos para eleger uma lista de nós que terão a oportunidade de validar novas transações e adicioná-las à cadeia de blocos. Isso envolve todos os detentores de moedas, embora a recompensa não seja distribuida igualmente, da mesma maneira que a LPoS.
Os titulares também podem votar nas mudanças dos parâmetros da rede, dando-lhes maior influência e propriedade sobre a rede.
Exemplos:
BitShares (BTS) -2014
Lisk (LSK) - 2016
5.Prova de Atividade (Proof of Activity/ PoA)
Para evitar a hiperinflação (que acontece quando há muitas moedas inundando o sistema), o bitcoin produzirá apenas 21 milhões de bitcoins. Isso significa que, em algum momento, o subsídio de recompensa dos mineradores de bitcoin terminará e eles só receberão as taxas de transação.
Algumas pessoas dizem que isso pode causar problemas de segurança resultantes de uma "tragédia dos comuns", onde as pessoas agem por interesse próprio e prejudicam o sistema. Assim, a prova da atividade foi criada como uma estrutura de incentivo alternativa ao bitcoin. A prova de atividade é uma abordagem híbrida que combina a prova de trabalho e a prova de participação.
Na prova de atividade, a mineração começa da mesma forma que a prova de trabalho tradicional, com a corrida dos mineradores para resolver um enigma criptográfico. Dependendo da implementação, os blocos minerados podem não contêm nenhuma transação (eles são modelos), então o bloco vencedor somente conterá um cabeçalho e o endereço de recompensa do mineiro.
Neste ponto, o sistema muda para prova de participação. Com base nas informações do cabeçalho, um grupo aleatório de validadores é escolhido para assinar o novo bloco. Quanto mais moedas no sistema possui um validador, maior é a chance de ser escolhido. O modelo torna-se um bloco de pleno direito assim que todos os validadores o assinarem.
Se alguns dos validadores selecionados não estiverem disponíveis para completar o bloco, o próximo bloco vencedor é selecionado, um novo grupo de validadores é escolhido, e assim por diante, até que um bloco receba a quantidade correta de assinaturas. As tarifas são divididas entre o minerador e os validadores que assinaram o bloco.
As críticas à prova de atividade são as mesmas que para a prova de trabalho (muita energia é necessária para minerar os blocos) e a prova de participação (não há nada que dissuada um validador à uma assinatura dupla).
Exemplos:
Decred (DCR) -2016
6. Prova de Queimadura (Proof of Burn/ PoB)
Com prova de queimadura, em vez de despejar dinheiro em equipamentos de computador caros, você "queima" moedas enviando-os para um endereço onde eles são irrecuperáveis. Ao comprometer suas moedas para terra do nunca, você ganha o previlégio de um tempo de vida no sistema que funciona a partir de um processo de seleção aleatória.
Dependendo de como a prova de queima é implementada, os mineradores podem queimar a moeda nativa ou a moeda de uma cadeia alternativa, como bitcoin. Quanto mais moedas você queima, mais chances você tem de ser selecionado para explorar o próximo bloco.
Ao longo do tempo, sua participação no sistema decai, então, eventualmente, você precisa queimar mais moedas para aumentar suas chances de ser selecionado na loteria. (Isso imita o processo de mineração de bitcoin, onde você tem que investir continuamente em equipamentos de computação mais modernos para manter o poder de hashing).
Enquanto a prova de queimadura é uma alternativa interessante à prova de trabalho, o protocolo ainda desperdiça recursos desnecessariamente. Outra crítica é que o poder de mineração simplesmente vai para aqueles que estão dispostos a queimar mais dinheiro.
A única moeda que usa prova de queima é Slimcoin (SLM), uma cryptocurrency baseada na Peercoin. Ela usa uma combinação de prova de trabalho, prova de estaca e prova de queima, mas ela ainda está semi-ativa neste momento.
7. Prova de Capacidade (Proof of Capacity/ PoC)
Como já vimos, a maioria desses protocolos alternativos empregam algum tipo de esquema de pagamento por jogo. A prova de capacidade não é diferente, mas aqui você "paga" com espaço no disco rígido. Quanto mais espaço no disco rígido você tiver, melhor será a chance de minerar o próximo bloco e ganhar a recompensa do bloco.
Antes da mineração em um sistema de prova de capacidade, o algoritmo gera grandes conjuntos de dados conhecidos como plots, que você armazena em seu disco rígido. Quanto mais plots você tem, melhor será sua chance de encontrar o próximo bloco da cadeia.
Ao investir em terabytes de espaço no disco rígido, você compra uma chance melhor de criar blocos duplicados e garimpar o sistema. Mas com prova de capacidade, ainda temos o problema de nada em jogo para deter os atores ruins.
As variações da prova de capacidade incluem prova de armazenamento e prova de espaço.
Exemplos:
Burstcoin (BURST) - 2014
8. Prova do Tempo Decorrido (Proof of Elapsed Time/ PoET)
Chipmaker Intel apresentou seu próprio protocolo de consenso alternativo chamado prova do tempo decorrido. Este sistema funciona de forma semelhante à prova de trabalho, mas consome muito menos eletricidade.
Além disso, em vez de ter participantes que resolvem um enigma criptográfico, o algoritmo usa um ambiente de execução confiável (TEE) - como o SGX - para garantir que os blocos sejam produzidos de forma aleatória, mas sem o trabalho necessário.
A abordagem da Intel é baseada em um tempo de espera fornecido através do TEE. De acordo com a Intel, o algoritmo poof-of-the-time-time escala em milhares de nós e funcionará eficientemente em qualquer processador Intel que suporte o SGX.
O único problema com este protocolo é que ele exige que você confie na Intel - e a blockchain pública não é desenvolvida exatamente para evitar colocar a confiança em terceiros?
Existem ainda outros Protocolos, como:
Prova de Importância (Proof-of-Importance/ ) - exemplo: NEM (XEM)
Prova de Participação Veloz (Proof-of-Stake-Velocity)- exemplo: Reddcoin (RDD)
Fontes:
The (short) Guide to Blockchain Consensus Protocols, Amy Castor.
https://blog.wavesplatform.com/review-of-blockchain-consensus-mechanisms-f575afae38f2
https://www.slideshare.net/hecfran/cryptocurrencies-overview