Governança no Bitcoin e os dois tipos de consenso

12/01/2018

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 descentralizadas.

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.

1. Regras de consenso ou regras rígidas

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.

2. Acordo Geral

Consenso também é usado para descrever uma situação em que desenvolvedores e técnicos ponderam, por argumentos, sobre um tema. Essas discussões servem para construção de decisões técnicas que visam melhorar o desempenho da rede. Esse processo, apesar de buscar o consenso, cria, muitas vezes, um cenário de cacofonia tecnocrata. 

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:

Mapeando as partes interessadas da Bitcoin

A comunidade é constituída de diferentes agentes, com objetivos, desejos e incentivos diferentes. A interação entre eles é complexa e o "bem da rede" pode significar diferentes coisas, dependendo de qual perspectiva é acionada.


  • Mineradores

Mineradores são os agentes responsáveis pela validação das transações e inclusão de blocos na cadeia de blocos, a partir de um grande esforço computacional. Como recompensa por seus esforços, os mineradores recebem da rede atualmente 12,5 bitcoins da por bloco minerado e uma pequena taxa de incentivo dos usuários que fazem as transações. Essa recompensa diminui à cada 4 anos pela metade. 

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:


  • Nós

Todos os mineradores precisam processar nós. Entretanto, nem todos os nós participam da mineração. Um nó completo é um programa que ao ser rodado, ajuda na validação das transações e dos blocos e em seguida, transmite-os para novos nós completos. Uma rede com poucos nós, tornaria inviável que usuários distribuídos no mundo inteiro, pudessem conectar-se uns com os outros, através de uma rede peer-to-peer.

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.



  • Desenvolvedores

 Bitcoin é um software livre e como tal, na prática, está aberto para qualquer desenvolvedor contribuir com o projeto através de uma BIP.  Porém, apesar de inúmeros desenvolvedores, distribuidos pelo mundo poderem sugerir mudanças, apenas um seleto grupo é responsável pelo gerenciamento do Bitcoin. 

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.


  • Empresas

Empresas, tais como, exchanges, wallets e fornecedoras de hardware de mineração não participam formamente da tomada de decisão do Bitcoin. Entretanto, podemos ver, com o fork do BitcoinCash, que elas são responsáveis por prestar apoio e fornecer a infraestrutura para os investidores. Dessa forma, se uma moeda não fornece os requisitos de segurança para os usuários, por exemplo, essas empresas podem escolher não trabalhar com elas. 


  • Investidores, usuários e outras partes interessadas

Esse grupo, apesar de ser o responsável pelo dinheiro que cria o ecossistema das moedas digitais, também não participa formalmente da tomada de decisão. Ele simplesmente pode fornecer análises técnicas, comentários e apoio financeiro, social e político.

Conclusão:

Os mineradores e nós completos são responsáveis pela validação das transações e dos blocos. Eles são os responsáveis por assegurar que as transações são verdadeiras e que os fundos não foram gastos mais de uma vez. Tanto o processo de manutenção do protocolo de consenso, adicionando por exemplo, outras mêtricas,  como a manutenção de outras características da rede, cria inúmeras discussões em que, envolvem-se, empresas, desenvolvedores e usuários.

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.

Fontes:

https://en.bitcoin.it/wiki/Consensus

https://bitcoincore.org/en/team/

https://en.bitcoin.it/wiki/Bitcoin_Improvement_Proposals

https://insights.dcg.co/consensus-mechanisms-in-bitcoin-1d4f0cc9105b