BIP signifie Bitcoin Improvement Proposal. Ce document décrit une solution technique, une procédure ou des informations importantes sur Bitcoin. Chacun peut l’étudier, en discuter le contenu et éventuellement l’utiliser ; sa publication ne modifie automatiquement ni les logiciels ni les règles du réseau.
Anna prépare un paiement sur son ordinateur, mais souhaite le signer avec un portefeuille matériel d'un autre fabricant. Les deux programmes doivent comprendre les données échangées. BIP 174 répond précisément à ce besoin : il décrit PSBT, un format commun pour transmettre une transaction encore incomplète et les informations nécessaires à sa signature. Les développeurs peuvent suivre le même document plutôt que d'inventer chacun un format incompatible. Voilà une utilité concrète des BIP. [8]
Les numéros recouvrent des travaux différents. BIP39 décrit la création des mots de récupération et leur conversion en seed, les données de départ permettant de dériver les clés du portefeuille. BIP 141 décrit SegWit, une modification des règles des transactions entrée en vigueur lors de son activation sur le réseau. BIP 174 facilite l'échange de transactions à signer sans modifier la validité des blocs. BIP 50 retrace les causes et la résolution de l'incident de mars 2013 qui a temporairement séparé le réseau. Tous les BIP ne proposent donc pas une nouvelle règle de Bitcoin. [6] [7] [8] [9]
Décrire une solution, la programmer et l'utiliser sont des étapes distinctes. La description est la spécification ; le code est l'implémentation. Un portefeuille peut expérimenter un brouillon, alors qu’une autre proposition n’est encore utilisée par aucun logiciel. Les changements des règles de validité des blocs nécessitent aussi une activation, le moment où les logiciels concernés commencent à les appliquer. Publier un texte ne met pas automatiquement à jour votre nœud, l'ordinateur qui vérifie les règles du réseau. [7] [10]
Le numéro aide surtout à retrouver le bon document et à parler de la même proposition. Un numéro plus élevé ne signifie ni une meilleure idée ni une mise à niveau recommandée. Même numéroté, un document peut rester inachevé ou être abandonné. Lorsqu'un service annonce prendre en charge un BIP, il faut encore déterminer la fonction visée et vérifier que sa version précise du logiciel la fournit réellement. [2]
Les auteurs étudient d'abord les travaux antérieurs et discutent de l'idée sur Bitcoin Development Mailing List, une discussion publique par courriel entre développeurs. Les remarques peuvent révéler un problème avant la rédaction d'un long texte. Une proposition suffisamment mûre est ensuite soumise au dépôt partagé bitcoin/bips sur GitHub par un pull request, une demande d'intégration. Les auteurs ne choisissent pas leur numéro : un éditeur l'attribue après examen du sujet, du format et de la maturité du document. [1]
Les BIP Editors s'occupent des documents publiés : ils examinent les discussions antérieures, la clarté, le format et la licence, attribuent les numéros et tiennent les dossiers à jour. Cela ne leur donne pas le pouvoir de choisir votre logiciel ni les règles acceptées par votre nœud. Une inscription dans le dépôt ne garantit ni la sécurité ni l'accord de la communauté. L'utilisation dépend des projets et des participants au réseau. [1]
Si une annonce affirme qu'un BIP a été approuvé, ouvrez le document pour comprendre ce qui s'est passé. A-t-il simplement reçu un numéro, les auteurs ont-ils terminé leur travail ou utilise-t-on déjà cette solution dans un logiciel ? Pour un portefeuille, cherchez des preuves dans la documentation et les versions publiées ; pour une modification du réseau, vérifiez aussi les conditions et le déroulement de l'activation. Vous distinguerez ainsi une idée intéressante d'une fonction déjà disponible. [10] [2]
La procédure actuelle est décrite dans BIP 3, Updated BIP Process, au statut Deployed. Il a remplacé BIP 2 et simplifié les types et les statuts. Les anciens articles peuvent donc mentionner Standards Track ou Final, des appellations qui ne correspondent plus au classement actuel. Consultez le fichier à jour et son historique. Le dépôt publie et conserve des propositions ; il ne sert pas à voter sur l'avenir de Bitcoin. [1] [5]
Specification décrit des règles techniques permettant de créer des programmes compatibles entre eux. Avant son achèvement, il faut une implémentation de référence fonctionnelle, c’est-à-dire un programme montrant comment réaliser la solution, et des vecteurs de test, c'est-à-dire des exemples d'entrées avec les résultats attendus. Informational fournit des informations, une analyse ou des recommandations. Process organise une méthode de travail, comme la publication des BIP. BIP 3 appartient à cette dernière catégorie ; il ne définit pas un nouveau format de transaction Bitcoin. [1]
Draft désigne un travail en cours. Complete signifie que les auteurs ont terminé le travail prévu et recommandent l'adoption. Deployed indique une utilisation active démontrée ; pour Process, il peut s'agir du rough consensus requis, un accord large après discussion et traitement des objections fondées, plutôt qu'un simple décompte des voix. Closed désigne un document historique qui n'est plus activement développé, promu ni utilisé. Il reste archivé. Même Deployed ne signifie pas que tous les portefeuilles prennent la proposition en charge. [1]
L'en-tête précise les auteurs, le type, le statut, la date d'attribution du numéro, la licence et les discussions. Requires liste les autres BIP nécessaires, Replaces les propositions que le document entend remplacer et Proposed-Replacement un éventuel successeur. Une fois le statut Complete atteint, les modifications suivantes sont consignées dans Changelog, le journal des changements, avec leur date et leur numéro de version. Le champ Version de l’en-tête indique la version actuelle du document. Une modification incompatible avec les versions antérieures doit généralement faire l'objet d'un nouveau BIP, afin qu'un même numéro ne change pas discrètement de sens. [1]
Pour une vision complète, lisez aussi Soft Fork, Règles de consensus, Bitcoin Core, Bitcoin, Hard Fork, BIP 39. Cette entrée est également citée par Soft Fork, Guerre de la taille des blocs, Bitcoin Core, Éducation à Bitcoin.