Aperçu Visuel des signatures Schnorr pour Bitcoin

19 mars 2019

Le Bitcoin est une œuvre  fascinante, la communauté élargie discute et code continuellement des améliorations. Dans le cadre de nos recherches sur le protocole Bitcoin, nous avons étendu notre conviction que l'anonymat des usagers est un droit fondamental et nous pensons que cela devrait être implementé par défaut dans le protocole Bitcoin. C'est une nécessité compte tenu des différentes manières dont les utilisateurs de Bitcoin pourraient être attaqués à l'avenir et le besoin de maintenir de la fongibilité des UTXOs de bitcoins.

Une des potentielles propositions les plus intéressantes  à venir dans le Bitcoin est celles des signatures de Schnorr. Depuis la création de Bitcoin, elles étaient considérées comme une meilleure alternative pour authentifier les signatures que l’ECDSA (algorithme de signature numérique à courbe elliptique) et soulèvent depuis longtemps des discussions. Pourtant, peu d'avances pratiques ont eu lieu durant ces années, mais cela est entrain de changer.

Plus concrètement, les travaux récents de Blockstream ont abouti à une implémentation fonctionnelle des signatures Schnorr appelée MuSig, conforme au BIP correspondant pour les signatures Schnorr, écrit par Peter Wuille. Des tests approfondis sont nécessaires avant que MuSig ne soit implémenté dans Bitcoin.

Bien que cette amélioration à venir entrerait également dans un seul soft fork avec d’autres implémentations telles que MAST et Taproot, de nombreuses personnes ne savent toujours pas de quoi il s’agit et quels problèmes elles résolvent. Après une discussion (amusante) avec Max Hillbrand (@HillebrandMax) et Pieter Wuille (@pwuille) et sur Twitter à ce sujet, nous réalisons que les informations sur Schnorr Signature ont tendance à être dispersées et difficiles à comprendre pour la plupart des gens.

En réponse, nous avons créé ce cadre visuel facile à suivre sur le schéma d'authentification de signature (ECDSA) actuel en Bitcoin et sur la manière dont Schnorr Signature va l'améliorer en termes de scalabilité, de confidentialité, de coûts de calcul et de sécurité.