Blockchain/Nível X · Ciclo completo/10.3 Vivendo em bitcoin/Lição 5
Construindo no Bitcoin
Regtest, descritores e a disciplina da revisão pública
MateriaisUm computador com o Bitcoin Core (baixado e verificado)A referência do bitcoin-cli (bitcoin-cli help)Documentação para BIP 174 e BIP 380
Curiosidade
- Por que uma única linha de código alterada no Bitcoin Core requer meses de discussão antes de chegar a uma versão estável?
- Como os desenvolvedores testam a lógica crítica para o consenso sem arriscar fundos reais ou danificar a rede principal?
- Qual é a diferença entre um descritor e um PSBT, e por que ambos são essenciais para o desenvolvimento de carteiras modernas?
Explorar
- O Bitcoin Core oferece dois ambientes principais para teste: regtest e Signet. O Regtest permite que os desenvolvedores minem blocos instantaneamente, sem a necessidade de prova de trabalho, o que o torna ideal para testes unitários e iterações rápidas nas regras de consenso. O Signet (BIP 325) é uma rede de teste pública cujos blocos também precisam conter assinatura de signatários designados, o que mantém tempos de bloco estáveis e impede que ela seja inundada por hashrate; ele é adequado para testar softwares de outras pessoas sem usar dinheiro real.
- A interface de Chamada de Procedimento Remoto (RPC) expõe o estado interno do Bitcoin Core a scripts externos. Os desenvolvedores utilizam comandos RPC para manipular cadeias, inspecionar transações e acionar a mineração em regtest. Esse acesso programático é fundamental para criar softwares de carteira que precisam interagir diretamente com as estruturas de dados de um nó, ignorando completamente a interface gráfica do usuário.
- Os descritores definem como as chaves são transformadas em condições de gasto, enquanto as Transações Bitcoin Parcialmente Assinadas (PSBTs) facilitam os fluxos de trabalho de assinatura por várias partes. O BIP 174 padronizou o formato PSBT, permitindo que diferentes entidades — carteiras hardware, dispositivos móveis ou servidores — adicionem assinaturas a uma transação sem expor as chaves privadas. Essa separação entre o gerenciamento de chaves e a construção da transação é fundamental para configurações multisig seguras.
- O Bitcoin Dev Kit (BDK) e o Lightning Dev Kit (LDK) eliminam a complexidade do gerenciamento de nodes para desenvolvedores de aplicativos. O BDK é uma biblioteca em Rust para carteiras baseadas em descritores, capaz de ler as informações da cadeia de blocos a partir do Bitcoin Core, de um servidor Electrum ou da API Esplora, enquanto o LDK oferece uma implementação leve do protocolo Lightning Network, adequada para dispositivos móveis. Essas bibliotecas reduzem a barreira de entrada para a criação de aplicativos nativos do Bitcoin, sem exigir conhecimentos avançados em programação de sistemas.
- A revisão pública é a espinha dorsal do modelo de segurança do Bitcoin. As alterações propostas por meio de pull requests passam por uma análise rigorosa por parte de uma comunidade global de desenvolvedores. O PR Review Club facilita isso ao organizar sessões regulares nas quais os colaboradores analisam as diferenças linha por linha. Essa inteligência coletiva detecta erros sutis e garante que as alterações acordadas sejam completamente compreendidas antes de serem adotadas, um processo distinto dos ciclos rápidos de lançamento comuns em outros ecossistemas de software.
- Inicie uma cadeia privada: execute bitcoind -regtest -daemon, crie uma carteira com bitcoin-cli -regtest createwallet dev e mine 101 blocos para um de seus endereços usando generatetoaddress, para que a primeira coinbase amadureça. Crie um pagamento com walletcreatefundedpsbt, leia-o com decodepsbt, depois assine e transmita-o com walletprocesspsbt e sendrawtransaction. Mine mais um bloco e observe sua confirmação.
Fatos-chave
- O Regtest permite mineração em bloco instantânea, sem exigência de prova de trabalho para testes isolados.
- Os blocos Signet (BIP 325) devem ser assinados por chaves designadas, proporcionando uma rede de teste pública estável.
- O BIP 174 define o formato de Transação Bitcoin Parcialmente Assinada (PSBT) para fluxos de trabalho de assinatura por várias partes.
- Os descritores de script de saída no BIP 380 definem os caminhos de derivação de chaves e as condições de gasto para carteiras.
- O Bitcoin Dev Kit (BDK) é uma biblioteca em Rust para criar carteiras baseadas em descritores em vários back-ends de cadeia.
- A revisão de solicitações públicas de pull request garante que as alterações consensuais passem por uma análise rigorosa e em várias camadas antes do lançamento.
Exercício nove, seis, três, um
9ReunirIdentifique 9 componentes distintos do ecossistema de desenvolvimento do Bitcoin: regtest, signet, mainnet, interface RPC, descriptors, PSBTs, BDK, LDK e PR Review Club. Para cada um, indique seu propósito principal no ciclo de vida do software.
6AgruparAgrupe esses 9 componentes em 6 categorias por função: teste privado, teste público, interfaces de nó, padrões de carteira, bibliotecas de desenvolvimento e revisão.
3DestilarReduza os 6 grupos a 3 princípios fundamentais que regem o desenvolvimento de softwares para Bitcoin: isolamento para segurança, padronização para compatibilidade e transparência para segurança.
1CristalizarUm PSBT é necessário porque uma carteira de hardware que não consegue se conectar diretamente a um nó de rede precisa de um meio para enviar transações.
Verificação de fatos
Datas, números e afirmações verificados com as fontes publicadas listadas abaixo.