Définition
SegWit : définition
SegWit (Segregated Witness) est une mise à jour de Bitcoin, activée en 2017 par soft fork, qui sépare les signatures du reste de la transaction afin de corriger la malléabilité des identifiants et d'augmenter la capacité effective des blocs.
Thème : Bitcoin
Dans une transaction Bitcoin, les données de signature, appelées witness ou témoin, prouvent que l'expéditeur a le droit de dépenser les fonds. Avant SegWit, elles faisaient partie des données utilisées pour calculer l'identifiant de la transaction. Un tiers pouvait donc modifier légèrement la forme d'une signature sans l'invalider, ce qui changeait l'identifiant : c'est le problème de malléabilité. Il compliquait la construction de transactions qui dépendent d'autres transactions pas encore confirmées.
SegWit place ces données témoin dans une structure séparée qui n'entre plus dans le calcul de l'identifiant. Cette correction a notamment rendu plus sûr le développement du Lightning Network, qui repose sur des chaînes de transactions pré-signées. La mise à jour a aussi remplacé la limite de taille des blocs par une limite de poids, dans laquelle les données témoin comptent moins que les autres. Les transactions SegWit occupent donc moins de place au sens du protocole et paient généralement moins de frais. Elles utilisent des adresses dédiées, commençant par bc1q dans leur format natif.
Un exemple concret
Imaginons qu'Inès envoie des bitcoins depuis une ancienne adresse commençant par 1, puis refasse le même type de paiement depuis une adresse SegWit native en bc1q. Pour un nombre comparable d'entrées et de sorties, la seconde transaction a un poids plus faible : à taux de frais identique, Inès paie donc moins.
Les risques à connaître
SegWit en lui-même présente peu de risques aujourd'hui. Le principal piège est pratique : certains services anciens acceptaient mal les adresses bc1, et il faut toujours vérifier qu'une adresse appartient bien au réseau Bitcoin avant un envoi, car les formats bech32 existent aussi sur d'autres chaînes.
Questions fréquentes sur SegWit
Comment savoir si une adresse est SegWit ?
Les adresses SegWit natives commencent par bc1q. Les adresses commençant par 3 peuvent être du SegWit encapsulé dans un ancien format, ou un autre type de script.
SegWit a-t-il créé un nouveau Bitcoin ?
Non. SegWit a été activé par soft fork, compatible avec les anciens nœuds. C'est le désaccord sur la manière d'augmenter la capacité qui a conduit, séparément, à la création de Bitcoin Cash.