Proposées en début d’année 2018 par les éminents contributeurs Gregory Maxwell, Andrew Poelstra, Yannick Seurin et Pieter Wuille, les signatures de Schnorr sont un pas de plus vers la démocratisation de l’utilisation de scripts avancés tels que le multisig. Puissantes car comparables à des smart-contracts mais critiquées de par leur coût plus élevé que les transactions classiques, ces transactions requérant la signature de plusieurs partis afin d’autoriser la dépense sont d’autant plus chères qu’elles impliquent de partis. Pour cause, le poids de la transaction s’alourdit linéairement pour chaque signature s’ajoutant au lot, entraînant mécaniquement une hausse des frais de transaction.
Qu’est-ce que c’est ?
Ainsi, l’algorithme de signature actuel, appelé ECDSA (Elliptic Curve Digital Signature Algorithm) pourrait être remplacé par les signatures de Schnorr d’ici peu grâce au déploiement d’un soft-fork progressivement adopté par les différents nœuds, mais permettant tout de même d’assurer une rétro-compatibilité. Considérées comme étant la référence en termes d’optimisation de la vitesse de vérification et de résistance à la malléabilité — une vulnérabilité connue de l’ECDSA — elles diminueraient la taille des transactions multisig d’environ 60% en moyenne par le biais de l’agrégation des signatures : dans les grandes lignes, les différentes signatures requises à la validation de la transactions sont combinées en une seule.
C’est un gain considérable, surtout en considérant l’émergence croissante du réseau Lightning qui se structure exclusivement autour de ce type de transactions. D’autant plus que la réduction de la taille des transactions est un pas de plus vers une blockchain plus propre, sans avoir à recourir à des solutions de scalabilité insoutenables telles que l’augmentation de la taille des blocs : ceci ouvre donc la voie au développement massif de solutions de deuxième et troisième couche. D’un autre côté, grâce à l’agrégation des signatures, les signatures de Schnorr rendent les transactions classiques et les transactions multisig impossibles à distinguer, offrant plus de confidentialité à ses utilisateurs.
Pourquoi c’est si long ?
Pourquoi avoir attendu si longtemps afin d’implémenter un type de signature qui est, depuis longtemps, perçu par les experts comme étant le plus efficient ? Après tout, Satoshi, grand génie qu’il(s?) était, serait-il passé à côté de quelque chose au final ? C’est plus compliqué que cela. En effet, les signatures de Schnorr n’auraient pas pu être utilisées dans les premières versions de Bitcoin, cette technologie étant originellement brevetée par monsieur Schnorr lui-même; le brevet n’a expiré qu’en Février 2008, la même année pendant laquelle notre ami anonyme a publié le whitepaper Bitcoin — et donc avait déjà commencé à développer le protocole.
Un autre facteur de ralentissement de l’arrivée de ces signatures réside aussi dans le fait que, du fait de l’expiration récente du brevet, aucun standard autour de Schnorr n’a réellement eu le temps de se développer et de s’imposer dans l’industrie du chiffrement. Bien que les principes mathématiques sous-jacents soient fondés, le manque de documentation et
d’utilisation concrète de ces signatures dans des cas réels fait défaut et rend leur implémentation difficile — d’autant plus dans un système aussi complexe que Bitcoin, visant l’ossification de son protocole. Beaucoup de revue de code est encore nécessaire de la part des contributeurs pour s’assurer de ne rien casser et de maintenir la fiabilité exemplaire du réseau.
Enfin, les signatures de Schnorr pourraient être utilisées de manière à permettre à d’autres propositions d’amélioration du protocole de voir le jour : c’est le cas de Taproot, notamment. Mais ça, ce sera pour un prochain article.
Une réponse sur “Les signatures de Schnorr”