Explorer BIP119 et les modifications apportées à Bitcoin
Ceci est un article d’opinion sur BIP119 (OP_CTV). Si vous souhaitez soumettre un contre-argument, veuillez e-mail Bitcoin Magazine.
Au cours des dernières semaines, des efforts ont été déployés pour faire avancer une proposition d’amélioration de Bitcoin (BIP) sous le nom de CTV ou BIP119. Dans cet article, je vais essayer de faire deux choses. Premièrement, j’aimerais décrire les propriétés importantes de CTV, et deuxièmement, j’aimerais démêler les deux débats qui se déroulent simultanément au sein de la communauté Bitcoin en ce moment.
En Bitcoin, il faudrait prendre le «Ne faites pas confiance, vérifiez” impératif sérieux. En tant que tel, tout ce que je dis dans cet article doit être validé par rapport à l’original BIP119 texte ainsi que le demande d’extraction la mettre en œuvre.
De plus, alors que ce que je dis devrait pouvoir se suffire à lui-même, indépendamment de toute accréditation, je noterai que je travaille sur les technologies Bitcoin et Bitcoin directement depuis près de cinq ans à compter de la publication de cet article. Cela ne me met pas à l’abri des erreurs, mais cela devrait au moins vous aider à vous convaincre que cet article provient d’un point de vue éclairé et que sa lecture vaut la peine.
Divulgation : Je suis publiquement en faveur de l’activation de BIP119 sur le réseau principal Bitcoin. Il m’est impossible de vous donner un avis « impartial ». Cependant, je ferai de mon mieux pour clarifier ce qui est un fait et ce qui est une opinion.
Enfin, cet article suppose une connaissance de base du fonctionnement de Bitcoin, de la structure des transactions et du système de script de Bitcoin.
Alors, qu’est-ce que CTV? CTV, abréviation de CheckTemplateVerify, est une proposition de modification consensuelle de Bitcoin. La proposition ajouterait effectivement une opération au système de script de Bitcoin qui empêcherait une pièce de monnaie d’être dépensée à moins qu’elle ne soit dépensée dans une transaction qui avait un «modèle» particulier.
Il s’agit d’une capacité fondamentalement nouvelle pour le système de script Bitcoin et c’est en partie pourquoi la proposition a suscité un peu de controverse. Au moment de la publication de cet article, toutes les exigences de dépenses que vous pouvez placer sur Bitcoin sont soit basées sur le temps (CHECKLOCKTIMEVERIFY et CHECKSEQUENCEVERIFY), soit sur des exigences imposées au « témoin » (la preuve que vous présentez au réseau Bitcoin qui prouve que vous sont autorisés à dépenser les pièces).
Aucun des opcodes que vous pouvez utiliser dans le script Bitcoin aujourd’hui ne vous permet de spécifier des exigences sur la transaction qui dépense ces pièces. La catégorie de conceptions et d’opcodes qui imposent des restrictions sur les transactions elles-mêmes est souvent appelée «conventions». Il existe de nombreuses autres propositions qui entrent dans cette catégorie et qui sont discutées par la communauté de développement Bitcoin, mais que sont les engagements et pourquoi les voudrais-je ?
La chose la plus importante à comprendre à propos des clauses restrictives est qu’elles vous permettent d’imposer des restrictions sur les sorties des transactions qui dépensent les pièces qui y sont liées. Rappelez-vous que les transactions Bitcoin sont une collection d’entrées (pièces que vous essayez de dépenser), une collection de sorties (où vous essayez de dépenser les pièces) et un témoin (preuve que vous êtes autorisé à dépenser ces pièces).
Pouvoir spécifier les manières possibles dont vous souhaitez dépenser vos pièces à l’avenir peut vous permettre de créer des solutions de stockage à froid plus sécurisées. Par exemple, disons que vous ne voulez jamais retirer plus de 10 % de vos pièces en chambre froide par mois. Avec des covenants, vous pouvez structurer vos conditions de dépenses de manière à ce qu’un mois après le dépôt, vous puissiez seul dépensez vos pièces de l’une des deux manières prédéterminées : soit 10 % vont à une adresse de portefeuille chaud prédéfinie et les 90 % restants vont à une nouvelle configuration de stockage à froid qui est structurée de manière similaire, ou tous les 100 % vont à une nouvelle configuration de stockage à froid qui est de même structuré. La valeur de ce type d’arrangement est que vous pouvez être sûr que même si votre système était compromis, vous ne risqueriez que 10 % de vos fonds avant d’avoir la possibilité de réagir. Ce cas d’utilisation est très souvent appelé « chambre forte ».
Ce n’est cependant pas le seul cas d’utilisation des covenants. Vous avez besoin d’engagements pour conclure un certain nombre de contrats qui «portent l’état». Je n’ai pas la capacité d’entrer dans une longue liste de cas d’utilisation ici, et il y a de meilleurs matériaux sur la toile pour ça.
Revenons à CTV, plus précisément. Comment fonctionne réellement le CTV ? CTV prend l’élément supérieur de la pile de la machine virtuelle Bitcoin et vérifie que le « hachage de modèle » de la transaction en cours correspond à cette valeur. Cela signifie nécessairement que si vous souhaitez dépenser les pièces protégées par CTV, vous devez connaître le modèle de hachage de la transaction de dépense avant que déposer des fonds dans l’adresse protégée de CTV.
Pourquoi est-ce? Étant donné que le modèle de hachage de la transaction de dépense est intégré dans le script auquel vous envoyez vos pièces, et que les fonctions de hachage sont à sens unique, vous deviez connaître cette valeur à l’avance : résoudre le problème après coup équivaudrait à casser Bitcoin. algorithme de minage.
En raison de cette conception, CTV a une propriété qui le rend beaucoup plus simple que certaines des propositions concurrentes. Premièrement, tous les « chemins de sortie » d’un contrat CTV sont connus à l’avance. Cela rend l’analyse de la sécurité des contrats CTV beaucoup plus facile et donc moins susceptible de bloquer vos fonds pour toujours.
Avant de conclure la discussion sur le fonctionnement de CTV, parlons de ce qui se passe dans le « modèle de hachage », car c’est finalement ce à quoi vous devez vous engager avant de générer le contrat CTV. Le hachage de modèle couvre la version de la transaction, le temps de verrouillage, le nombre d’entrées, les numéros de séquence, le nombre de sorties, le hachage des sorties et des valeurs. Il s’agit de chaque partie de la transaction, à l’exception des ID d’entrée exacts et des témoins. Cela signifie essentiellement que vous devez connaître la transaction exacte que vous souhaitez utiliser pour dépenser ces pièces. Cela donne à la conception très peu de marge de manœuvre dans laquelle il pourrait y avoir des bogues dans la conception qui permettent des vulnérabilités. C’est une autre raison pour laquelle CTV a une surface beaucoup plus petite à analyser que d’autres propositions.
Alors, où en est la communauté technique sur le sujet en ce moment ? Il semble y avoir un large consensus au sein de la communauté technique sur le fait qu’un mécanisme de clauses restrictives est souhaitable. Là où le désaccord persiste, c’est à savoir si CTV, en particulier, est le meilleur plan d’action suivant ou si d’autres propositions offriraient un meilleur ensemble de compromis.
De nombreuses personnes préconisent de faire davantage de recherches sur des schémas alternatifs pour ajouter des clauses à Bitcoin. C’est noble en principe. Cependant, j’ai entendu parler de CTV pour la première fois à Bitcoin2019, il y a à peine trois ans maintenant. Ainsi, bien qu’il s’agisse d’une nouvelle idée pour beaucoup de gens, il y a un ensemble de personnes qui en discutent depuis des années et essaient à juste titre de déterminer quelles sont les prochaines étapes appropriées. Néanmoins, il est important pour les Bitcoiners de maintenir une culture de scepticisme lorsqu’il s’agit de propositions de changements consensuels. C’est ce qui fait la force de Bitcoin.
Si vous avez lu jusqu’ici et que vous ne trouvez toujours pas l’histoire de CTV convaincante, c’est bien. L’utilisation de n’importe quel opcode dans Bitcoin est opt-in. L’existence de l’opcode multisig ne vous oblige pas à l’utiliser, et CTV n’est pas différent à cet égard. CTV n’a également aucun moyen de changer la façon dont vos pièces actuelles peuvent être dépensées. Vous devez prendre des mesures pour déplacer vos pièces vers une adresse CTV si et quand elle est activée afin qu’elle ait un impact sur votre capacité à effectuer des transactions sur le réseau Bitcoin.
J’appelle généralement ces types de changements « non invasifs » car ils ne vous affectent que si vous le souhaitez. De plus, j’aimerais plaider en faveur de la volonté de se prêter à ces types de changements, même si vous ne souhaitez pas vous-même les utiliser : vous êtes peut-être celui qui souhaite un changement non invasif dans le futur et la construction d’une culture de coopération aidera plus de gens à obtenir ce qu’ils veulent. Si un changement vous nuit ou modifie une propriété de Bitcoin qui est importante pour vous, vous devez absolument résister, mais tous les changements ne sont pas comme ça et, à mon avis professionnel, CTV ne l’est pas non plus.
Où est donc la polémique dans tout cela ? Pour le reste de cet article, je veux me recentrer sur CTV lui-même et parler de la procédure d’activation. C’est vraiment là que se trouve le cœur du débat. La première partie de la controverse découle du fait que beaucoup pensent qu’une tentative d’activation de CTV cet été est trop tôt. Si vous entendez parler de CTV maintenant, c’est probablement ce que vous ressentez. Comme je l’ai mentionné plus tôt, pour certaines personnes, il s’agit d’une proposition en gestation depuis environ trois ans. C’est là que réside la tension fondamentale.
Dans Bitcoin, il est presque impossible de déterminer le niveau de soutien pour une proposition sans simplement l’essayer. Le point de vue individuel de chacun sur le consensus social est teinté par ses connexions au sein du réseau. Le point de vue de chacun sur le consensus social est unique et valable, mais finalement incomplet. Il y a des recherches sur la façon d’améliorer notre compréhension collective de l’endroit où se trouvent les gens, mais les mêmes choses qui rendent Bitcoin unique rendent également ce problème particulier diaboliquement difficile à résoudre d’une manière que les gens conviendraient d’être juste. Malgré cela, nous avons activé des changements de consensus aussi récemment que l’année dernière. Même si Taproot est activé depuis des mois, il y a encore des gens qui ne comprennent pas vraiment ce que cela permet, et encore moins comment cela fonctionne.
Même s’il semble y avoir ce manque d’éducation concernant les propriétés de Taproot, personne ne semble contrarié par son activation. Je soupçonne que la raison en est qu’il y avait un consensus quasi unanime dans la communauté technique sur le fait que Taproot était une bonne idée et que le consensus et le code d’activation ont été officiellement publiés dans une version de Bitcoin Core, ce qui, je pense, a contribué à ce que les gens soient plus réceptifs.
Cela contraste avec la situation actuelle que j’aborderai dans un instant. Mais avant de le faire, il y a une chose que je veux clarifier à propos de l’histoire de Taproot : même s’il y avait un soutien massif pour l’activation de Taproot, le méthode d’activation était (et est toujours) vivement contestée.
Cela révèle également quelque chose au sujet du débat sur CTV. À savoir qu’il y a en fait deux débats en cours. Premièrement, il y a le débat qui vise à répondre à la question « Voulons-nous que CTV soit activé ? Deuxièmement, il y a le débat qui vise à répondre à la question, « En supposant que nous voulons CTV, quelle est la manière appropriée de l’activer? » Jeremy Rubin, l’auteur de la proposition CTV (BIP119), écrit un article sur son blog expliquant sa justification pour ses prochaines étapes, qui comprenait des plans pour publier un client Bitcoin, basé sur la dernière version de Bitcoin Core, qui contenait du code qui activerait CTV dès 2022.
Bien que le code responsable de l’activation soit tiré directement de l’épisode Taproot, une différence importante ici est que CTV n’a pas été fusionné dans Bitcoin Core, ni son code d’activation. Ces plans ont depuis été abandonnés en réponse à la controverse qui indique assez fortement qu’il y a un manque de consensus. Cela dit, à mon avis, le processus d’essayer des choses, d’intégrer les commentaires, puis de réessayer est la façon dont le consensus se construit. Après tout, si personne n’avait défendu Taproot, il ne serait toujours pas en ligne sur le réseau Bitcoin aujourd’hui.
Alors, où cela nous mène-t-il ? Les tentatives actuelles d’activation de CTV ont été abandonnées dans le but de laisser la discussion publique construire un consensus. Les mérites et les défauts de CTV devraient être et seront discutés au cours des prochains mois. En parallèle, il y a de nombreuses discussions sur la façon dont les softforks devraient être traités à l’avenir de sorte que Bitcoin puisse encore raisonnablement s’améliorer tout en minimisant les chances de laisser le processus être détourné par des acteurs qui souhaitent modifier matériellement l’objectif de Bitcoin.
Ceci est un article invité de Keags. Les opinions exprimées sont entièrement les leurs et ne reflètent pas nécessairement celles de BTC Inc. ou Bitcoin Magazine.