Signatures de Schnorr et scalabilité

12
1721

Gregory Maxwell, Andrew Poelstra, Yannick Seurin et Pieter Wuille et ont publié la semaine dernière un important document de recherche autour des signatures de Schnorr et de leurs applications dans Bitcoin : Simple Schnorr Multi-Signatures with Applications to Bitcoin. Afin de comprendre les enjeux de ce travail (à défaut de comprendre le document lui-même) nous avons contacté l’un des auteurs, le cryptographe Yannick Seurin.

Expert à l’ANSSI (Agence nationale de la sécurité des systèmes d’information), Yannick Seurin a commencé à s’intéresser de près à la cryptographie utilisée dans Bitcoin début 2017. Sa contribution au schéma étudié dans l’article publié sur ePrint a été de trouver la preuve mathématique de la sécurité du protocole.

En quoi consiste le schéma de signature de Schnorr ?
Yannick Seurin : A l’heure actuelle, Bitcoin utilise un schéma de signature appelé ECDSA [1] pour autoriser les transactions. Le schéma de signature de Schnorr est ancien (1989) mais ne s’est pas imposé en raison d’un brevet (maintenant tombé dans le domaine public). Le schéma de signature de Schnorr a une structure algébrique plus simple que ECDSA, ce qui permet des améliorations comme les multi-signatures compactes, que nous étudions dans l’article.

Quels bénéfices le protocole Bitcoin pourrait-il tirer de ce schéma de signature ?
Il est possible de spécifier qu’un certain bitcoin ne puisse être dépensé que si plusieurs personnes sont d’accord à l’aide de multi-signatures. L’implémentation actuelle consiste simplement à concaténer les signatures des différentes personnes. Avec les multi-signatures de Schnorr, il est possible de compresser les signatures de toutes les personnes en une seule signature. C’est un gain de place important car les signatures sont très larges dans les transactions Bitcoin (typiquement > 60% de la taille de la transaction). Il est même possible, lorsqu’une transaction dépense plusieurs bitcoins en même temps, d’autoriser toutes les dépenses avec une seule signature. Toute diminution de la taille des transactions est bénéfique car la taille des blocs est devenue trop faible pour traiter toutes les transactions rapidement sans payer des frais de minage élevés (cf. le débat sur le passage à l’échelle, Segwit2x et Bitcoin Cash).

Quels sont les étapes/les obstacles à franchir pour que cette intégration aboutisse ?
Yannick Seurin : Les idées théoriques sont là, et l’implémentation est en cours. Il va falloir encore beaucoup de revue de code, la rédaction d’un BIP (Bitcoin Improvement Proposal, la façon formelle de proposer une évolution du protocole Bitcoin), et une large acceptation du nouveau schéma de la part de la communauté avant l’activation (à noter que Segwit permet d’activer les signatures de Schnorr par soft fork).

Puisqu’elles compressent les signatures en une seule, les signatures de Schnorr peuvent-elles améliorer la confidentialité des transactions ?
Oui, pour les multi-signatures impliquant plusieurs personnes, il est possible d’agréger les clés publiques de toutes les personnes devant signer en une seule clé publique indistinguable d’une clé publique classique, ainsi, il devient impossible de déterminer si la dépense d’un bitcoin a nécessité l’autorisation de plusieurs personnes ou pas.

 

Pour en savoir plus : coindesk.com – cointelegraph.com 

À lire également : Key Aggregation for Schnorr Signatures de Pieter Wuille

 

 


[1] Elliptic Curve Digital Signature Algorithm (ECDSA) est un algorithme de signature numérique à clé publique faisant appel à la cryptographie sur les courbes elliptiques.