Bitcoin n’est peut-être pas connu pour sa capacité à exécuter des smart contracts et des scripts arbitraires, mais comme nous l’avons décrit dans de précédents articles de blog, il permet d’intégrer des conditions de dépense complexes dans une transaction Bitcoin.

Conditions de dépense

Chaque adresse Bitcoin contient un ensemble de conditions de dépense. La plus simple est : « l’émetteur de cette transaction possède-t-il la clé privée de cette adresse ? ». Il existe d’autres conditions de dépense, comme un timelock, qui n’autorise la dépense qu’après un certain délai, ou le multisig, qui nécessite l’accès à plusieurs clés privées pour dépenser les fonds.

Bien que les conditions de dépense du Bitcoin actuel puissent déjà être très puissantes, elles reviennent toutes essentiellement à la même chose : si la condition de dépense est remplie, les bitcoins peuvent être dépensés de n’importe quelle manière choisie par l’émetteur.

Covenants

Un covenant est une condition de dépense qui introduit de nouvelles possibilités quant à la manière dont une transaction Bitcoin peut être dépensée. Par exemple, une adresse Bitcoin pourrait contenir un covenant qui n’autorise l’envoi de ce bitcoin que vers une autre adresse prédéfinie. Il peut aussi limiter quels UTXOs peuvent être dépensés depuis cette adresse Bitcoin.

Examinons de plus près deux propositions visant à permettre cette fonctionnalité :

Check Template Verify (CTV)

CTV est une proposition visant à introduire des covenants dans le script Bitcoin. Il permet des conditions de dépense qui vérifient si les données de la transaction correspondent à celles définies dans le covenant. Pour cela, il hache une partie des données de transaction et les compare à des valeurs de hachage prédéfinies dans le covenant.

Un UTXO bitcoin comportant 3 conditions de dépense différentes

Comme ce hash de transaction est calculé uniquement à partir des entrées, des sorties, de la version et du locktime, ces éléments peuvent être pré-calculés. Avec un covenant CTV, une adresse Bitcoin s’engage à n’envoyer dans le futur que ces transactions pré-calculées.

Les transactions pré-calculées référencées dans les covenants

Cela signifie qu’avant de recevoir des transactions sur cette adresse Bitcoin, vous devez savoir exactement comment vous allez les dépenser. Cet engagement peut présenter des avantages pour la sécurisation de vos bitcoins, dont certains seront expliqués plus loin.

CheckTXHashVerify

Une autre proposition pour permettre les covenants dans Bitcoin est « CheckTXHashVerify », qui fonctionne d’une manière très similaire à CTV. Lui aussi engage certaines données de transaction comme condition de dépense.

En revanche, CheckTXHashVerify n’engage pas un ensemble complet de données de transaction. Il peut au contraire n’engager que certaines données spécifiques. Il peut s’agir, par exemple, du nombre d’entrées, des destinataires (outputs) ou du locktime. Vous trouverez une liste exhaustive des conditions ici.

Covenants récursifs

Un covenant récursif est un type de condition de dépense qui exige que l’adresse de réception suivante inclue elle aussi cette même condition de dépense. Un exemple concret serait celui des associations de propriétaires aux États-Unis, qui imposent au propriétaire d’une maison de ne la vendre qu’à quelqu’un qui la conservera dans cette association, laquelle reste elle-même soumise à la même condition.

Des membres de la communauté Bitcoin ont mis en garde contre les covenants récursifs, car ils craignent qu’ils puissent permettre des pratiques intrusives liées aux règles AML et KYC, comme un covenant récursif qui ne mettrait sur liste blanche que certaines adresses bitcoin associées à des informations KYC.

Il existe d’autres propositions de covenants qui vont bien au-delà de ce que permettent les deux implémentations ci-dessus. Certaines d’entre elles autorisent les covenants récursifs. CTV n’autorise pas les covenants récursifs, car il exige que toutes les données des transactions futures (incluses dans le covenant) soient connues au moment de la création de l’adresse bitcoin. CheckTXHashVerify pourrait autoriser les covenants récursifs.

Cas d’usage

Il existe de nombreuses façons d’utiliser les covenants dans Bitcoin. Voyons-en trois :

Vaults

Les vaults sont un moyen de rendre l’autoconservation potentiellement plus sûre et plus pratique. Un vault est une adresse bitcoin de stockage à froid qui ne peut envoyer des fonds que vers une autre adresse bitcoin prédéfinie. Cette adresse bitcoin prédéfinie est assortie d’un timelock, ce qui signifie qu’elle ne peut dépenser les fonds qu’après un certain délai. En plus du timelock, cette adresse bitcoin prédéfinie comprend aussi un covenant qui lui permet de renvoyer les fonds vers l’adresse de stockage à froid sans attendre le timelock.

Exemple simplifié de l’architecture d’un vault

