Segregated Witness, ou SegWit, est le nom utilisé pour un changement de soft fork implémenté dans le format de transaction de Bitcoin.

Logo SegWit

Le titre officiel « Segregated Witness (Consensus layer) » portait le numéro de proposition d'amélioration Bitcoin BIP141[1]. L'objectif déclaré était d'empêcher la malléabilité non intentionnelle des transactions bitcoin, d'autoriser la transmission facultative de données et de contourner certaines restrictions de protocole (telles que la limite de taille de bloc ) avec un soft fork[2].

Il visait également à atténuer un problème de limitation de taille de blockchain qui réduit la vitesse de transaction bitcoin. Pour ce faire, il divise la transaction en deux segments, supprime la signature de déverrouillage (données « témoin ») de la partie d'origine et l'ajoute en tant que structure distincte à la fin[3]. La section d'origine continue à contenir les données de l'expéditeur et du destinataire, et la nouvelle structure « témoin » contiendrait des scripts et des signatures. Le segment de données d'origine serait compté normalement, mais le segment « témoin » sera, en effet, compté comme un quart de sa taille réelle.

Histoire modifier

Limite de taille de bloc modifier

Bitcoin est une crypto-monnaie, une forme de monnaie utilisant la cryptographie pour sécuriser les transactions.

Chaque enregistrement d'une unité de bitcoins est appelé un « bloc », et tous les blocs sont liés séquentiellement en utilisant un hachage cryptographique sur le bloc précédent et en stockant sa sortie dans le suivant. Cela forme une chaîne de blocs, ou une blockchain[4].

Chaque bloc contient des informations sur qui envoie et reçoit une unité donnée de bitcoin (une transaction), ainsi que la signature qui approuve chaque transaction. À l'origine, il n'y avait pas de limite à la taille des blocs. Cependant, cela a permis à des acteurs malveillants de créer de fausses données « bloquées » qui étaient très longues comme une forme d'attaque par déni de service (attaque DoS). Ces faux blocs seraient détectés, mais cela prendrait beaucoup de temps, ce qui ralentirait tout le système.

Scalabilité et malléabilité modifier

La conception actuelle de la blockchain bitcoin est considérée comme présentant deux lacunes.

Évolutivité modifier

Un nouveau bloc est ajouté à la chaîne à des intervalles aléatoires d'une moyenne de conception de 10 minutes (la preuve de travail provoque ce délai). Avec la limite de taille de bloc, cela limite le nombre de transactions pouvant être traitées dans un temps donné. Certains sites contournent ce problème en utilisant des "paiements hors chaîne" effectuant des transactions sans les écrire dans la blockchain, ce qui implique divers compromis concernant la confiance et la finalité des transactions.

D'autres ont proposé des changements au bitcoin qui réformeraient le format de la blockchain d'une manière rétro-incompatible. Par exemple, FlexTrans (Flexible Transactions) réduirait la taille des transactions en changeant la façon dont elles sont décrites en un système de « balise », permettant plus de transactions par bloc. Ceci est incompatible avec les systèmes qui ne sont pas mis à jours.

Témoins séparés comme solution modifier

Les données de signature appelées le « témoin » seraient séparées de l'enregistrement de l'arbre de Merkle indiquant qui envoie ou reçoit les bitcoins. Les données témoins sont déplacées à la fin, et chaque octet ne compterait que pour un quart d'unité.

Il traite également la malléabilité des signatures, en sérialisant les signatures séparément du reste des données de transaction, de sorte que l'ID de transaction ne soit plus malléable[2].

Activation modifier

Le , les mineurs de bitcoins ont bloqué une mise à niveau logicielle appelée Bitcoin Improvement Proposal (BIP) 91, ce qui signifie que la mise à niveau de Segregated Witness a été activée au bloc 477 120.

SegWit atténue le problème de mise à l'échelle de deux manières :

  • SegWit résout la malléabilité des transactions, permettant ainsi au Lightning Network, un réseau superposé de canaux de micropaiement, résolvant hypothétiquement le problème de mise à l'échelle en permettant à un nombre pratiquement illimité de transactions instantanées et peu coûteuses de se produire « hors chaîne »[5].

