Glossário / Protocolo e atualizações
Proposta de melhoria do Bitcoin
Outros nomes: BIP.
- O que é uma Proposta de melhoria do Bitcoin?
- Uma Proposta de melhoria do Bitcoin é um documento de projeto numerado que descreve uma mudança no bitcoin ou um padrão que as carteiras devem seguir, sem qualquer autoridade para impô-lo.
Especificação no BIP-2.
Os BIPs são a forma como o bitcoin coloca as coisas por escrito. Qualquer pessoa pode enviar um, um editor atribui o número, e o repositório hoje guarda várias centenas deles, em estados que vão de Draft a Final a Withdrawn. Os números aparecem em produtos que você usa: as 12 palavras que sua carteira gerou são o BIP39, e o endereço que ela derivou veio do BIP84 ou do BIP86.
Como funciona
O processo de BIP é um sistema de arquivamento, não um órgão de governo.
Ele foi tomado de empréstimo do Python. Amir Taaki escreveu o BIP-1 em 2011, tendo como modelo as propostas de melhoria daquele projeto, e Luke Dashjr o substituiu pelo BIP-2 em 2016 para precisar as definições do que cada status significa e de quais evidências são necessárias para avançar. O percurso não tem nada de glamouroso: apresente a ideia em público, absorva as críticas, abra um pull request no repositório bitcoin/bips e espere que um editor verifique a formatação e atribua um número.
As propostas vêm em três tipos. Os documentos Standards Track cobrem tudo o que afeta a forma como o software interopera, desde as regras de consenso até os formatos de endereço. Os documentos Informational registram um projeto ou uma convenção sem pedir que ninguém faça nada. Os documentos Process descrevem o próprio processo. Cada um carrega um status, avançando por Draft e Proposed até Final ou Active, e muitos terminam em Withdrawn, Rejected ou Replaced.
O que o número não confere é autoridade. Um BIP atribuído é um registro em um índice, não uma aprovação, e de todo modo não existe nenhum órgão que pudesse aprová-lo. A adoção acontece separadamente e de forma voluntária: alguém escreve o código, os revisores o desmontam, uma implementação o distribui, e os usuários escolhem executar essa versão. Muitíssimas mudanças no Bitcoin Core não têm nenhum BIP, e muitíssimos BIPs nunca foram implementados por ninguém.
Por que isso importa quando você compra bitcoin
Os números de BIP aparecem nos menus das carteiras, e escolher o errado é uma forma comum de concluir que seus bitcoins desapareceram.
O exemplo que pega as pessoas é a recuperação com a frase de recuperação. O BIP39 padronizou a lista de palavras, de 2048 itens, e a regra para transformar 12 ou 24 delas em uma chave mestra, e é por isso que uma frase anotada de uma marca pode ser digitada em outra. O que o BIP39 não padroniza é onde a carteira procura seus bitcoins. O BIP44 deriva endereços antigos que começam com 1, o BIP49 deriva endereços SegWit aninhados que começam com 3, o BIP84 deriva endereços SegWit nativos que começam com bc1q, e o BIP86 deriva endereços Taproot que começam com bc1p. Restaure uma frase em um software que usa por padrão outro caminho e o saldo marca zero, enquanto os bitcoins permanecem intactos sob o caminho que você realmente usou. Anote o caminho de derivação no mesmo cartão do seu backup e o problema nunca ocorre.
Os formatos de endereço têm a mesma implicação prática. O Bech32 veio do BIP173 e o bech32m do BIP350, e o suporte chegou em momentos diferentes em todo o setor, o que explica por que algumas plataformas não conseguiram enviar para um endereço bc1p por um longo período após a ativação do Taproot. Antes de um saque grande, envie primeiro um valor pequeno e confirme que o formato de destino é aceito. As transações travadas também têm um número: o aumento de taxa por meio do replace-by-fee foi especificado no BIP125, e uma carteira que o implementa evita que você espere por uma estimativa de taxa feita em mau momento.
Trate o número como um rótulo, não como uma garantia. O BIP70, o protocolo de pagamento, foi implementado pela BitPay e pela Coinbase e parecia o futuro dos pagamentos a comerciantes; o Bitcoin Core o tornou obsoleto na versão 0.19 e o removeu na 0.20, e hoje nada o usa. Um BIP registra que alguém pensou com cuidado. Se alguém ainda o executa é uma pergunta separada que vale a pena fazer.
Do BIP340 ao bloco 709.632: como uma proposta se torna uma regra
O Taproot é a ilustração mais clara de todo o percurso, porque cada etapa dele tem data.
O projeto foi publicado como três documentos interligados, o BIP340 para as assinaturas Schnorr, o BIP341 para o tipo de saída Taproot e o BIP342 para as novas regras de script, escritos por Pieter Wuille com Jonas Nick, Tim Ruffing e Anthony Towns. Eles foram integrados ao repositório em janeiro de 2020, após aproximadamente dois anos de discussão pública. A integração não mudou nada no bitcoin: significou que os documentos tinham números.
A implementação e a revisão então tomaram a maior parte de um ano, e a discussão sobre como ativar as regras tomou vários meses mais, com dois mecanismos concorrentes na mesa. O acordo, conhecido como Speedy Trial, chegou no Bitcoin Core 0.21.1 em maio de 2021. Os mineradores sinalizaram que estavam prontos durante uma janela definida, o lock in foi alcançado em 12 de junho de 2021, e as regras se tornaram exigíveis no bloco 709.632, em 14 de novembro de 2021. Isso é aproximadamente 22 meses de um documento numerado até uma regra em vigor, e o documento não fez nenhum desse trabalho: os operadores de nós que executavam o código fizeram.
Bitcoin Improvement Proposal vs regras de consenso
Um Bitcoin Improvement Proposal é papelada; as regras de consenso são o que os nós realmente aplicam. Os dois coincidem apenas quando uma proposta foi implementada e adotada, e a lacuna em cada direção é instrutiva. O BIP70 tem um número e não aplica nada em lugar nenhum. O limite de oferta de 21 milhões não tem nenhum BIP, porque antecede o processo e vive puramente no código. Quando você quer saber o que o bitcoin faz, leia o software ou as regras que ele aplica; quando você quer saber o que alguém propôs, leia o BIP.
Bitcoin Improvement Proposal vs soft fork
Um Bitcoin Improvement Proposal é um documento; um soft fork é um evento de implantação que restringe as regras que todos seguem. A maioria dos BIPs não é fork de nenhum tipo: o BIP39 nunca tocou o protocolo, e o esquema de URI do BIP21 que permite que um link de pagamento abra sua carteira também não. Quando um soft fork de fato acontece, ele costuma precisar de vários BIPs para descrevê-lo, mais um para o próprio mecanismo de ativação, já que o BIP9 e o BIP8 existem apenas para definir como funciona a sinalização. Confundir os dois leva as pessoas a dizer que o bitcoin mudou quando uma proposta foi publicada, o que normalmente é anos antes, e às vezes errado para sempre.