Bê-a-bá Cripto: existe um algoritmo de consenso perfeito para blockchains? (parte 1)
A extrema importância dos algoritmos de consenso e quão fundamentais são à aplicação e ao potencial de qualquer moeda ou token em um blockchain geralmente é algo ignorado em qualquer discussão sobre criptomoedas.
Para determinar tudo — desde a segurança da rede à velocidade de confirmação à amigabilidade do ambiente —, algoritmos de consenso ditam como transações são ordenadas e verificadas em um registro distribuído e apresentam um registro da “verdade” durante um período.
Sem um intermediário central, a rede de usuários participantes (nós) que formam um blockchain tem que concordar sobre a validade do que está sendo acrescentado ao registro, usando um conjunto de regras pré-definidas. A maioria dos nós deve chegar a um consenso.
Embora ninguém discorde que o consenso é fundamental à legitimidade de um blockchain, o debate continua em relação ao melhor processo de se chegar a esse consenso.
Primeira opção: Proof-of-Work (PoW)
O problema em certificar a confiabilidade em sistemas descentralizados foi discutido no estudo “O Problema dos Generais Bizantinos”, publicado em 1982.
Um exército bizantino está atacando uma cidade que está cercada. Para avançar, os generais que estão espalhados em volta do perímetro da cidade devem concordar sobre um plano de batalha.
Embora alguns generais desejam atacar, outros querem recuar. Complicando ainda mais a questão, os generais estão tão longe um dos outros que os mensageiros são encarregados da comunicação; um ou mais generais também podem ser traidores.
Para decidir o próximo passo, a maioria (51% ou mais dos generais) deve concordar sobre uma estratégia específica.
Esse Problema dos Generais Bizantinos é análogo à resolução de questões de consenso no blockchain. Os nós devem concordar sobre um conjunto específico de regras e conseguirem avançar ao concordar com uma avaliação específica das informações de transação antes desta ser acrescentada ao blockchain.
Isso não é fácil — milhares de pessoas usam a rede e deve-se certificar que elas concordem sobre a validade das novas informações que são acrescentadas e evitar que maus agentes sabotem o registro e reescrevam o histórico.
Então um tipo específico de algoritmo/mecanismo de consenso deve ser adotado. Esse protocolo permite que um grupo coerente de entidades da rede trabalhem juntos para atualizar o registro de forma segura.
Nas palavras de Vitalik Buterin, cofundador da Ethereum, o propósito de um algoritmo de consenso é “permitir a atualização segura de um estado de acordo com regras de transição específicas e estabelecidas, em que o direito de realizar as transições de estado é distribuída entre alguns grupos”.
Buterin identifica esse grupo como um que contém usuários que podem “ter o direito de realizar, em conjunto, transações por meio de algum algoritmo” e que “devem ser adequadamente descentralizados — ou seja, nenhum único agente ou subgrupos conspiradores de agentes podem controlar a maioria da rede, mesmo se o agente tiver uma grande quantidade de incentivos capitais e financeiros”.
Portanto, o algoritmo de consenso certifica que, por meio da descentralização, o próximo bloco a ser acrescentado ao blockchain é a única versão verdadeira no sistema.
O primeiro protocolo de consenso a surgir na era cripto por meio do blockchain Bitcoin foi “proof-of-work” (PoW).
Esse protocolo requer que cada usuário que valida transações prove que realizou uma ação computacional como uma forma de evitar que a rede seja atacada por spam ou negação de serviço (DDoS).
Cada nó (comumente chamados de “mineradores”) tenta solucionar problemas criptográficos complexos usando seus próprios recursos computacional — quem descobrir a solução confirma a transação e registra o bloco no blockchain.
O minerador vencedor recebe uma recompensa pelo tempo e energia gastos para gerar a solução (um minerador de bitcoin, por exemplo, receberá bitcoins como recompensa).
Esse sistema de recompensa incentiva mineradores a gerar a solução correta e certifica que a rede permaneça segura. Também significa que mineradores estão competindo uns com os outros para criar o próximo bloco de transações.
O problema do Proof-of-Work
Dado o excesso de utilização de recursos computacionais envolvidos na mineração, PoW é considerado custoso, perdulário e ineficaz.
Ter milhares de mineradores trabalhando em apenas uma solução o tempo todo é um uso excessivo de recursos, principalmente porque será o único bloco que tem qualquer transferência de valor é, assim, é o que será solucionado.
Assim, a cada novo bloco minerado, há uma enorme quantidade de subprodutos inúteis. E é custoso. Há um estudo que equalizou o consumo de energia da mineração em bitcoin ao consumo médio de energia na Irlanda, fora as novas criptomoedas que usam alguma derivado do algoritmo PoW.
O hardware utilizado no processo de mineração é um equipamento próprio, avançado e caro.
Tomando como exemplo os ASICs (circuitos integrados de aplicação específica), chips que foram criados especificamente para a mineração de bitcoin e de outras criptomoedas. Grande parte da pesquisa e do desenvolvimento dos ASICs é feita na China, um país onde a energia elétrica é relativamente barata.
Dado que os fabricantes chineses de ASICs possuem incentivos consideráveis para simplesmente minerarem bitcoins sozinhos — e o fazem —, 60 a 70% de todo o poder computacional da taxa de hashes (velocidade de processamento em que um dispositivo de mineração de criptoativos opera) do Bitcoin está na China.
Assim, surge o problema da centralização excessiva de energia — algo que é antiético aos princípios fundadores do blockchain.