Tour d’horizon des projets d’expansion écologique du BTC : BitVM, l’art de la gravure

Comment sont mis en œuvre les smart contracts sur le réseau Bitcoin ?

Écrit par : Simon Shieh

Révision de la préface

Dans l’article précédent « Tour des plans d’expansion écologique du BTC : où aller pour les inscriptions », nous avons discuté des principes techniques et des éventuels problèmes de sécurité de l’écologie d’inscription populaire, et mentionné la possibilité d’utiliser des inscriptions récursives pour mettre en œuvre des contrats intelligents. Cependant, en raison des restrictions de Luke sur les scripts Taproot, l’inscription récursive semble rencontrer quelques obstacles. Existe-t-il donc d’autres possibilités pour mettre en œuvre des contrats intelligents sur le réseau Bitcoin ?

Robin Linus, co-fondateur du développeur de blockchain ZeroSync, a publié un article intitulé « BitVM : Compute Anything on Bitcoin » le 9 octobre 2023, dans lequel il propose de lancer un plan visant à intégrer des contrats intelligents à la blockchain Bitcoin.

Le document propose une idée très intéressante consistant à utiliser la racine pivotante pour effectuer presque tous les calculs arbitraires et à utiliser ces calculs pour vérifier ce qui se passe en dehors de la chaîne Bitcoin. L’astuce consiste à conserver toute la logique hors chaîne et à contester les résultats malhonnêtes en chaîne avec quelques étapes de calcul lorsque d’autres les affirment.

En d’autres termes, il s’agit de mettre la logique d’un vérificateur dans le réseau Bitcoin, d’utiliser la sécurité consensuelle forte de Bitcoin pour devenir un tiers de confiance pour toute couche informatique complète de Turing, puis d’utiliser le principe des cumuls optimistes pour mettre en œuvre des -calculs en chaîne Vérification des résultats.

Alors, comment mettre un élément de logique Verifier dans le réseau Bitcoin ? Afin de faire écho à la « gravure » de la section précédente, je voudrais l’appeler la technologie de « gravure » des circuits sur le réseau Bitcoin.

Circuit de porte logique

À l’intérieur de votre ordinateur ou de votre téléphone portable, l’électricité assure toutes les fonctions de l’ordinateur en fournissant une série de uns et de zéros. Ceci est accompli grâce à des millions de minuscules composants appelés portes logiques. Ces portes logiques sont les éléments de base des puces informatiques.

Chaque porte logique reçoit un ou deux « bits » d’information, et chaque bit est soit un 1, soit un 0. Ensuite, la porte logique effectue une opération logique simple selon les règles définies, telles que les opérations « ET », « OU » ou « NON ». Le résultat de ces opérations est également un bit, soit un 1, soit un 0. Une fois l’opération terminée, le résultat est transmis à la porte logique suivante.

Ce système basé sur des opérations logiques simples a permis de découvrir que même les calculs et les fonctions les plus complexes peuvent être réalisés en combinant un grand nombre d’opérations logiques simples. Cette combinaison et cette collaboration de portes logiques constituent la base permettant aux ordinateurs et appareils électroniques modernes d’effectuer des tâches complexes. Grâce à ces opérations logiques de base, les ordinateurs peuvent gérer des opérations arithmétiques complexes, le stockage de données, le rendu d’images et d’autres fonctions.

L’image ci-dessous est une porte logique très spéciale appelée “porte NAND”. Elle peut construire tout type de circuit de porte logique. Bien sûr, elle ne peut pas être aussi efficace que d’autres types de portes spécialisées, mais cela peut toujours être fait. Le circuit de porte logique de BitVM est composé de portes NAND.

Comment graver la porte NAND sur Bitcoin

La construction d’une porte NAND au-dessus des scripts Bitcoin existants peut être réalisée en combinant un verrou de hachage avec deux opcodes qui peuvent ne pas être bien connus : OP_BOOLAND et OP_NOT.

Premièrement, un verrou de hachage peut être utilisé pour créer un script de branche qui peut être utilisé de deux manières : soit pour satisfaire le verrou de hachage, soit pour satisfaire le verrou de hachage B. Ainsi, le chemin A met un 1 sur la pile et le chemin B met un 0 sur la pile.

