O BItcoin é uma moeda descentralizada sem autoridade central que está em constante transformação. Mas como as decisões são tomadas para modificação do protocolo? Saiba como funciona e governança no Bitcoin e os dois tipos de consenso envolvidos na manutenção da rede.
A governança nas moedas digitais é um tema ainda pouco debatido e cercado de incompreensão. Mais de uma vez eu escutei, durante conversas, que nas moedas digitais não há governança ou política, apenas decisões técnicas. Ou ainda que " os caras são muito espertos pra isso". Essas frases demonstram o grande mal-entendido em torno da governança das criptomoedas descentralizada.
Se não há uma autoridade central, como são tomada as decisões de atualização do protocolo? Governança nesse contexto, não é sinônimo de autoridade central e financeira ou centralização. Governança é simplesmente o mecanismo pelo qual se decide como as escolhas devem ser feitas. Uma família, uma igreja, uma nação ou uma moeda digital precisam da governanças para lidar com os entraves da melhor forma possível.
Na prática, isso significa que todos os softwares de moedas digitais precisam ser modificados e adequados frequentemente: menores fees, transações mais rápidas ou maior eficiência energética são algumas das mudanças em discussão no Bitcoin atualmente, por exemplo.
Mas como decidir qual características é válida e desejada? Ou ainda, como elas serão implementadas? Todos os agentes da rede concordam sobre o futuro do software? Um pouco improvável...
Durante 2017, as notícias sobre um possível fork do Bitcoin, chamado atualmente de Bitcoin Cash, evidenciou as controvérsias em torno da governança do Bitcoin e deixou claro que existem pelo menos dois tipos de consenso em jogo. Para melhor compreensão do processo de tomada de decisão dentro do Bitcoin, vamos explicar os dois tipos de consenso envolvidos no Bitcoin e mapear os agentes envolvidos na alteração do protocolo.
Consenso
"Consenso" pode significar diferentes coisas no contexto das moedas digitais. De um lado, está um conjunto rígido de regras que definem os critérios para validação de uma transação e de um bloco, e de outro, há uma série de argumentos que são usados para decidir sobre mudanças no comportamento da rede.
As regras de consenso são o conjunto de regras que formam um protocolo de consenso. Elas são completamente concretas e tangíveis. Todos os nós completos que rodam o Bitcoin Core (protocolo raiz do Bitcoin) usam o conjunto de regras estabelecido por esse cliente para validar as transações e incluir os blocos na cadeia.
O protocolo de consenso do Bitcoin é chamado prova de trabalho e é o responsável pela definição das métricas que tornam uma transação verdadeira. Os nós só aceitam os blocos que estejam no formato estipulado pelo protocolo. Se um minerador, por exemplo, criar um bloco maior do que o permitido, os nós rejeitarão esse bloco por não se enquadrar nas regras de consenso.
A adição de novas regras ao protocolo de consenso pode ser feita através de um softfork, já a remoção de qualquer regra de consenso, requer um hardfork. Apenas as regras que dizem respeito à validação dos blocos e das transações são consideradas regras do consenso.
Modificações em outras regras do comportamento do protocolo não são consideradas regras de consenso. As regras de consenso são assim chamadas porque o protocolo Bitcoin requer que todos os participantes tenham consenso quanto às regras de consenso. Se houver uma discórdia sobre as regras de consenso, então a moeda se bifurca (fork), criando uma moeda independente.
No caso do Bitcoin, caso algum usuário queira sugerir uma mudança no protocolo, ela deve ser feito através de uma BIP (Bitcoin Improvement Proposal/Proposta de Melhoria do Bitcoin) no Github. Esse diagrama demonstra como uma proposta é feita e encaminhada:
Com a popularização do Bitcoin e o aumento das transações, a mineração em GPU e CPU deixaram de ser possível e hardwares de mineração poderosos começaram a ser desenvolvidos. A crescente dificuldade da mineração e o alto custo dos hardwares, criaram um cenário em que cinco grandes pools de mineração controlam 77% do poder de hash.
Os mineradores são os únicos capazes de recurar a implementação de um BIP que tenha sido sido implementado. Ao mesmo tempo, eles são sempre livres para alocar o poder computacional em outras pools ou em outras moedas.
No blockchain.info, é possível visualizar a distribuição do hash entre as pools de mineração:
Manter um nó completo significa ajudar a rede Bitcoin. Entretanto, os nós não recebem recompensa por seu trabalho e manter um nó funcionando tem custos energéticos que precisam ser levados em conta.
A BitNode mapeia os nós completos pelo mundo. Com essa ferramenta é possível observar a distribuição dos nós, a concentração deles e as característica do protocolo que está sendo rodado.
No início, Satoshi Nakamoto era o único responsável pelo desenvolvimento do protocolo Bitcoin. Por mais que ele tivesse ajuda de importantes desenvolvedores, como Hal Finney, apenas Nakamoto poderia modificar o protocolo. Em abril de 2011, sem muitas explicações, Nakamoto pública que está interessado em outros projetos e então transfere o controle sobre o repositório ao maior contribuidor do código, Gavin Andresen. Andresen compartilha o controle sobre o código com outros quatro desenvolvedores: Pieter Wuille, Wladimir van der Laan, Gregory Maxwell e Jeff Garzik. Garantindo que, caso ele fosse atropelado, o projeto não morreria.
Atualmente, a equipe de desenvolvimento oficial do Bitcoin Core é formada por 17 pessoas: Paveljanik, Michael Ford, BtcDrak, Suhas Daftuar, Johnson Lau, Patrick Strateman, Nicolas Dorier, Eric Lombrozo, Peter Todd, Jorge Timón, Gregory Maxwell, Luke-Jr, Pieter Wuille, Cory Fiedls, Marco Falke, Jonas Schnelli e Wladimir van der Lann.
No caso das moedas digitais que usam o algoritimo de consenso da prova de trabalho, os mineradores são sempre os agentes com maior força, já que são eles os responsáveis por validar as transações e incluí-las no bloco.