Titres Titres
Découvrez le premier article d’une série passionnante qui explore en profondeur les propositions de covenants individuelles ayant atteint un niveau de maturité méritant une analyse détaillée.
Qu’est-ce que CHECKTEMPLATEVERIFY (CTV) ?
Le CHECKTEMPLATEVERIFY, abrégé en CTV, proposé par Jeremy Rubin dans le cadre de la BIP 119, est sans conteste la proposition de covenant la plus aboutie du moment. En comparaison avec d’autres propositions, et même au sein de l’ensemble des covenants, CTV se démarque par sa structure solide et réfléchie. Dans un écosystème où la flexibilité excessive des covenants suscite de nombreuses inquiétudes, CTV a été conçu pour limiter ses possibilités afin d’éviter des conséquences néfastes pour Bitcoin.
Les Fondamentaux d’une Transaction Bitcoin
Pour saisir le fonctionnement de CTV, il est essentiel de comprendre les éléments d’une transaction Bitcoin. Chaque transaction est constituée d’entrées, correspondant à des pièces non dépensées (UTXOs), et de sorties, qui représentent les nouvelles pièces non dépensées créées lorsque la transaction est confirmée dans un bloc. À un niveau supérieur, une transaction repose sur plusieurs composants clés :
- Version de la transaction : Un champ précisant les règles ou fonctionnalités applicables.
- Marqueur et drapeau : Indicateurs spécifiques qui montrent l’utilisation de Segwit.
- Nombre d’entrées : Indique combien d’entrées la transaction comporte.
- Détails des entrées : Chaque entrée contient un TXID, un VOUT, et d’autres informations nécessaires à la validation.
- Nombre de sorties : Le nombre de nouvelles sorties générées par la transaction.
- Détails des sorties : Montant en satoshis, ScriptPubKey, etc.
- nLocktime : Définit la date ou la hauteur de bloc à laquelle la transaction devient valide.
Fonctionnement de CTV
CTV introduit un opcode qui permet une forme basique d’introspection et de transfert de données dans le cadre des propositions de covenant. Concrètement, CTV permet à un script de prendre un hachage de 32 octets défini à l’avance et de le comparer à un hachage de la plupart des champs de la transaction en cours de dépense. Si les deux hachages ne correspondent pas, la transaction est déclarée invalide.
Champs engagés par CTV
Les champs suivants sont engagés par le hachage CTV :
- nVersion
- nLocktime
- Nombre d’entrées
- Un hachage de tous les champs nSequence
- Nombre de sorties
- Un hachage de toutes les sorties
- Indice d’entrée
Les Avantages Pratiques de CTV
CTV offre la possibilité de restreindre une sortie afin qu’elle ne puisse être dépensée, selon les règles de consensus, que par une transaction prédéfinie. Certains pourraient arguer que la possibilité de pré-signer des transactions rend CTV redondant. Cependant, la force de CTV réside dans son élimination totale de la confiance requise dans les détenteurs de clés. Une fois qu’une transaction de dépense est définie et qu’elle est verrouillée avec un hachage CTV, aucun autre moyen de dépense n’est envisageable, cela étant renforcé par le consensus.
Facilitation de la Coordination
Un des principaux atouts de CTV est qu’il simplifie la coordination des sociétés ou groupes souhaitant réaliser des transactions communes. Il élimine le besoin de synchroniser les signatures, permettant à chacun d’apporter les informations nécessaires afin de générer des transactions CTV. Cela réduit significativement le risque d’erreurs ou d’oubli dans des transactions collaboratives.
Conclusion
En résumé, CHECKTEMPLATEVERIFY est un covenant restreint qui apporte une capacité d’introspection et de transfert de données, tout en améliorant l’efficacité, la scalabilité et la sécurité de ce qui peut être réalisé en utilisant des transactions pré-signées. CTV représente non seulement une avancée technique majeure, mais constitue également un élément de confiance dans l’écosystème Bitcoin. Avec une multitude de projets illustrant son utilisation, CTV mérite une sérieuse considération et, idéalement, une activation rapide au sein des protocoles Bitcoin.
- Exemple d’un pool de paiement par stutxo.
- Mise en œuvre d’un coffre-fort CTV par James O’Beirne.
- Portage d’une preuve de concept d’Ark utilisant CTV par Steven Roose.
- Langage Sapio par Jeremy Rubin, facilitant la création de contrats avec CTV.
- Proposition de « Timeout Trees » pour un design de coinpool basique.
- De nombreux protocoles potentiels comme les Discreet Log Contracts optimisés.
Source https://bitcoinmagazine.com/technical/bitcoin-covenants-checktemplateverify-bip-119