En satisfaisant un verrou de hachage spécifique, vous pouvez “déverrouiller” un bit qui sert d’entrée à la porte NAND que nous allons construire. Puisque vous ne pouvez satisfaire aux exigences que d’un seul des chemins, cette approche permet uniquement à l’utilisateur de soumettre un bit à la fois.

La logique d’une porte NAND est de recevoir deux bits en entrée et en sortie un bit. Si les deux bits d’entrée sont 1, la sortie est 0 ; si les entrées sont d’autres combinaisons, la sortie est 1. En utilisant deux astuces de verrouillage de hachage, vous pouvez soumettre ces deux entrées et vérifier que la sortie est correcte, ce à quoi servent OP_BOOLAND et OP_NOT.

Le fonctionnement de OP_BOOLAND est à l’opposé d’une porte NAND : si les deux entrées sont à 1, la sortie est à 1 ; toute autre combinaison d’entrées produit un 0. OP_NOT génère la valeur opposée de l’entrée. Ainsi, en combinant ces deux opcodes, vous pouvez prendre deux entrées et faire la somme inverse dans la pile de script. Enfin, vous pouvez utiliser OP_EQUALVERIFY et l’astuce de verrouillage de hachage pour vérifier le résultat de l’assertion. Si les résultats réels de l’opération NAND sur la pile sont incohérents avec la sortie affirmée par l’utilisateur, le script échoue à la validation.

De cette manière, le circuit de la porte NAND est « gravé » dans le script Bitcoin, forçant ainsi une opération de porte NAND virtuelle via le script Bitcoin.

Comment graver des circuits à grande échelle

Bien que l’idée d’utiliser des scripts Taproot pour réaliser la gravure de circuits soit cool, sans parler des circuits à très grande échelle comme les PC, même pour mettre en œuvre n’importe quel ensemble de calculs, il faut des milliers de circuits de porte NAND, ce qui est limité dans Bitcoin. des calculs complexes dans l’espace de script Taproot ?

BitVM propose la méthode Taproot script tree (Taproot Tree). Afin de mettre en œuvre des processus informatiques complexes dans les scripts Bitcoin, on peut construire des circuits informatiques en connectant des portes logiques en série. Dans ce schéma, les verrous de hachage sont utilisés pour lier des portes individuelles afin de réaliser une exécution séquentielle d’opérations logiques. Plus précisément, si le script d’une porte produit un résultat de sortie différent C1 ou C2 basé sur une entrée de pré-image de hachage différente (valeur de texte en clair de hachage), alors la porte suivante utilisera la valeur de verrouillage de hachage correspondante comme entrée.

Cette méthode peut implémenter un mécanisme de pénalité, c’est-à-dire que si vous essayez de mentir sur le résultat de la porte précédente, vous ne pouvez révéler que l’image originale d’un autre verrou de hachage. Ce mécanisme peut être utilisé pour l’informatique interactive entre deux utilisateurs, où ils conviennent à l’avance de participer à une tâche informatique spécifique, puis décomposent le processus informatique en circuits constitués uniquement de portes NAND. Ils doivent choisir le verrou de hachage approprié pour chaque porte du circuit et l’encoder dans l’arborescence de script qui verrouille l’UTXO.

Ensuite, plusieurs adresses sont utilisées pour former une matrice d’adresses Taproot, puis le circuit logique est gravé dans le script Taproot d’une série de transactions UTXO connectées dans une structure arborescente via la méthode Taproot Tree, formant finalement une logique « de type contrat » qui peut gérer certaines tâches informatiques.

Défi contre la fraude

Le défi de fraude est au cœur de la technologie OP (Optimism Rollup) (bien qu’il n’ait pas encore été implémenté ~). L’idée est qu’avant qu’un lot de transactions ne soit soumis par lots, le challenger lance un défi de fraude (engagement contre pari) sur les transactions considérées comme erronées. , le contrat du vérificateur sur le réseau principal déterminera si le demandeur a fait du mal en fonction des changements dans la racine de l’état après l’exécution, puis allouera les actifs promis par les deux parties.

Dans bitVM, l’arborescence de script est conçue en deux circuits. En plus de permettre au prouveur de se soumettre à un circuit, le challenger doit également être capable de contester la déclaration du prouveur. Ceci peut être réalisé en pré-signant une série de transactions. Ces transactions pré-signées sont connectées via “Challenge->Response->Challenge->…”. Si une partie s’arrête pendant un certain temps, l’autre partie remportera le défi et récupérera les dépôts des deux parties.

