Les signatures Schnorr de Bitcoin, on vous explique tout!

| 6 min de lecture

Cet article a été écrit par l’équipe de Veriphi, firme de consultation et de sécurisation Bitcoin.

Les signatures Schnorr de Bitcoin / Source: iStock/Who_I_am
Les signatures Schnorr de Bitcoin / Source: iStock/Who_I_am

Le Bitcoin est un outil technologique qui permet à des millions de personnes d’avoir accès à une source d’argent décentralisé et rare. Malgré la popularité du Bitcoin, peu de personnes comprennent les engrenages complexes de divers éléments de cryptographie et de code qui le rendent fonctionnel. Le code du Bitcoin est également loin d’être statique, des centaines de développeurs travaillent en permanence de proche ou de loin à des nombreuses améliorations, visant à rendre le Bitcoin plus scalable, confidentiel et malléable.

En ce moment une implémentation majeure est en phase de test. Après plusieurs années de travail académique et de discussions, l’algorithme actuel des signatures nommé ECDSA (Elliptic curve digital signature algorithm) est en voie de se faire remplacer par une toute nouvelle méthode, soit les signatures Schnorr.

L’ECDSA est l’engin cryptographique derrière les transactions qui permet à un utilisateur de prouver son droit à la réception de bitcoins en démontrant qu’il a bel et bien en sa possession la clé privée relative à la clé publique sur laquelle il reçoit ceux-ci. Ces preuves se manifestent sous forme de signatures cryptographiques qui ressembleront toutes à une chaîne de caractères aléatoires. La complexité de ce processus est abstraite au travers des interfaces, et pourtant, il a beaucoup d’influence sur les limitations techniques du Bitcoin.

Lire aussi: Et les portefeuilles Bitcoin les plus sécuritaires au monde sont…

Ainsi les signatures ECDSA ont des conséquences sur la scalabilité du Bitcoin, puisqu’elles prennent beaucoup de place en termes de données dans la construction d’une transaction. Sachant que l’espace d’un bloc est limité, il peut être juste de tenter de faire des économies d’espace en ce qui concerne la taille totale d’une transaction. En plus de leur taille surdimensionnée, les signatures ECDSA ne sont pas optimisées au niveau du temps qu’elles prennent à être validée par les nœuds complets du réseau Bitcoin. Pour finir, la méthode ECDSA, par sa structure rigide, n’est pas idéale pour des constructions de transactions plus innovantes que l’intégration de contrats intelligents (smart contracts) sur le Bitcoin.

L’implémentation des signatures Schnorr est donc attendue depuis un moment. D’ailleurs lors de la création du Bitcoin, en 2009, l’utilisation des signatures Schnorr était déjà envisagée, mais la bibliothèque logicielle de celles-ci n’était pas assez développée. L’inventeur des signatures en question, Claus-Peter Schnorr, avait apposée un brevet sur leur utilisation, empêchant la communauté du logiciel libre de la développer en profondeur. La validité du brevet n’expirait qu’en 2008. Satoshi préféra inclure une méthode de signatures déjà existante, soit ECDSA, plutôt que d’attendre la maturation des signatures Schnorr.

Les signatures Schnorr permettent de révolutionner la façon dont les signatures sont utilisées dans les contextes du Bitcoin. Bien évidemment, la complexité mathématique de cette amélioration va au-delà du but de cet article, cependant il est important de se rappeler que celles-ci permettront dorénavant:

  • D’agréger plusieurs clés dans un contrat multi-signatures en une configuration à une clé unique. Aussi La méthode ECDSA ne permettait que de réaliser des contrats multi-signatures avec un maximum de 15 signataires. Cette limite ne sera plus avec les signatures Schnorr.
  • D’agréger plusieurs signatures en une seule signature unique.

Ces nouvelles fonctionnalités semblent banales mais apportent un ensemble d’avantages à plusieurs niveaux. Par exemple au niveau de la scalabilité, les signatures Schnorr peuvent être jusqu’à 75% plus efficaces en ce qui concerne l’espace qu’elles prennent avec une validation de leur authenticité 2,5 fois plus rapide. Par défaut, combiner plusieurs signatures cryptographiques en une seule, alors qu’elles étaient auparavant séparées, renforce fortement la confidentialité des usagers du Bitcoin. Il sera impossible par exemple de distinguer une signature individuelle d’une signature agrégée de plusieurs utilisateurs.

Pour finir, la possibilité d’inclure un grand ensemble d’information à l’intérieur d’une signature d’une taille dérisoire amène des nouvelles possibilités en ce qui concerne les contrats intelligents directement sur le Bitcoin. D’ailleurs cette fonctionnalité est exploitée davantage dans une implémentation particulière des signatures Schnorr, nommée Taproot. Celle-ci permet la création de multiples instances et instructions d’exécutions de scénarios multiples. Ceux-ci seront exécutés selon un ensemble de conditions déterminées à priori par leur créateur. L’ensemble de ces instructions est alors jumelé à la clé publique de l’usager donnant naissance à ce que les développeurs appellent, le ‘’Tweaked Pubkey’’. Beaucoup sont impatients de voir quelles seront les potentielles applications commerciales de cette nouvelle technologie.

À quand peut-on s’attendre l’implémentation des signatures Schnorr et de Taproot au sein du protocole du Bitcoin? Toutes proposition d’amélioration du Bitcoin passe par une structure de test et de validation standardisé, dont le processus est assuré par les développeurs de Bitcoin Core ainsi que de la communauté. Ce long processus nommé BIP (Bitcoin Improvement Proposal), bien que fastidieux, s’assure que tout nouveau code injecté dans le Bitcoin a sa raison d’être et n’a pas de failles techniques qui compromettrait celui-ci. Le BIP de Schnorr/Taproot a été officiellement soumis à la mi-2019 sur le compte Github officiel du Bitcoin, soit la plateforme sur laquelle la communauté discute et implémente des nouveaux changements au code. Depuis sa soumission, la proposition est en révision et en phase de test.

L’attente arrive maintenant à sa fin. Lors de la récente communication de l’infolettre de Bitcoin Optech, le 8 janvier décembre 2020, on nous annonce que le mois de décembre 2019 était le dernier mois de révision de l’implémentation. On nous dit alors que c’est ‘’presque prêt’’. Beaucoup attendent ces améliorations, mais ils devront attendre encore un certain moment car le défi maintenant repose sur l’intégration de Taproot et des signatures Schnorr sous forme de soft-fork dans le logiciel du Bitcoin. Une tâche complexe qui nécessite une grande acceptation de la part de la communauté. Les bitcoiners aguerris risquent donc d’entendre parler de tout cela dans les mois à venir.

Consultez le site de Veriphi.