Grâce à cette conception, il est possible de créer une solution de portefeuille capable d’« annuler » des transactions malveillantes dans le délai du timelock prédéfini. Si le timelock de l’adresse intermédiaire est, par exemple, de 7 jours, l’utilisateur dispose d’une semaine pour « annuler » effectivement une transaction sortante qu’il n’avait pas l’intention d’envoyer.

Gestion de la congestion

Une autre fonctionnalité intéressante que les covenants pourraient permettre est la gestion de la congestion. Avec la gestion de la congestion, un utilisateur Bitcoin peut envoyer une transaction intermédiaire avec des frais plus élevés qui verrouille une transaction future.

Une transaction de gestion de la congestion et une transaction de paiement ultérieure

Par exemple, cela pourrait signifier qu’en période de frais élevés, lorsqu’une plateforme d’échange bitcoin devrait habituellement envoyer une grosse transaction avec de nombreuses sorties coûteuses, elle peut à la place envoyer une transaction avec une seule sortie qui s’engage à distribuer les fonds vers de nombreuses sorties une fois les frais redescendus.

Channel factories

Les covenants pourraient aussi ouvrir une nouvelle manière de faire évoluer le réseau Lightning. Les channel factories sont des canaux Lightning partagés entre plus de 2 parties. Elles permettent aux participants d’une channel factory d’ouvrir des canaux entre eux sans avoir besoin d’envoyer de transactions on-chain supplémentaires.

Une channel factory avec 3 participants et 3 canaux

Dans une channel factory à 3 parties, chaque participant peut envoyer une transaction on-chain et recevoir 2 canaux Lightning. Dans une channel factory à 4 parties, on passe à 3 canaux Lightning par participant, et ainsi de suite. Les channel factories réduisent l’empreinte on-chain en permettant davantage de canaux Lightning par transaction on-chain.

Conclusion

Les covenants promettent de changer notre manière de penser les conditions de dépense du bitcoin. Même s’il n’existe actuellement aucun plan définitif pour activer les covenants sur Bitcoin, il s’agit d’une extension qui pourrait rendre possibles de nombreuses fonctionnalités intéressantes.

Vous n’avez pas encore de BitBox ?

Assurer la sécurité de vos cryptos n’a pas besoin d’être compliqué. Le hardware wallet BitBox02 stocke hors ligne les clés privées de vos cryptomonnaies. Vous pouvez ainsi gérer vos coins en toute sécurité.

Le BitBox02 existe aussi en version Bitcoin-only, avec un firmware radicalement focalisé : moins de code signifie moins de surface d’attaque, ce qui améliore encore votre sécurité si vous ne stockez que du Bitcoin.

Procurez-vous-en un dans notre boutique !

Questions fréquentes (FAQ)

Que sont les covenants Bitcoin ? Les covenants Bitcoin sont des conditions de dépense qui introduisent de nouvelles possibilités de gestion des transactions Bitcoin, permettant un contrôle plus sûr et plus précis de la dépense des bitcoins.

Qu’est-ce que Check Template Verify (CTV) ? CTV est une proposition qui permet aux adresses Bitcoin de s’engager à n’envoyer que des transactions pré-calculées en vérifiant si les données de transaction correspondent à des valeurs de hachage prédéfinies.

En quoi CheckTXHashVerify diffère-t-il de CTV ? CheckTXHashVerify engage certaines données de transaction comme condition de dépense, contrairement à CTV, ce qui permet un contrôle plus flexible des transactions.

Que sont les covenants récursifs ? Les covenants récursifs exigent que toute transaction future depuis une adresse inclue la même condition de dépense, ce qui peut restreindre les transactions à un ensemble prédéfini d’adresses.

Comment les covenants peuvent-ils être utilisés pour les vaults ? Les vaults utilisent des covenants pour créer un stockage sécurisé qui ne peut envoyer des bitcoins qu’à des adresses prédéfinies, ce qui renforce la sécurité.

Qu’est-ce que la gestion de la congestion dans Bitcoin ? La gestion de la congestion utilise des covenants pour gérer la congestion du réseau en s’engageant sur des transactions futures avec potentiellement des frais plus faibles.

Comment les channel factories fonctionnent-elles avec les covenants ? Les channel factories utilisent des covenants pour faire évoluer le réseau Lightning en permettant plusieurs canaux par transaction on-chain.

Shift Crypto est une entreprise privée basée à Zurich, en Suisse. Notre équipe de contributeurs Bitcoin, d’experts crypto et d’ingénieurs sécurité conçoit des produits qui permettent à nos clients de progresser sereinement, du niveau débutant à la maîtrise de la gestion des cryptomonnaies. Le BitBox02, notre hardware wallet de deuxième génération, permet aux utilisateurs de stocker, protéger et effectuer des transactions en Bitcoin et autres cryptomonnaies en toute simplicité, avec son logiciel compagnon, la BitBoxApp.

This post was translated with the help of AI