L’image ci-dessus montre une série de transactions pré-signées :

  • Challenge : Vicky (challenger/vérificateur) libère une pré-image dans le chemin du script (ces pré-images ne sont connues que du challenger), qui est utilisée pour contester la preuve ;
  • Réponse : Paul (le prouveur) exécute la porte logique correspondante et renvoie les fonds au script initial ;

Toute déclaration incohérente peut être rapidement réfutée après quelques séries d’enquêtes. Si le prouveur cesse de coopérer avec le challenger hors chaîne, le challenger forcera le prouveur à coopérer sur la chaîne : chaque fois que le challenger déverrouille un verrou de hachage, le nœud feuille Taproot correspondant à chaque porte NAND dans l’UTXO du prouveur n’aura que It ne peut être dépensé que si le prouveur connaît une pré-image détenue par le challenger. Le prouveur peut prouver qu’un nœud feuille Taproot donné s’exécute correctement en révélant ses entrées et ses sorties. Le principe est que le challenger déverrouille l’image originale du hachage correspondant à Tapleaf en la révélant. Grâce à la recherche binaire, le challenger peut verrouiller l’erreur du prouveur après un cycle limité (O(logn)) de défis et de réponses.

L’ensemble du processus implique plusieurs séries d’interactions pour garantir que le contrat est correctement réglé. Le challenger peut continuer à défier le prouveur jusqu’à ce que celui-ci confirme le résultat correct pour chaque porte, ou le challenger peut retirer les fonds après un certain temps dans le cas où le prouveur ne répond pas au défi. Dans un monde idéal, toutes les opérations se déroulent hors chaîne et les deux parties collaborent pour finaliser le règlement, mais si la coopération échoue, les deux parties peuvent garantir que le contrat est résolu correctement grâce à un jeu de défi en chaîne.

Obstacles à l’atterrissage et problèmes de sécurité

Cette proposition implique le traitement et la génération de quantités extrêmement importantes de données. L’arborescence de script Taproot utilisée peut contenir des milliards de nœuds feuilles, et le temps de traitement des transactions pré-signées associées peut prendre au moins plusieurs heures pour garantir un règlement précis. L’exécution des conditions de déverrouillage prédéfinies pour chaque adresse Taproot nécessite des frais de minage, donc plus il y a de combinaisons d’adresses, plus le coût est élevé.

Une limitation majeure de ce système est qu’il ne fonctionne que pour les interactions entre deux participants : l’un agit comme un prouveur, certifiant l’exactitude de son exécution, et l’autre agit comme un vérificateur, contestant les affirmations du premier. Bien que les études futures puissent trouver des moyens d’inclure davantage de participants, il ne semble pas y avoir de solution claire pour le moment.

Dans un scénario de règlement coopératif, tous les participants doivent être en ligne, ce qui impose certaines restrictions sur le caractère pratique et pratique du protocole.

En termes de sécurité, il existe principalement les risques de sécurité suivants :

  1. En raison de contraintes de coûts, une grande partie du travail informatique doit être effectuée hors chaîne. L’informatique hors chaîne présente certains risques de sécurité communs aux services centralisés.

  2. Une grande quantité de données est stockée hors chaîne, et la disponibilité et la sécurité des données sont également des points de risque à prendre en compte.

  3. La présence de failles logiques dans le circuit gravé lui-même est également un point de risque pour la sécurité. En raison de l’illisibilité du circuit, des coûts d’audit ou de vérification formelle supplémentaires doivent être payés.

Metatrust a aidé Uniswap à mener un travail de vérification formelle complet et possède une très riche expérience en matière d’audit de circuits ZK et de vérification formelle, ce qui peut garantir la mise en œuvre sûre de l’écosystème BitVM.

Les solutions des deux articles précédents sont des solutions techniques qui viennent de devenir populaires cette année. Dans le prochain article, nous présenterons une solution plus ancienne et plus « orthodoxe », une version améliorée du Lightning Network - Taprott Assets.

Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • Commentaire
  • Reposter
  • Partager
Commentaire
0/400
Aucun commentaire
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)