43 / 736BIP

BIP (Bitcoin Improvement Proposal)

Como uma ideia para Bitcoin se torna uma proposta partilhada

Um BIP apresenta publicamente uma ideia para que possa ser discutida e os programadores implementem a mesma solução. O número facilita a referência a um documento concreto. Por si só, não demonstra que a proposta seja segura, tenha apoio ou já esteja em utilização.

BIP significa Bitcoin Improvement Proposal. É um documento que descreve uma solução técnica, um procedimento ou informação importante sobre Bitcoin. Outros podem estudá-lo, questioná-lo e eventualmente utilizá-lo; a publicação não altera automaticamente o software nem as regras da rede.

Anna prepara um pagamento no computador, mas quer assiná-lo com uma carteira física de outro fabricante. Os dois programas precisam de compreender os dados trocados. O BIP 174 trata precisamente deste problema: descreve PSBT, um formato comum para transmitir uma transação ainda incompleta e a informação necessária para a assinar. Os programadores podem seguir o mesmo documento em vez de inventarem formatos incompatíveis separadamente. Esta é uma razão prática para a existência dos BIP. [8]

Números diferentes correspondem a trabalhos diferentes. BIP39 descreve a criação das palavras de recuperação e a sua conversão numa seed, os dados iniciais para derivar as chaves da carteira. O BIP 141 descreve SegWit, uma alteração das regras das transações que entrou em vigor através da ativação na rede. O BIP 174 ajuda as carteiras a transmitir transações para assinatura sem mudar a validade dos blocos. O BIP 50 regista as causas e a resolução do incidente de março de 2013 que dividiu temporariamente a rede. Nem todo o BIP propõe, portanto, uma nova regra de Bitcoin. [6] [7] [8] [9]

Descrever uma solução, programá-la e utilizá-la são passos distintos. A descrição é a especificação; o código é a implementação. Uma carteira pode experimentar um rascunho, enquanto outro documento ainda não tem qualquer programa em utilização. Nas alterações das regras de validade dos blocos existe também a ativação, o momento a partir do qual o software relevante começa a aplicá-las. Publicar um documento não atualiza automaticamente o seu nó, o computador que verifica as regras da rede. [7] [10]

O número serve sobretudo para encontrar o documento correto e participar na mesma discussão. Um número maior não significa uma proposta melhor nem uma atualização recomendada. Mesmo um documento numerado pode ficar por terminar ou ser abandonado. Se um serviço anuncia suporte para um BIP, ainda é preciso perceber de que função se trata e se a versão concreta do programa realmente a oferece. [2]

Os autores começam por estudar trabalhos anteriores e discutir a ideia na Bitcoin Development Mailing List, uma conversa pública por correio eletrónico entre programadores. Os comentários podem revelar problemas antes de ser escrito um texto longo. Uma proposta suficientemente desenvolvida é depois apresentada ao repositório partilhado bitcoin/bips no GitHub como pull request, um pedido de inclusão. Os autores não escolhem o número: um editor atribui-o após verificar o tema, o formato e a maturidade do documento. [1]

Os BIP Editors cuidam dos documentos publicados: verificam discussões anteriores, clareza, formato e licença, atribuem números e mantêm os registos. Isso não lhes permite decidir que programa deve usar nem que regras o seu nó deve aceitar. A presença no repositório não garante segurança nem acordo da comunidade. A utilização real depende dos projetos e dos participantes na rede. [1]

Se uma notícia afirma que um novo BIP foi aprovado, abra o documento e veja o que aconteceu. Recebeu apenas um número, os autores terminaram o trabalho ou a proposta já está a ser utilizada num programa? Para uma função da carteira, procure provas na documentação e nas versões publicadas; para mudanças das regras da rede, verifique também as condições e o desenrolar da ativação. Assim distingue uma proposta interessante de uma função já disponível. [10] [2]

O procedimento atual consta do BIP 3, Updated BIP Process, com estado Deployed. Substituiu o BIP 2 e simplificou os tipos e estados dos documentos. Os artigos antigos podem, por isso, mencionar Standards Track ou Final, designações que não correspondem à classificação atual. Consulte o ficheiro atualizado e o respetivo histórico. O repositório publica e preserva propostas; não é um sistema de votação sobre o futuro de Bitcoin. [1] [5]

Specification descreve regras técnicas que permitem criar programas compatíveis entre si. Antes da conclusão, exige também uma implementação de referência funcional, ou seja, um programa que mostra como concretizar a solução, e vetores de teste, ou seja, entradas de exemplo com resultados esperados. Informational fornece informação, análise ou recomendações. Process regula uma forma de trabalhar, como a publicação dos próprios BIP. O BIP 3 pertence a este último grupo; não define um novo formato de transação Bitcoin. [1]

Draft é trabalho em curso. Complete significa que os autores terminaram o trabalho planeado e recomendam a adoção. Deployed indica utilização ativa demonstrada; para Process, pode refletir o rough consensus exigido, um acordo amplo após discussão e resolução de objeções fundamentadas, em vez de uma simples contagem de votos. Closed é material histórico que já não é desenvolvido, promovido nem utilizado ativamente. Permanece no arquivo. Nem mesmo Deployed significa suporte em todas as carteiras. [1]

O cabeçalho indica autores, tipo, estado, data de atribuição do número, licença e discussões. Requires lista outros BIP necessários, Replaces as propostas que se pretende substituir e Proposed-Replacement um possível sucessor. Depois de atingir o estado Complete, as alterações seguintes são registadas em Changelog, o histórico de alterações, com data e número de versão. O campo Version do cabeçalho indica a versão atual do documento. Uma mudança incompatível com a solução anterior deve, em geral, receber um novo BIP, para que o mesmo número não passe discretamente a significar outra coisa. [1]

Para ter uma visão mais completa, leia este verbete junto com Soft Fork, Regras de consenso, Bitcoin Core, Bitcoin, Hard Fork, BIP 39. Também há referências a este verbete em Soft Fork, Guerra do tamanho dos blocos, Bitcoin Core, Educação sobre Bitcoin.

DOC · 001BIP 3 — Updated BIP ProcessEspecificação DOC · 002bitcoin/bips — official BIP repositoryFonte primária DOC · 003BIP 123 — BIP ClassificationEspecificação DOC · 004BIP 1 — BIP Purpose and GuidelinesDocumentação DOC · 005BIP 2 — BIP process, revisedDocumentação DOC · 006BIP 39 — Mnemonic codeEspecificação DOC · 007BIP 141 — Segregated WitnessEspecificação DOC · 008BIP 174 — PSBTEspecificação DOC · 009BIP 50 — March 2013 chain fork post-mortemDocumentação DOC · 010Bitcoin Core — supported BIPsDocumentação
Revisto em: Fontes em primeiro lugar · Não é recomendação de investimento