CoinEx Institution : BitVM, le potentiel des contrats intelligents sur le réseau principal Bitcoin

CoinEx French
8 min readNov 3, 2023

--

Le 9 octobre, Robin Linus, un développeur de ZeroSync, a publié le livre blanc de BitVM, qui a suscité une énorme attention de la part de la communauté. BitVM introduit un nouveau paradigme informatique capable d’exprimer des contrats Bitcoin complets de Turing sans nécessiter de modifications des règles de consensus du réseau.

Contrats intelligents décentralisés : limites et objectifs

Le script de Bitcoin, un langage basé sur pile, fournit des structures de contrôle fondamentales, telles que des vérifications conditionnelles, pour définir la logique de validation des transactions. Il exige des signatures numériques valides pour dépenser des bitcoins grâce à un simple processus de validation conditionnelle. Cela dit, le script a été conçu pour être non-Turing complet. Bien qu’il ne prenne pas en charge les fonctionnalités complexes de contrôle de flux telles que les boucles, cette conception garantit la simplicité et la sécurité du langage. De telles limitations ont rendu difficile pour Script d’exécuter des calculs complexes, y compris ceux impliquant des contrats intelligents.

Alors que certaines solutions de couche 2 conçues pour Bitcoin peuvent atteindre des fonctions de base de contrat intelligent en verrouillant des actifs, elles reposent essentiellement sur des adresses multi-signatures et des mappages d’actifs inter-chaînes, qui nécessitent un certain niveau de confiance centralisée. Cela compromet l’engagement de Bitcoin en faveur de la décentralisation. Avant l’introduction de BitVM, la communauté Bitcoin avait exploré des méthodes qui seraient décentralisées, à confiance minimale et capables de calculs complets de Turing.

BitVM : calculez tout sur Bitcoin

Au cœur de son innovation, BitVM utilise le système de script existant de Bitcoin pour implémenter des portes logiques (cela inclut les portes ET, OU, NON et XOR, permettant des opérations telles que ET, OU, NON et XOR) afin de construire des circuits booléens arbitrairement complexes. Ces circuits sont utilisés pour effectuer des opérations logiques sur des entrées binaires et donner des sorties binaires ; le calcul booléen peut être implémenté à l’aide de portes logiques pour effectuer des opérations telles que ET, OU, NON et XOR. Plus précisément, BitVM utilise les contrats Hash Time Locked (HTLC) et Taproot (un soft fork pour l’optimisation de Script activé en novembre 2021) pour représenter les portes logiques fondamentales, telles que les portes ET et OU. BitVM combine ensuite ces portes logiques de base pour construire des circuits de toute complexité, simulant essentiellement un ordinateur programmable sur la blockchain Bitcoin.

Enfin, en cas de litige entre les parties contractantes, un protocole élégant de type « challenge-response », similaire aux preuves de fraude sur Bitcoin, peut être utilisé pour la validation. Un vérificateur fait une réclamation selon laquelle une fonction donnée évalue pour certaines entrées particulières à une sortie spécifique. Si cette affirmation est fausse, le vérificateur peut alors effectuer une preuve de fraude et punir le vérificateur. Grâce à ce mécanisme, toute fonction calculable peut être vérifiée sur Bitcoin.

Conception de BitVM

Engagement de valeur binaire

L’engagement de valeur binaire, un script Bitcoin, utilise des instructions if-else pour mettre en œuvre un système d’engagement. Cette primitive cryptographique garantit que l’expéditeur peut confirmer le contenu du message avant de l’envoyer, et que le contenu ne peut être modifié une fois qu’il est divulgué publiquement. Ce système d’engagement englobe deux valeurs de hachage, hash0 et hash1. La valeur renvoyée sera 0 ou 1, selon que la valeur de hachage de l’entrée est identique à l’une de ces deux valeurs de hachage.

Figure 1 : Implémentation concrète d’un engagement 1 bit

Source : https://bitvm.org/bitvm.pdf

Engagement de porte logique