Le , une autre étape a été franchie lorsque 100 % des pools de minage de bitcoins ont signalé la prise en charge de SegWit, bien que SegWit ne soit pas entièrement activé avant le au plus tôt, après quoi les mineurs commenceraient à rejeter les blocs qui ne prennent pas en charge SegWit.

Initialement, la plupart des transactions bitcoin n'ont pas pu utiliser la mise à niveau.

Segregated Witness a été activé le . Le prix du bitcoin a augmenté de près de 50 % dans la semaine suivant l'activation de SegWit[6]. Le , le bitcoin s'échangeait à 2 748 dollars, en hausse de 52 % par rapport aux 1 835 dollars du [6].

Au cours de la première semaine d'octobre, la proportion de transactions sur le réseau utilisant SegWit est passée de 7 % à 10 %, indiquant une augmentation du taux d'utilisation.

Un petit groupe de mineurs de bitcoins principalement basés en Chine, qui n'étaient pas satisfaits des plans d'amélioration SegWit proposés par bitcoin, a avancé des plans alternatifs pour une scission qui a créé Bitcoin Cash[7].

En , les transactions SegWit dépassaient 30 %[8].

SegWit2x modifier

Le témoin séparé (BIP141) ne doit pas être confondu avec SegWit2x (SegWit2Mb). En , Digital Currency Group (à ne pas confondre avec la Digital Currency Initiative du MIT Media Lab) a annoncé qu'il avait proposé une proposition, appelée SegWit2x (« l'accord de New York »), activant Segregated Witness à 80% seuil du taux de hachage bitcoin total, signalisation au bit 4 ; et l'activation d'une limite de taille de bloc de 2 Mo dans les six mois avec une prise en charge supérieure à 80 % du taux de hachage bitcoin total[9].

À la mi-2017, bien que la proposition SegWit2x bénéficiait d'un soutien supérieur à 90% du hashrate, cependant, la proposition SegWit2x a été controversée en ce que le travail sur le projet est limité à un groupe de développeurs sur invitation uniquement. À la mi-, il est devenu évident que les mineurs soutenaient la mise en œuvre de la partie Segwit de l'accord avant l' UASF du , tentant ainsi d'éviter le risque d'un hard fork pour le réseau bitcoin[10].

Le , les développeurs de SegWit2x ont annoncé que le hard fork prévu vers le avait été annulé faute de consensus[11].

BIP associés modifier

  • BIP141 Segregated Witness (Consensus layer) – activé le
  • BIP143 Transaction Signature Verification for Version 0 Witness Program [1] – activé le
  • BIP144 Segregated Witness (Peer Services) – activé le
  • BIP148 Activation obligatoire du déploiement de segwit - activé (a mandaté l'activation de BIP141, 143, 144)

Notes et références modifier

  1. All Bitcoin Improvement Proposals, including BIP141.
  2. a et b Segregated Witness proposal BIP 141.
  3. Investopedia: SegWit (Segregated Witness).
  4. How the Bitcoin protocol actually works.
  5. Luke Graham, « As bitcoin comes off its record high, the next step is to avoid a 'lightning fork' » [archive du ], CNBC, (consulté le ).
  6. a et b Paul Vigna, « Bitcoin Rallies Sharply After Vote Resolves Bitter Scaling Debate », WSJ, (consulté le ).
  7. Anna Irrera et Gertrude Chavez-Dreyfuss, « Bitcoin 'clone' sees a slow start following split », Independent, (consulté le ).
  8. « SegWit and the bitcoin transaction fee conspiracy theory », sur FT Alphaville, FT, 2018 mars 2021.
  9. « Leading bitcoin ecosystem participants reach consensus on scaling issue », sur Econo Times, Econo Times, (consulté le ).
  10. « Dispute could mean financial panic in Bitcoin », Associated Press, (consulté le ).
  11. Paul Vigna, « Bitcoin Dodges Split That Threatened Its Surging Price », The Wall Street Journal, (consulté le ).