top of page

Bitcoin Improvement Proposal (BIP): como o Bitcoin é atualizado



O Consenso no Bitcoin


A imutabilidade enquanto feature da blockchain faz com que muitas pessoas acreditem que o código do Bitcoin também seja imutável. Mas a sobrevivência de uma criptomoeda exige a melhoria constante de seu protocolo: menores fees, transações mais rápidas e anônimas e outros ajustes precisam ser constantemente discutidos e implementados.


Como o protocolo Bitcoin é atualizado? Tudo pode ser modificado? Como é decidido qual proposta será escolhida? Todos os agentes da rede concordam sobre o futuro do protocolo? Pouco provável. Se a comunidade não concorda, o que é feito para atingir o consenso sem recorrer à autoridades centrais?



Os 02 tipos de Consenso no Bitcoin 🤝


Em 2017, as notícias sobre o hardfork do Bitcoin Cash, evidenciaram as controvérsias em torno da governança do Bitcoin e deixaram claro que existem pelo menos dois tipos de consenso em jogo. De um lado, há 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 processos que são seguidos para atualizar o protocolo Bitcoin.


O primeiro consenso diz respeito às regras de validação dos blocos e das transações. Todos os nós, ao rodarem um cliente (como o Bitcoin Core) devem concordar com essas regras estipuladas por ele para validar as transações. Os nós só aceitam os blocos e transações que estão no formato estipulado pelas regras de consenso. Se um minerador cria um bloco maior do que o permitido pela regra ou em um formato diferente, os nós irão recusá-lo.


Mas a palavra consenso também é usada para descrever a situação em que desenvolvedores, mineradores e usuários ponderam e votam sobre alguma atualização que não diga respeito às regras do consenso. 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, pode ser responsável por criar muitas controvérsias, desacordos e dissidências.


Soft fork & Hard fork ⚔️

A adição de novas regras ao protocolo de consenso devem ser feitas através de um soft fork, uma atualização voluntária e compatível com as outras versões do protocolo. Já a remoção de uma regra de consenso requer um hard fork, uma bifurcação da rede incompatível com versões anteriores.




Participantes Diretos e Indiretos do Consenso no Bitcoin


A ''comunidade Bitcoin'' é formada por 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. Há pelo menos quatro '' agentes de poder'' no Bitcoin. Vale ressaltar que esse é o mecanismo do Bitcoin, que utiliza o Proof-of-Work. Moedas com mecanismos alternativos de governança, como Proof-of-Stake, apresentam outra dinâmica.


Os mineradores enquanto os agentes responsáveis pela validação das transações e inclusão de blocos na cadeia de blocos podem recusar rodar a a implementação de uma nova atuação. Assim como podem alocar dinamicamente seu poder computacional para outras pools ou em outras moedas, caso eles não concordem com o rumo da rede.


Os desenvolvedores são os responsáveis pelo gerenciamento técnico e atualização do protocolo Bitcoin. No início, Satoshi Nakamoto era o único responsável pela moeda. Em abril de 2011, sem muitas explicações, Nakamoto transfere o controle sobre o repositório ao maior contribuidor do código, Gavin Andresen. Atualmente, o protocolo do Bitcoin Core já recebeu contribuições de mais de 240 desenvolvedores.


As Empresas, tais como, exchanges, wallets e fornecedoras de hardware não participam formalmente da tomada de decisão do Bitcoin. Mas eles são responsáveis por definir o sucesso ou não de uma atualização.


Os usuários também não participam formalmente da tomada de decisão do Bitcoin. Mas como no caso acima, seu apoio é fundamental.


Quando um desenvolver quer sugerir uma mudança no protocolo que não diga respeito às regras rígidas, ele deve fazê-lo através de um processo conhecido como Bitcoin Improvement Proposal/Proposta de Melhoria do Bitcoin (BIP).



O protocolo do Bitcoin é constantemente atualizado por desenvolvedores que se dedicam a estudar, escrever e implementar melhorias no protocolo. Novas sugestões são feitas através de um processo conhecido como Bitcoin Improvement Proposal (BIP). O BIP pode descrever alterações no protocolo, alterações nas regras de consenso, adição de qualquer aplicações de interoperabilidade, orientações para a comunidade e etc.


