Une proposition étonnante qui fait déjà beaucoup parler d’elle, appelée « BitVM » pourrait potentiellement transformer en profondeur l’écosystème Bitcoin. Annoncée récemment par le développeur Robin Linus qui travaille actuellement à ZeroSync, cette proposition offre des perspectives passionnantes pour le développement d’applications Bitcoin en utilisant ce que l’on appelle le Zero Knowledge Proof (preuves à divulgation nulle de connaissance).
Ainsi, BitVM permettrait d’introduire pratiquement n’importe quel calcul arbitraire dans l’écosystème Bitcoin qui seraient exécutés off-chain. BitVM se présente comme un paradigme informatique qui permet d’exprimer des contrats turing-complete sur Bitcoin sans avoir besoin d’aucune modification des règles de consensus du réseau. Pour résumé BitVM, on peut dire que ce serait une sorte d’extension qui permettrait à Bitcoin de faire des calculs plus sophistiqués sans le modifier.
L’aspect le plus remarquable de BitVM est qu’il n’exige aucune modification du consensus Bitcoin existant. C’est d’ailleurs sur ce point précis que la proposition est perçue comme intéressante par une majorité de la communauté Bitcoin qui ne souhaite pas modifier le protocole ou le submerger de transactions perçues comme inutiles. Cependant, d’autres membres restent sceptiques quand à l’innovation que comporte BitMV.
La proposition technique de BitVM
Pour comprendre comment cela fonctionne, il est essentiel de se plonger dans les fondements de la proposition. Tout d’abord, il est important de savoir que le calcul informatique, y compris les transactions Bitcoin, repose surdes opérations logiques de base effectuées par des portes logiques. Les portes logiques prennent des valeurs binaires (1 ou 0) en entrée et produisent une valeur binaire en sortie en fonction d’une opération logique simple. BitVM se base sur une porte logique appelée « NAND gate, » qui peut effectuer toutes les opérations logiques nécessaires.
Pour construire une porte NAND dans le script Bitcoin, BitVM utilise des hashlocks et deux opcodes spécifiques : OP_BOOLAND et OP_NOT. Les hashlocks sont des scripts de bifurcation qui peuvent être dépensés de deux manières différentes, en révélant le pré-image d’un hashlock spécifique. L’une de ces manières place un 1 sur la pile, tandis que l’autre place un 0. Cela permet d’utiliser ces hashlocks pour « déverrouiller » un bit pour l’entrée d’une porte NAND.
BitVM utilise ensuite OP_BOOLAND et OP_NOT pour effectuer des opérations logiques. OP_BOOLAND produit un 1 en sortie si ses deux entrées sont des 1, tandis que OP_NOT inverse la valeur d’entrée (1 devient 0 et vice versa). En combinant ces opcodes avec les hashlocks, BitVM peut effectuer des opérations NAND dans le script Bitcoin, en vérifiant que la sortie correspond à ce que l’utilisateur prétend.
L’aspect révolutionnaire de BitVM réside dans sa capacité à construire des circuits complexes en utilisant ces portes NAND. Les utilisateurs peuvent découper n’importe quel calcul arbitraire en une série de portes NAND, puis encoder chaque porte dans un arbre de taptrees qui peut être verrouillé avec un UTXO. Ils pré-signent ensuite une série de transactions pour un jeu de défi et de réponse qui peut être exécuté on-chain.
L’idée à retenir est que le calcul complexe est d’abord vérifié off-chain, mais en cas de désaccord ou de comportement qui serait jugé malhonnête, il peut être contesté on-chain. Selon l’auteur, elles seraient vérifiés à la manière de ce qui se fait avec les « optimistic rollups ».
Quels sont les doutes concernant bitVM?
Bien que la proposition semble prometteuse dans le sens où il sera plus facile de créer des programmes sur le réseau Bitcoin sans le modifier, il y a tout de même des défis à relever. La gestion des énormes quantités de données générées par BitVM est par exemple un défi majeur. En effet, le coût de gestion des données off chain serait absolument colossal. Certains se questionnent alors sur le bien-fondé d’une telle initiative. C’est cela par exemple qui a été reproché au concept des Ordinals et c’est un point délicat pour les utilisateurs de Bitcoin.
L’autre problème que soulève BitMV est que cette solution ne fonctionne qu’entre deux parties ( celui qui prouve et celui qui vérifie), ce qui limite son utilité dans certains cas. Il y aura certainement des recherches supplémentaires pour généraliser avec plusieurs pariticipants.
Mot final sur l’apport de BitVM
En fin de compte, BitVM représente une avancée significative dans le domaine de Bitcoin en permettant l’introduction de calculs arbitraires tout en préservant l’intégrité du réseau Bitcoin. Ainsi, grâce à BitVM, il serait possible d’envisager des calculs plus avancés qui n’auraient été possible qu’en réalisant des softfork par exemple.
Certains vont même jusqu’à dire que c’est la fin des altcoins sur les autres blockchains et que tout se fera désormais sur Bitcoin.
Bien que des problématiques subsistent, cette proposition suscite un grand intérêt dans la communauté Bitcoin et mérite une attention continue.
BitVM pourrait bien être l’innovation ultime dont Bitcoin a besoin pour évoluer vers de nouvelles possibilités d’utilisation de Bitcoin.
Voir aussi :