Dans la théorie du calcul, toute fonction calculable peut être représentée comme un circuit booléen. En particulier, la porte NAND est une porte logique universelle qui peut être utilisée pour construire toutes les autres portes logiques complexes. BitVM intègre deux engagements de valeur binaire représentant les deux entrées et un troisième engagement de valeur binaire représentant la sortie pour implémenter la porte NAND.

BitVM exprime ingénieusement la porte NAND par le biais de scripts Bitcoin. Cela lui permet de construire des circuits logiques booléens arbitrairement complexes, simulant ainsi efficacement un ordinateur programmable via Script.

Figure 2 : Mise en œuvre d’une porte NAND à l’aide d’engagements de valeur binaire

Source : https://biquanlibai.notion.site/BitVM-2b8557e0ea004d0cbc52951782bc9754

Figure 3 : Engagement de porte logique pour une opération NAND

Source : https://bitvm.org/bitvm.pdf

Le script calcule la valeur NAND des deux entrées pour s’assurer qu’elle correspond au bit de sortie engagé.

Engagement de circuit binaire

BitVM peut exprimer n’importe quel circuit en composant des engagements de porte. Chaque étape de l’exécution est engagée dans un Tapleaf. Ils sont tous combinés dans la même adresse Taproot, de sorte que le vérificateur puisse exécuter n’importe quelle porte du circuit. L’exécution d’une porte nécessite que le vérificateur ouvre l’engagement de porte correspondant et définisse les valeurs de ses bits d’entrée et de sortie. Par exemple, dans la figure 4, A, B, C et D sont des engagements de valeur de bit prédéfinis, représentant chacun un bit. Des opérations logiques impliquant les huit portes NAND sont ensuite effectuées. Par exemple, si A NAND B donne E, et que E est utilisé comme entrée pour la porte NAND suivante, la sortie finale de l’ensemble du circuit sera TRUE. Cette conception de circuits booléens connecte les portes NAND des engagements de valeur de bit et permet d’effectuer des opérations logiques complexes, offrant une représentation compacte pour un calcul vérifiable sur la blockchain Bitcoin.

Figure 4 : Un circuit avec huit portes NAND différentes

Source : https://bitvm.org/bitvm.pdf

Défis et réponses

Dans BitVM, il ne suffit pas de s’engager sur un circuit, et un mécanisme de défi-réponse est nécessaire pour prouver l’exactitude des calculs. Pour ce faire, le vérificateur et le prouveur doivent pré-signer une séquence de transactions lors de la configuration. Les transactions sont liées dans l’ordre « défi — réponse — défi — réponse », créant ainsi plusieurs séries d’interactions défi-réponse. Si l’une des parties cesse de s’engager, alors, après un délai d’attente, l’autre partie remporte le défi et peut prendre les deux dépôts. Ce mécanisme n’est requis qu’en cas de fraude. Tant que les deux parties coopèrent, elles peuvent régler conjointement tout contrat avec une signature 2 sur 2.

Voyons comment ce mécanisme fonctionne dans un cas hypothétique. Paul (vérificateur) et Vicky (prouveur) ont pré-signé une séquence de transactions. Vicky peut alors lancer un défi (TX 2) en sélectionnant un défi (hash7) parmi l’un des hashlocks de ses feuilles Tapscript. Cela déverrouille pour Paul un Tapscript spécifique et le force à l’exécuter, avec des entrées et des sorties ouvertes. Toute affirmation incohérente peut être réfutée rapidement en répétant cette procédure pendant quelques séries de requêtes. Si le prouveur cesse de collaborer, le vérificateur peut déverrouiller une pré-image de hachage qu’il détient pour forcer le prouveur à répondre sur la chaîne. Chaque série de requêtes peut valider ou réfuter une porte spécifique. Grâce à la recherche binaire (un algorithme utilisé pour localiser un élément spécifique dans un tableau trié), le vérificateur peut rapidement identifier l’erreur du prouveur après seulement quelques séries de défis et de réponses. Une fois que les deux engagements du prouveur sont en conflit, le vérificateur remporte immédiatement le défi et prend le dépôt.

