Bitcoin: la mise à jour Segregated Witness

 

Pieter Wuille, un des développeurs historiques du bitcoin, a récemment terminé une mise à jour très attendue du protocole: la Segregated Witness, ou SegWit, pour faire court.

Pieter Wuille BTC introduit le code source de base Distincts Témoin
Pieter Wuille
Cette annonce marque la fin d’une longue attente: une des plus importantes features du client Bitcoin pour l’évolutivité du réseau. Les mineurs seront bientôt en mesure de mettre à jour leur logiciel pour l’inclure dans leur réseau. La mise en place des SegWit sera aussi simple que de télécharger un nouveau client et de l’exécuter sur leur nœud.

 

 

Annoncé au cours de la Hong Kong Scaling Bitcoin conférence, en Décembre 2015, SegWit redessine le processus de base du protocole bitcoin et le rend plus efficace.

 

Pieter Wuille a publié le code source dans le référentiel bitcoin de GitHub, qui comprend la mise en œuvre des PIF 141, 143, 144 et 145.

 

Ce changement de protocole, également dénommé Separated Signatures, supprime la partie de chaque transaction bitcoin qui porte la signature numérique en la mettant de côté, tout en laissant un témoin au cas où des utilisateurs souhaiteraient confirmer l’origine de ces signatures.

 

Cette diminution de la taille libère de la place pour que davantage d’opérations puissent tenir à l’intérieur des blocs et elle augmente par conséquent le nombre de transactions que le réseau Bitcoin peut absorber par seconde. Cela allège de manière significative mais ne résout pas complètement le plus gros problème du bitcoin: la scalabiliy (mise à l’échelle ou capacité évolutive).

 

Les estimations sur la capacité exacte d’enregistrement parlent  d’une augmentation de 75% à 400%.

segwit_sizes
Taille des blocks bitcoin, avec et sans SegWit
Les fichiers de signatures qui résultent de cette diminution de taille peuvent éventuellement être jetés à moyen terme pour économiser l’espace disque de stockage, car ils ne sont utiles que dans la vérification du bloc. Plus le bloc est vieux, moins on aura la nécessité de vérifier à nouveau sa cohérence pour une raison ou pour une autre.

 

Cette correction est une solution temporaire mais elle apporte un grand soulagement à un réseau qui a actuellement des blocs très saturés.

 

Ce remplissage  à la limite de la saturation conduit à un ralentissement des confirmations des transactions, ce qui peut pousser les utilisateurs à augmenter leurs commissions pour éviter que leurs transactions ne soient jamais confirmées. Cependant, payer des taux plus élevés pour prioriser la confirmation de leurs transactions va contre les deux caractéristiques qui rendent le bitcoin si différent de tout autre système de paiement international: sa disponibilité et sa (presque) gratuité.

 

***

 

SegWit résout aussi une autre problématique encore ouverte: la transaction malleability.

 

La malléabilité est une propriété que peuvent posséder des protocoles cryptographiques. Un cryptosystème est dit malléable s’il est possible de transformer un message chiffré m en un message funct(m) sans connaître le message originel m ni obtenir d’information sur lui.

Cette propriété n’est pas toujours désirable puisqu’elle peut permettre à un noeud malveillant de modifier le contenu des messages. Des hackers utilisent aujourd’hui cette faille dans le réseau bitcoin pour modifier l’ID des transactions d’autres peers.

 

Les transactions Bitcoin sont identifiées par un hash hexadécimal de 64 chiffres: le TxID. La manière dont le TxID est calculé actuellement
permet à quiconque de faire de petites modifications à la transaction, qui ne changeront pas sa signification, mais qui changent tout de même le TxID.

 

Par exemple, vous pourriez émettre une transaction avec le txid abcd…6789 sur le réseau, mais constater qu’un tiers, comme un nœud sur le réseau qui a relayé votre transaction ou le mineur qui l’a incluse dans un bloc, l’a modifiée légèrement, donnant une transaction qui dépense les mêmes fonds et paye les mêmes adresses, mais qui est confirmée sous un txid totalement différent wxcv…1234.

 

SegWit résout ce problème: la transaction malleability sera complètement fixée dès que la mise à jour des noeuds du peer sera terminée.

 

***

 

Le déploiement du code SegWit ne sera pas instantané mais le consensus qui s’est créé autour est déjà assez fort (contrairement à ce qui s’était passé avec la proposition d’update BitcoinXT).

 

Au moins trois projets différents ont déjà testé le code SegWit, et un grand nombre d’acteurs Bitcoin a confirmé son intention d’exécuter le client SegWit final dès qu’il sera disponible.

 

L’adoption de SegWit sera une réalité dès lors que la grande majorité des miners aura mis à jour son noeud avec la version SegWit. Il faudra couvrir les 95% de la puissance minière totale pour que la commutation soit considérée comme complète et que les gains d’efficacité SegWit deviennent évidents à l’ensemble du réseau. Les grands pools de minigs ne devraient pas s’opposer à SegWit, vu que le patch n’est qu’une mise à niveau soft-fork.

 

Très important: SegWit est rétro-compatible. Les anciens clients bitcoin qui n’auront  pas encore fait de mises à jour verront eux aussi les nouvelles transactions SegWit comme valides.  De la même manière, les nouveaux clients pourront lire l’ancienne version des transactions bitcoin.
Afficher l'image d'origine
Gavin Andresen
Un autre développeur Bitcoin historique Gavin Andresen a donné son soutien inconditionnel à Seg Wit dès qu’il a été annoncé.
« C’est une bonne idée qui doit être intégrée au Bitcoin dès qu’il sera possible de le faire en toute sécurité.  Il s’agit d’une idée fondamentale qui apportera d’ énormes avantages à l’avenir « .

1 pensée sur “Bitcoin: la mise à jour Segregated Witness”

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *