La signature Schnorr — Une nouvelle révolution pour Bitcoin ?

Jonathan Okz
5 min readDec 10, 2023

--

La signature Schnorr est un type de signature numérique offrant plusieurs avantages par rapport aux méthodes traditionnelles utilisées dans les systèmes de cryptographie à courbe elliptique ECDSA. Malgré ces avantages et le fait que cette technologie soit antérieure à celle de l’ECDSA, elle n’a curieusement pas été intégrée à Bitcoin lors de sa création.

L’existence d’un brevet serait l’une des raisons pour laquelle les signatures Schnorr n’auraient pas été implémenté dans Bitcoin à sa création. De plus, à cette période, il n’existait pas encore de norme unifiée pour l’utilisation de cette technologie dans les applications, rendant leur adoption plus complexe. L’hypothèse est que Satoshi Nakamoto aurait choisi d’adopter l’ECDSA, un système open-source et plus largement accepté à l’époque.

Les signatures ECDSA dans Bitcoin

Les signatures numériques ont de nombreuses applications, dont une des plus courantes est de prouver que vous êtes l’auteur d’un message spécifique. Pour cela, une clé publique est créée à partir d’une clé privée, qui est un grand nombre que vous devez garder confidentiel. Ce processus implique des calculs complexes sur la courbe ECDSA secp256k1.

Votre clé privée vous permet de générer une signature numérique. En écrivant un message et en appliquant une opération spécifique avec votre clé privée, vous créez un message signé. Ce message signé peut être vérifié par quiconque en le comparant avec votre clé publique pour s’assurer qu’il a bien été signé par vous.

Dans le contexte de Bitcoin, chaque fois que vous réalisez une transaction, vous signez numériquement un message qui confirme que vous transférez des bitcoins qui vous ont été précédemment envoyés. Lorsque ce message est transmis à d’autres nœuds du réseau Bitcoin, ils peuvent vérifier que la signature ECDSA correspond bien au message. Si la signature ne correspond pas, la transaction est rejetée.

Enjeux de la Signature Schnorr pour Bitcoin

La signature Schnorr améliore significativement Bitcoin en termes d’efficacité, de sécurité, de confidentialité et d’évolutivité. Elle optimise l’espace sur la blockchain, renforce la sécurité, simplifie les transactions multi-signatures et augmente la confidentialité, tout en accélérant les transactions et en réduisant les coûts.

  1. Sécurité Améliorée : La structure mathématique des signatures Schnorr offre une sécurité théorique plus forte, notamment contre certaines formes d’attaques cryptographiques.
  2. Regroupement de Signatures : L’un des avantages les plus significatifs de la signature Schnorr est sa capacité à combiner plusieurs signatures en une seule. Cette “agrégation de signatures” est particulièrement utile pour les transactions multi-signatures sur Bitcoin.
  3. Confidentialité Accrue : Avec la possibilité d’agrégation des signatures, il devient plus difficile de distinguer les transactions simples des transactions multi-signatures, ce qui peut améliorer la confidentialité des utilisateurs.
  4. Amélioration de l’Évolutivité et des Performances : Plus courtes et plus simples que les signatures ECDSA et permettant nativement l’agrégation, la signature Schnorr peut significativement améliorer l’évolutivité de la blockchain Bitcoin, permettant ainsi de traiter plus de transactions en moins de temps et à moindre coût.

Le problème du logarithme discret

Les signatures Schnorr se distinguent par leur structure mathématique linéaire et épurée, offrant ainsi une efficacité et une pertinence accrues pour des systèmes tels que Bitcoin, en comparaison avec l’ECDSA. Mathématiquement, les signatures Schnorr utilise un point R et un scalaire s . Semblable à ECDSA, R est un point aléatoire sur la courbe elliptique ( R = k×G ). La deuxième partie de la signature est calculée légèrement différemment : s = k + hash(P,R,m) ⋅ pk . Ici pk est votre clé privée, P = pk×G est votre clé publique, m est le message. On peut alors vérifier cette signature en vérifiant que s×G = R + hash(P,R,m)×P .

La beauté des signatures Schnorr est qu’elles sont toujours de la même taille, contrairement aux signatures ECDSA qui peuvent varier. De plus, contrairement à ECDSA, les signatures Schnorr permettent d’agréger linéairement plusieurs signatures en une seule.

Une meilleure sécurité

Les attaques par canaux auxiliaires sont une forme d’exploitation cryptographique qui utilise des informations indirectes pour déchiffrer des données cryptées. Ces informations peuvent inclure le temps nécessaire pour effectuer des calculs cryptographiques, la quantité d’énergie consommée, les émissions électromagnétiques, ou même les sons émis par un appareil. En analysant ces informations, un attaquant peut potentiellement découvrir des clés cryptographiques ou d’autres données sensibles.

La signature Schnorr a une structure mathématique régulière et prévisible, ce qui la rend moins sensible aux variations de temps d’exécution et de consommation énergétique. Cela rend difficile pour un attaquant d’obtenir des informations utiles sur la clé privée en mesurant le temps de traitement ou la consommation d’énergie. À contrario, ECDSA peut présenter des variations dans le temps de calcul et dans sa consommation énergétique, offrant potentiellement plus de prises pour ce type d’attaque.

Une taille des signatures optimisés

Les signatures Schnorr sont plus courtes et plus efficaces en termes de taille. Cela permet d’insérer plus de transactions dans chaque bloc et réduit les frais de transaction globaux, améliorant ainsi l’évolutivité de Bitcoin.

De plus, les signatures Schnorr on la capacité d’agréger plusieurs signatures en une seule. Cette fonctionnalité est particulièrement utile pour les transactions multi-signatures et les contrats intelligents, où elle permet de regrouper plusieurs approbations en une seule signature compacte. ECDSA ne possède pas cette capacité d’agrégation, ce qui rend les transactions multi-signatures plus lourdes et plus coûteuses.

Conclusion

Pour Bitcoin, ces caractéristiques se traduisent par une amélioration significative de l’évolutivité, car les signatures plus petites permettent d’inclure davantage de transactions dans chaque bloc. La structure simple et linéaire de Schnorr augmente la sécurité en réduisant les risques d’erreurs d’implémentation et renforce la résilience contre certaines attaques cryptographiques (tel que les attaques par canaux auxiliaires). De plus, l’agrégation des signatures améliore la confidentialité en masquant les détails des transactions multi-signatures et offre une flexibilité accrue dans la gestion des transactions complexes.

Finalement, les signatures Schnorr semble être un élément fondamental pour de futures avancées. Une fois mises en œuvre, elles peuvent être utilisées pour améliorer des technologies dans la crypto-monnaie, comme les échanges atomiques.

--

--

Jonathan Okz
Jonathan Okz

Written by Jonathan Okz

CTO, Software Architect and Entrepreneur, with management, design and hands-on development expertise in Blockchain and highly scalable distributed systems.

No responses yet