Mimblewimble est une conception de registre distribué basé sur une blockchain qui diffère en de nombreux points de celle de Bitcoin. Elle propose des différences intéressantes du point de vue de la confidentialité des transactions et du « scripting » au prix d’un sacrifice en matière de fonctionnalités voire de débit en transactions par seconde. Cependant, les principes de fonctionnement de Lightning Network, dans une version simplifiée, pourraient s’appliquer à Mimblewimble ce qui réduit l’importance de ce dernier inconvénient en matière de perte de débit.
Mimblewimble reprend les idées de Blockstream Confidential Transaction et ajoute la possibilité de combiner les transactions les unes avec les autres, de supprimer les « outputs » qui ne sont plus dépensables (spent UTXO) pour ne garder que les « outputs » non dépensés réduisant de ce fait considérablement la taille totale de la chaîne.
Cette capacité à réduire la taille de la blockchain dans le temps est importante, en particulier dans le cadre des transactions confidentielles : en effet, le fait de masquer le montant des transactions s’accompagne d’un accroissement d’informations qui sont liées à la transaction et qui permettent de s’assurer que le montant de l’output ne se comporte pas comme un montant négatif ce qui conduirait à permettre une attaque visant à créer de la monnaie à partir de rien. Pour donner un ordre de grandeur, si la blockchain bitcoin implémentait la technologie des transactions confidentielles de « Ct Element » la taille totale de la chaîne dépasserait 1 Tera octet.
MimbleWimble permet donc aux nouveaux arrivants sur le réseau de ne pas télécharger l’historique des outputs passées (dépensées) et de supprimer les « inputs » pour ne conserver que les « unspent outputs » et les inputs de création monétaire.
Il est néanmoins impossible de prétendre qu’une transaction n’a pas eu lieu même si les input et output ont été effacées car les transactions combinées contiennent une trace cryptographique (somme des « Excess ») de l’ensemble des transactions y compris de celles qui ont été supprimées.
Cette technologie, dans une première approche, semble rendre le scripting impossible car ceux-ci ne peuvent pas faire l’objet d’opération d’addition ou de soustraction comme les montants et les clefs. De plus, la suppression de l’historique des transactions passées ne permettrait pas aux nœuds de rejouer les scripts liés aux outputs. Mais que nenni ! La magie des signatures (« magicking digital signatures » selon les termes d’Andrew Poelstra) fait que certaines d’entre elles ne peuvent être créées que via l’exécution de bonne foi d’un programme informatique. Si on combine cette capacité avec les principes sous jacents aux HTLC de Lightning Network on a alors des fonds qui ne peuvent être débloqués qu’à l’issue de la bonne exécution d’un programme c’est à dire de la publication de la signature adéquate. Les scripts ne seraient donc plus exécutés par les noeuds de la blockchain (comme cela se passe sur Ethereum ou Bitcoin) mais seulement sur les ordinateurs des acteurs concernés : seule la signature et la clef publique prouvant l’exécution d’un programme serait visible.
Ceci est une avancée considérable en matière de confidentialité des interactions entre les acteurs d’un contrat car les « Scriptless Script » sont stockés et exécutés hors blockchain. Ces « scripts » ont cependant des limites. Elles seront l’objet d’une prochaine étude de la part des contributeurs du projet.
A ce jour, Mimblewimble est en cours de spécification et de développement et n’est pas encore utilisable. L’implémentation pourrait s’effectuer de plusieurs manières dans le futur : une extension sur le réseau Bitcoin via un softfork, une sidechain ou bien sous la forme d’un altcoin.
L’implémentation en cours de développement, GRIN, est un altcoin.
Références :
– Papier original posté le 19 juillet 2016 sur l’irc bitcoin wizard par une personne connue sous le pseudonyme de Tom Elvis Jedusor. Contrairement aux rumeurs il ne s’agit sans doute pas d’un Français : un Français aurait certainement écrit correctement le mot « voilà ».
– [Vidéo] CryptoFinance.fr | Strong anonymity in cryptocurrencies | Georg Fuchsbauer (INRIA, ENS)
– [Vidéo] MimbleWimble par Andrew Poelstra (2016-10-06)
– [Vidéo] Andrew Poelstra à la « Merkle Week »
– [Vidéo] MimbleWimble with Andrew Poelstra at SF Bitcoin Developers
– Coinjoin. Mimblewimble peut-être comparé à un CoinJoin non interactif : les transactions sont combinées sans que les propriétaires aient besoin d’interagir avec la blockchain.
– « The first successful Zero-Knowledge Contingent Payment » by Gregory Maxwell
– Mimblewimble, Scriptless Scripts and ‘magicking’ blockchain signatures