Figure 5 : Une séquence de transactions pré-signées pour effectuer plusieurs séries de défis et de réponses

Source: https://bitvm.org/bitvm.pdf

Cette conception méticuleuse permet à BitVM d’effectuer une vérification sur la chaîne de tout calcul complexe, ce qui garantit l’efficacité de la collaboration et impose des pénalités en cas de fraude. Elle démontre la possibilité de vérifier le calcul interactif complet de Turing dans le réseau Bitcoin.

Principaux aspects de la conception de BitVM

Calcul hors chaîne et vérification sur la chaîne

BitVM décharge la blockchain du fardeau des calculs complexes, réservant la blockchain Bitcoin au seul but de vérifier les résultats. Cette approche évite d’exécuter des contrats complexes directement sur la blockchain, ce qui atténue le gonflement de la blockchain.

Portes logiques exprimées avec des hashlocks et des scripts Bitcoin

BitVM exploite les hashlocks et les opcodes de script pris en charge par Bitcoin pour représenter des portes logiques de base, telles que les portes ET et NON. La connexion de ces portes logiques lui permet de construire des circuits d’une complexité arbitraire, ce qui permet un calcul complet de Turing.

Un mécanisme de théorie des jeux pour le prouveur et le vérificateur

Le mécanisme de validation de BitVM, qui ressemble à Optimistic Rollup, implique des défis et des réponses interactifs entre les parties du calcul. En fin de compte, le résultat de calcul correct est confirmé sur la chaîne. Si le prouveur a triché, le vérificateur pourrait exécuter des pénalités sur la blockchain Bitcoin. En tant que tels, BitVM et Optimistic Rollup utilisent des mécanismes d’interaction similaires pour la vérification sur la chaîne, et la seule différence est que BitVM utilise directement des scripts Bitcoin pour mettre en œuvre un processus interactif de défi-réponse.

Impact minimal sur la chaîne

Le processus de calcul de BitVM a un impact minimal sur la blockchain Bitcoin, ne laissant qu’un petit nombre de transactions sur la chaîne en cas de litige. Cela préserve l’efficacité et l’évolutivité de Bitcoin.

Pas besoin de Soft Forks

Comme BitVM utilise uniquement les capacités de script Bitcoin existantes, il ne nécessite aucune modification du protocole Bitcoin par le biais de Soft Forks. Cela facilite l’intégration de BitVM dans le réseau principal Bitcoin.

Conclusion

La plus grande innovation de BitVM réside dans sa capacité à mettre en œuvre une vérification Turing-complète sans modifier le protocole Bitcoin de base ; il y parvient en utilisant de manière créative des scripts, en particulier ceux optimisés par Taproot. Cette conception ingénieuse permet une intégration transparente avec le réseau principal Bitcoin sans introduire de nouveaux problèmes de compatibilité ni rendre Bitcoin moins décentralisé.

La solution innovante de BitVM a le potentiel d’introduire des contrats intelligents et des applications décentralisées dans l’écosystème Bitcoin. Par exemple, il peut être utilisé pour construire des ponts inter-chaînes à confiance minimale pour connecter différents actifs de blockchain, améliorant l’interopérabilité de Bitcoin. De plus, BitVM peut également aider à créer des couches d’extension zkRollup plus efficaces pour rendre Bitcoin plus évolutif. En un mot, BitVM présente les vastes possibilités de faire entrer l’écosystème Bitcoin dans une nouvelle ère uniquement grâce à l’utilisation innovante des fonctionnalités existantes.

Références

https://bitvm.org/bitvm.pdf

https://github.com/supertestnet/tapleaf-circuits

https://biquanlibai.notion.site/BitVM-2b8557e0ea004d0cbc52951782bc9754

--

--

CoinEx French
CoinEx French

Written by CoinEx French

Fondé en décembre 2017, CoinEx est un fournisseur de services d’échange de pièces numériques mondial et professionnel. Website: https://www.coinex.com/fr/

No responses yet