Bitcoin : les signatures de Schnorr et Taproot, c’est pour bientôt !

BUIDL – Après trois longues années sans évolution, le protocole Bitcoin pourrait bien voir une mise à jour être implémentée, comme nous vous en avions parlé en ce début d’année. En effet, une pull request a été déposée par Peter Wuille concernant deux améliorations d’importance, Taproot et les signatures de Schnorr.

Pull request, kézako ?

Dans le cadre du développement décentralisé d’un projet informatique, comme c’est le cas pour Bitcoin, les développeurs utilisent un outil appelé Git, qui permet à plusieurs personnes de travailler simultanément sur un même code informatique.

Le projet est décomposé en plusieurs branches, qui représentent plusieurs versions du code. La branche « master » est la branche principale et représente la version officielle du programme. Les développeurs copient cette branche et effectuent les modifications de code sur des branches annexes.

Une fois les modifications réalisées, le développeur crée une pull request, afin de notifier les autres développeurs qu’une de ses propositions d’amélioration du protocole est finalisée et que celle-ci attend désormais un examen du reste de la communauté. Ensuite seulement, la proposition peut être validée.

La branche en question contenant ces améliorations est ensuite fusionnée à la branche principale (master), et les modifications sont déployées.

Dans notre cas, c’est le développeur Bitcoin Pieter Wuille, employé chez Blockstream qui a proposé une pull request sur le projet Bitcoin. Celle-ci contient plusieurs améliorations majeures pour le réseau Bitcoin avec l’ajout des signatures de Schnorr et de Taproot.

Signatures de Schnorr

Les signatures de Schnorr, inventée par Claus Peter Schnorr en 1989, sont réputées comme faisant parti des meilleures signatures cryptographiques existantes. Au moment de la création du Bitcoin, cette technique faisait l’objet d’un brevet d’où le choix fait par Satoshi d’utiliser les signatures ECDSA. Depuis, le brevet est tombé dans le domaine public et les développeurs Pieter Wuille, Jonas Nick et Anthony Towns se sont penché sur leur implémentation sur le protocole Bitcoin.

Une fois implémentée à Bitcoin, celle-ci permettrait une réduction de la taille des transactions, ce qui aura comme répercussion première une amélioration de la scalabilité du réseau Bitcoin. Dans un second temps, plusieurs signatures de Schnorr ont la caractéristique de pouvoir être agrégées en une seule, ce qui permettra d’améliorer les solutions de confidentialités comme Coinjoin.

Taproot

Taproot, quant à lui, est une amélioration qui concerne Script, le langage qui permet de programmer des conditions dans les transactions Bitcoin. Son implémentation apporterait des améliorations à différents niveaux sur le protocole.

Dans un premier temps, Taproot permet d’inclure uniquement les conditions réalisées dans une transaction. Ainsi, les conditions qui n’auraient pas été remplies ne seraient pas incluses à la blockchain, réduisant de ce fait la taille des transactions.

Dans un second temps, Taproot permettrait une amélioration de la confidentialité. En effet, le fait de cacher du code non exécuté (comme vu précédemment) laisse les scripts indifférenciables les uns des autres, dans la mesure où leurs seules différences se situent dans les parties non exécutées.

Nombreux sont les utilisateurs qui gardent un souvenir amer de l’année 2017 où les frais des transactions en bitcoins ont atteint des records, dans le mauvais sens du terme. L’ajout des signatures de Schnorr ainsi que de Taproot pourrait permettre au réseau de faire face à des événements similaires de manière plus sereine et saine pour le réseau. Ces améliorations sont donc une continuité logique des efforts entrepris par exemple avec la dernière amélioration protocolaire majeure en date, Segwit.

Évolution des frais des transactions Bitcoin. Source : bitcoinfees.info

Reste à présent aux différents développeurs impliqués à examiner la pull request avant d’envisager de la déployer le réseau Bitcoin. Cependant, ce processus peut évidemment être long : dans le cas de SegWit, il aura fallu attendre une année entre la pull request et le déploiement de la mise à jour. Affaire à suivre ! 

Renaud H.

Ingénieur en software et en systèmes distribués de formation, passionné de cryptos depuis 2013. Touche à tout, entre mining et développement, je cherche toujours à en apprendre plus sur l’univers des cryptomonnaies et à partager le fruit de mes recherches à travers mes articles.