Para submeter um BIP, o autor deve seguir um determinado fluxo de trabalho: perguntar à comunidade se a ideia é original ou se vale a pena ser desenvolvida, debater com a comunidade a ideia, apresentar um esboço do BIP à lista de discussão bitcoin-dev, esperar o feedback do editor (atualmente Luke Jr), buscar o acordo geral da comunidade e mediar as posições contrárias.





Se você quer saber mais detalhes sobre como submeter um BIP, acesse o BIP process. Esse BIP é a revisão da primeira proposição do sistema de proposições BIP, criado por Amir Taaki em 19 de agosto de 2011. O BIP9, publicado em 4 de outubro de 2010 define que o consenso entre nodes e mineradores deve ser feito modificando apenas um bit 0 para um bit 1. Ao final das modificações dos bits há uma votação para saber se a implementação deve ocorrer ou não.


Três tipos de BIPS

As propostas de melhoria do Bitcoin podem ser divididas em três categorias:

  • Standards Track BIP: propostas de alteração que afeta a interoperabilidade de aplicativos da maioria ou de todas as implementações de Bitcoin, como uma alteração no protocolo de rede, uma alteração nas regras de validade de bloco ou transação.

  • BIP informativo: descreve um problema de design do Bitcoin ou fornece diretrizes, informações e diretrizes gerais para a comunidade Bitcoin, sem propor novos recursos e implementações.

  • BIP de processo/meta-BIP: propõe uma alteração em um processo que se aplica a outras áreas que não o próprio protocolo Bitcoin. Os exemplos incluem procedimentos, diretrizes, alterações no processo de tomada de decisão e alterações nas ferramentas ou no ambiente usado no desenvolvimento do Bitcoin.


BIPs Interessantes 🧐


Entre os BIPS que ganharam bastante destaque nos últimos tempos, estão: Merkelized Abstract Syntax Tree (MAST), Partially Signed Bitcoin Transactions (PSBTs), Schnorr, Bulletproofs, Dandelion, Sidechains e Mimblewimble.



👨‍💻 Desenvolvedor(es): Johnson Lau <jl2012@xbt.hk>

🖊️Descrição: Esse BIP define um novo tipo de testemunha que usa uma árvore Merkle para codificar ramificações mutuamente exclusivas em um script. Assim, é possível diminuir o tamanho das transações (já que seu custo no tempo é menor), criar contratos inteligentes mais complexos, com mais liberdade para definição de seus critérios de transacionais e melhora a privacidade da transações, ocultando scripts não executados.


👨‍💻 Desenvolvedor(es): Andrew Chow <achow101@gmail.com>

🖊️Descrição: As transações mutlisig (que exigem mais de uma assinatura para ser efetuada) têm um ótimo caso de uso do Bitcoin. Mas não existe um formato unificado para o compartilhamento dessas transações entre vários assinantes, isso depende da implementação específica de cada carteira, dificultando a execução entre partes que usam diferentes carteiras de Bitcoin. O BIP (174) quer resolver isso, criando um formato padrão para essas transações.



📃 BIP 340: Schnorr Signatures

👨‍💻 Desenvolvedor(es): Pieter Wuille <pieter.wuille@gmail.com> Jonas Nick <jonasd.nick@gmail.com> Tim Ruffing <crypto@timruffing.de>

🖊️Descrição: O Bitcoin tradicionalmente usa o algoritmo de assinatura digital Elliptic Curve (ou ECDSA) na curva secp256k1 com o hash SHA256 para autenticar transações. O BIP 340 propõem a substituição para assinaturas Schnorr, devido a sua maior segurança ao ataque de mensagem escolhida (SUF-CMA), não-maleabilidade (para que um terceiro sem acesso à chave secreta não possa alterar uma assinatura válida existente), maior eficiência e a privacidade.




📃BIP 156: Dandelion

👨‍💻 Desenvolvedor(es): Brad Denby <bdenby@cmu.edu> Andrew Miller <soc1024@illinois.edu> Giulia Fanti <gfanti@andrew.cmu.edu> Surya Bakshi <sbakshi3@illinois.edu> Shaileshh Bojja Venkatakrishnan <shaileshh.bv@gmail.com> Pramod Viswanath <pramodv@illinois.edu>

🖊️Descrição: Aumento da privacidade das transações através da randomização da propagação das transações para os nós que compõem a rede. O Dandelion fornece um mecanismo de roteamento de transações que fornece garantias formais de anonimato contra ataques de desanonimização e vinculação de transações à endereços IP.


Comments


''Todos os modelos estão errados, mas alguns são úteis".
George Box
bottom of page