Bitcoin Script Restoration Project : vers un retour aux sources pour Bitcoin
Le protocole Bitcoin est un protocole ossifié. Cela signifie qu’il est volontairement peu mis à jour afin d’éviter l’introduction de bug dans le code. Une décision fondatrice au protocole qui permet d’assurer sa pérennité et met l’accent sur la sécurité plutôt que l’évolutivité. Toutefois, il n’est pas pour autant impossible de faire évoluer le protocole. Ainsi, le développeur Rusty Russell cherche désormais à faire revivre des fonctionnalités longtemps oubliées avec The Bitcoin script restoration project.
Bitcoin et son langage Script
À l’instar d’Ethereum et son langage de programmation Solidity, Bitcoin dispose de son propre langage appelé Script. Celui-ci permet d’ajouter une couche de programmabilité aux transactions en ajoutant des conditions de dépenses.
Toutefois, celui-ci reste relativement limité. Par exemple, il n’est pas possible d’effectuer de multiplications ou de divisions en Script.
Pourtant, il fut un temps où cela était possible. En effet, aux premières heures du réseau, le langage Script disposait de plus de fonctionnalités. En pratique, ces fonctionnalités sont appelées opcodes pour operational codes.
Ainsi, pendant sa première année d’existence, le langage Script comportait plus d’opcodes qu’actuellement. Néanmoins, en 2010, Satoshi Nakamoto a décidé de désactiver une partie de ces opcodes par souci de sécurité. En pratique, plusieurs opcodes ont été désactivés après qu’un bug ait été trouvé dans un opcode appelé OP_LSHIFT qui pouvait entraîner le crash d’un nœud Bitcoin si le bug était exploité.
Cependant, depuis 2010 aucun de ces opcodes désactivés n’a été réactivé. Une situation que le développeur Rusty Russell de Blockstream souhaite changer.
« La maison brûle, on éteint le feu, puis on reconstruit, n’est-ce pas ? [Pour Bitcoin] nous n’avons jamais eu cette deuxième étape. »
The Bitcoin script restoration project
Ces dernières semaines, le développeur Rusty Russell a fait parler de lui avec son projet ambitieux intitulé « The Bitcoin script restoration project ». Il a d’ailleurs récemment présenté son projet lors d’une interview donnée à Bitcoin Magazine.
En pratique, ce projet vise à réactiver les opcodes désactivés en 2010. Évidemment, ces opcodes seraient réactivés en mettant en place les mesures de sécurité nécessaires. L’idée n’est évidemment pas de réintroduire des bugs dans le code de Bitcoin.
« C’est ce que nous voulons, n’est-ce pas ? Nous avons littéralement perdu la capacité de multiplier ou de diviser. Je pense qu’il y a, parmi les personnes qui développent au-dessus de Bitcoin, une faim incroyable pour cela. Ils se disent : pouvons-nous récupérer ces fonctions ? »
Cela permettrait de débloquer de nouvelles possibilités pour les développeurs qui construisent des protocoles sur Bitcoin.
Du gas sur Bitcoin ?
Peu après l’interview de Rusty Russell, Shinobi de Bitcoin Magazine a également interviewé le développeur Andrew Poelstra, travaillant également chez Blockstream, concernant le projet « The Bitcoin script restoration ».
Dans cette interview, nous apprenons que le projet pourrait introduire un nouveau modèle de calcul des coûts des opcodes.
Actuellement, chaque opcode a le même coût et ce peu importe sa complexité et les calculs qu’il engendre. Toutefois, certains opcodes sont plus gourmands que d’autres, ainsi un prix unique semble inadapté.
Dans son projet de restauration des scripts désactivés, Rusty Russell souhaite également régler ce problème en attribuant des coûts différents aux opcodes afin de refléter leur consommation de ressources.
Un nouveau modèle qui s’éloigne de celui actuellement en place pour s’approcher d’un modèle comme celui pratiqué sur Ethereum avec le gas. Toutefois, à la différence d’Ethereum, les transactions qui n’aboutissent pas n’entraînent pas la perte des fonds alloués aux frais. En effet, sur Ethereum lorsqu’une transaction échoue, les frais de gas qui y était adossé ont été dépensés et sont perdus pour l’utilisateur.
Une proposition encore loin d’être déployée
Évidemment, ce projet est encore loin de faire son apparition sur le mainnet de Bitcoin. Avant cela, elle devra passer par plusieurs étapes.
Premièrement, les développeurs vont devoir écrire une Bitcoin Improvement Proposal (BIP) et la soumettre à la communauté. Celle-ci devra contenir les implémentations ainsi que les différents tests de sécurité.
Ensuite, la proposition sera examinée et débattue au sein de la communauté. Enfin, elle devra convaincre suffisamment de développeurs pour atteindre un consensus.
Autant dire que ce n’est pas gagné. En effet, une majorité de développeurs de Bitcoin sont attachés au caractère ossifié du protocole, et à raison. Ainsi, les développeurs de Blockstream devront être en mesure de prouver que le réseau a plus à gagner de réintroduire ces opcodes qu’à perdre.
À titre de comparaison, la proposition Taproot a été déployée sur le réseau Bitcoin en mai 2021, mais n’a été activée que 6 mois plus tard, en novembre 2021. En amont, celle-ci avait fait l’objet de nombreux débats au sein de la communauté.