Um BIP é um documento que apresenta uma proposta de melhoria técnica, organizacional ou qualquer outra melhoria para o desenvolvimento do Bitcoin.
LBIP significa Proposta de melhoria de Bitcoin, que em espanhol significa Proposta de melhoria para Bitcoin. Este é um documento que contém uma proposta ou design para melhorar a estrutura ou o funcionamento do ecossistema Bitcoin. Se isso é de natureza técnica ou organizacional para a comunidade por trás do desenvolvimento de Bitcoin. A proposta é acompanhada de uma explicação clara e concisa e justificativa do novo recurso. É necessário submetê-lo à aprovação ou não da comunidade.
Para isso, são coletados comentários da comunidade e é buscado um consenso sobre a decisão a ser tomada. Este trabalho faz parte das responsabilidades do autor, que também deve registrar posições a favor e contra a proposta. Devido à maneira como o trabalho é estruturado no Bitcoin Core, eles armazenam suas alterações historicamente. Dessa forma, a proposta original e suas diferentes variações estarão sempre disponíveis para o restante da equipe. Uma característica importante do trabalho em meio a um grupo de desenvolvimento tão ativo, heterogêneo e internacional.
A proposta para criar esses documentos foi dada pelo desenvolvedor criptografar Amir Taaki, em 19 de agosto de 2011. Para seu projeto, Taaki contou com o conhecido PEP (Propostas de aprimoramento Python - Propostas de aprimoramento Python). Posteriormente, a estrutura seria melhorada por Luke Dashjr.
Tipos BIP
Existem três tipos de BIP que podem ser apresentados e são os seguintes:
Monitoramento de normas
Conhecido como Trilha de padrões, eles são usados para descrever as mudanças que afetam a maioria ou todas as implementações de Bitcoin. Essas mudanças geralmente incluem, mudanças no protocolo de rede, mudança nas regras de bloqueio ou validade da transação, ou qualquer outra mudança ou adição que afete a interoperabilidade dos aplicativos que usam Bitcoin. Eles tendem a ser BIPs altamente técnicos e longamente debatidos devido às suas profundas implicações na operabilidade do blockchain. Um exemplo desse tipo é apresentado no SegWit (BIP-141).
Informativo
Eles são usados para descrever ou divulgar um problema de design do Bitcoin, fornecendo diretrizes ou recomendações para sua solução. Eles geralmente são resultados de investigações particulares, em grupo ou comerciais. Eles apresentam dados, evidências ou estudos conceituais que apóiam a proposta e suas reivindicações. Um exemplo desse tipo é Distribuição de Transação Multi-Sig ou BIP-10.
Processo
Eles descrevem um processo que envolve o Bitcoin, propondo uma alteração ou melhoria dele. Os BIPs de processo se aplicam a diferentes áreas do protocolo Bitcoin. Eles podem propor uma implementação, mas não diretamente ao código base do Bitcoin. Sendo mais do que recomendações, elas não podem ser ignoradas como BIPs informativos.
Exemplos desses BIPs 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. Qualquer meta-BIP também é considerado um processo BIP. Um exemplo desses BIPs pode ser encontrado no diretório Classificação BIP ou BIP-123.
Estruturando um BIP
Um BIP é estruturado da seguinte forma:
- Preâmbulo Esta seção contém os títulos em que os metadados do BIP estão localizados.
- Resumo. Aqui está uma breve descrição (~ 200 palavras) do problema técnico que está sendo tratado.
- Direitos autorais. Isso deve ser explicitamente licenciado sob os termos de direitos autorais aceitáveis. Esta licença é geralmente compatível com GPL ou inexistente.
- Especificação. Este ponto descreve a sintaxe e a semântica de quaisquer novos recursos. A especificação deve ser detalhada o suficiente para permitir implementações competitivas e interoperáveis para qualquer uma das plataformas Bitcoin atuais.
- Motivação. É aqui que as razões pelas quais a proposta foi criada são explicadas claramente. É crucial que esta seção seja clara e tire quaisquer dúvidas sobre ela e sua criação.
- Justificação A lógica da especificação descreve o que motivou o design e por que decisões específicas foram tomadas.
- Compatibilidade com versões anteriores. Todos os BIPs que introduzem incompatibilidades com versões anteriores devem incluir uma seção que descreva essas incompatibilidades e sua gravidade. O BIP deve explicar como o autor se propõe a lidar com essas incompatibilidades.
- Implementação de referência. A implementação de referência deve ser concluída antes de qualquer BIP ter o status "Final", mas não precisa ser concluída antes de ser aceita. É melhor terminar a especificação e a justificativa primeiro e chegar a um consenso antes de escrever o código. A implementação final deve incluir código de teste e documentação adequada para o protocolo Bitcoin.
Status de um BIP
Um BIP tem um certo ciclo de vida que depende de seu status. Nesse ponto, podemos dizer que o status de um BIP é o seguinte:
- Rascunho. Neste ponto, o BIP mal está em seu estado inicial de arquivamento. Neste ponto, o BIP está incompleto.
- Diferido. O BIP foi adiado porque não houve progresso em seu desenvolvimento.
- Proposta. É a proposta acompanhada com a maioria de seus elementos explicativos e apresentada à comunidade. Neste ponto, o debate sobre sua aplicação ou não no ecossistema de desenvolvimento Bitcoin começa.
- Rejeitado. Se a proposta apresentada não for bem recebida, houver elementos prejudiciais ou qualquer outro motivo que a comunidade use para sua rejeição, ela será marcada com esse status.
- Aposentado (Retirada). Esse status se aplica às propostas que foram retiradas por seus autores por motivos que atendem a seu interesse.
- Final / Ativo. Para chegar a esse ponto, a proposta deve ter passado por uma análise e consenso da comunidade. Deve ter todos os espaços e estruturas necessários para sua aprovação.
- Substituído. Esse status é atribuído às propostas que foram substituídas por melhores propostas. Geralmente porque as novas propostas resolvem ou melhoram ainda mais a proposta apresentada anteriormente.
- Obsoleto (obsoleto). Essa mudança de status está relacionada principalmente quando as alterações introduzidas pelo BIP não são mais relevantes. Isso pode ser devido a diferentes situações, geralmente porque há novas alterações que tornam seu aplicativo desnecessário.
BIP e suas diferentes representações em outras blockchain
Não há dúvida de que os BIPs são uma ótima ferramenta para organizar o trabalho e o desenvolvimento do Bitcoin. O modelo foi exportado do Python, onde permitiu a evolução dessa linguagem de programação de uma maneira muito rica. E o mesmo aconteceu em outros desenvolvimentos de blockchain. Por exemplo, em Ethereum tem o conhecido EIP (Proposta de melhoria do Ethereum) e em Litecoin os LIP (Proposta de melhoria do Litecoin). Indo um pouco mais longe, em Dash existem DIP (Proposta de melhoria de traço) e em TRON existem DICA (Proposta de melhoria do TRON). Cada uma dessas estruturas baseia sua operação no esquema básico do BIP. Com algumas adições, como os desenvolvedores dessas blockchains consideraram necessárias para adaptá-las ao seu desenvolvimento específico.
De qualquer forma, é claro que os BIPs tiveram um impacto profundo na maneira como o trabalho de desenvolvimento dos BIPs é organizado e tornado público. blockchain. De qualquer forma, o Bitcoin foi verdadeiramente vanguardista com a maneira de resolver essa parte do trabalho e que, até hoje, continua sendo graças à quantidade e qualidade de suas apresentações.
BIPs relevantes em Bitcoin
Alguns BIPs relevantes dentro da blockchain Bitcoin são os seguintes:
BIP-11: transações M-de-N padrão
El BIP-11, foi projetado para permitir carteiras seguras, transações de custódia e outros casos de uso em que a troca de fundos requer mais do que uma única assinatura. Apresentado por Gavin andresen, em 18 de outubro de 2011. Esta proposta é do tipo Monitoramento de Normas e está no status Final.
BIP-16: Pagamento para hash de script
El BIP-16, é uma nova maneira de gerenciar sistemas de pagamento Bitcoin, permitindo que dados de pagamento sejam incluídos em um código QR para facilitar os pagamentos. Este BIP foi apresentado por Gavin Andresen, em 03 de janeiro de 2012. Essa é outra proposta do tipo Monitoramento de Padrões e está no status Final.
BIP-141: SegWit
El BIP-141 visa aumentar a capacidade da rede Bitcoin e também resolve o problema do maleabilidade da transação. A garfo macio exigindo que a maioria (95%) dos mineradores conclua a atualização por duas semanas.
Testemunha Segregada (também conhecido como SegWit) é uma solução de dimensionamento de blockchain. Em linguagem simples, SegWit significa separar as assinaturas dos tokens das transações.