Qu’est-ce que Bitcoin Miniscript et comment ça marche ?

Lancé en août 2019 par le développeur Bitcoin Pieter Wuille, Bitcoin Miniscript vise à améliorer la programmabilité du Bitcoin sans compromettre la sécurité grâce à l’ajout d’un compilateur de script amélioré.
L’objectif est de faciliter la vie des programmeurs et de permettre plus et de meilleures fonctionnalités.
Le manque de programmabilité de Bitcoin
L’un des aspects clés de la sécurité du Bitcoin (outre ses énormes besoins en énergie et son vaste réseau décentralisé) est le fait qu’il a été développé d’une manière complète non Turing, ce qui signifie qu’il manque de programmabilité et n’exécute pas de boucles ou de programmes complexes.
Moins un programme est programmable, moins vous avez de chances de rencontrer des erreurs, des bogues ou des problèmes.
De plus, il est plus difficile de casser le code étant donné que moins de gens savent comment y coder.
Comme le développeur et éducateur Bitcoin Jimmy Song l’a dit lors de son podcast hebdomadaire, « Off Chain with Jimmy Song » :
Le langage des contrats intelligents diffère du langage Solidity d’ Ethereum , car alors qu’Ethereum permet d’écrire beaucoup plus de types de contrats intelligents, Miniscript réduit en fait les possibilités.
Mini-script Bitcoin
Comme expliqué par Blockstream sur GitHub – une entreprise axée sur l’amélioration de Bitcoin et la création de produits sur le réseau Bitcoin – il y a certains avantages à utiliser un langage de script plus convivial :
Miniscript est un langage permettant d’écrire (un sous-ensemble de) des scripts Bitcoin de manière structurée, permettant l’analyse, la composition, la signature générique, etc.
Blockstream ajoute que le Bitcoin est conçu pour la mise en œuvre de conditions de dépenses consistant en diverses combinaisons de signatures, de verrous de hachage et de verrous temporels. Pourtant, malgré ses fonctionnalités limitées, il est toujours très simple de :
- Compte tenu d’une combinaison de conditions de dépenses, trouvez le script le plus économique pour le mettre en œuvre.
- Étant donné deux scripts, construisez un script qui implémente une composition de leurs conditions de dépenses (par exemple, un multisig où l’une des « clés » est un autre multisig).
- Étant donné un script, découvrez quelles conditions de dépenses il autorise.
- Étant donné un script et un accès à un ensemble suffisant de clés privées, construisez un témoin général satisfaisant pour celui-ci.
- Étant donné un script, être capable de prédire le coût de dépense d’une sortie.
- Étant donné un script, sachez si des limitations de ressources particulières telles que la limite d’opérations peuvent être atteintes lors des dépenses.
Blockstream conclut que Miniscript fonctionne comme une représentation des scripts qui rend possibles les opérations énumérées ci-dessus. Il a une structure qui permet la composition et est facile à analyser statiquement pour diverses propriétés telles que les conditions de dépenses, l’exactitude, les propriétés de sécurité et la malléabilité.
Enfin, les scripts compatibles peuvent facilement être convertis au format Miniscript, évitant ainsi le besoin de métadonnées supplémentaires.