Aller au contenu principal
Protocole

SegWit (Segregated Witness)

SegWit, activé en août 2017, sépare la donnée witness du reste de la transaction. Cela résout la malléabilité, augmente la capacité effective des blocs et active Lightning. Soft fork emblématique issu de la Blocksize War. Existe en V0 (P2WPKH/P2WSH) et V1 (Taproot).

Origine

SegWit (Segregated Witness) est un soft fork de Bitcoin proposé par Pieter Wuille au Scaling Bitcoin Hong Kong en décembre 2015. Implémenté dans Bitcoin Core 0.13.1 et activé par le mécanisme BIP-9 + UASF (BIP-148) le 23 août 2017 au bloc 481 824, il est l'un des changements les plus consécutifs jamais déployés sur le protocole.

L'idée fondamentale

Séparer ("segregate") les données de témoignage ("witness", c'est-à-dire les signatures) du reste de la transaction. Concrètement :

  • Les signatures ne sont plus dans le scriptSig mais dans une nouvelle structure, le scriptWitness.
  • Le txid est calculé sans le witness, ce qui élimine la malléabilité.
  • Le witness compte pour 1/4 dans le calcul du poids, ce qui crée un "discount" pour les transactions SegWit.

Problèmes résolus

| Problème pré-SegWit | Solution SegWit | |---------------------|-----------------| | Malléabilité des txid | Witness exclu du hash | | Validation O(n²) du sighash | Nouveau sighash BIP-143 linéaire | | Pas de versioning de script | Witness version (0, 1, ...) extensible | | Frais élevés pour multisig | Discount de poids du witness | | Pas de Lightning viable | Channels nécessitent txid stable |

Les deux versions

| Version | Année | Format | Signature | |---------|-------|--------|-----------| | SegWit v0 | 2017 | bech32 (bc1q...) | ECDSA | | SegWit v1 | 2021 | bech32m (bc1p...) | Schnorr |

SegWit v1 est mieux connu sous le nom de Taproot.

Le rôle dans la Blocksize War

Entre 2015 et 2017, la communauté Bitcoin s'est divisée sur la scalabilité. Les "big blockers" voulaient augmenter la taille des blocs (à 2, 8 ou 32 Mo) ; les "small blockers" préféraient SegWit + couches 2. SegWit représentait :

  • Une augmentation effective de capacité (jusqu'à ~2.7 Mo de poids effectif).
  • Le déblocage de Lightning.
  • Le maintien de la décentralisation (nœuds restent abordables).

Après l'épisode UASF (BIP-148) où les utilisateurs ont menacé de forker si les mineurs ne signalaient pas SegWit, l'activation s'est faite et a contribué au schisme Bitcoin Cash en novembre 2017.

Activation et adoption

| Date | Événement | |------|-----------| | Oct. 2016 | Code merge dans Bitcoin Core 0.13.1 | | Août 2017 | Activation soft fork au bloc 481 824 | | Mai 2017 | UASF (BIP-148) menace + Bitfinex onboards SegWit | | Mi-2018 | SegWit > 30% des transactions | | 2024 | > 90% des outputs SegWit | | 2025 | Taproot continue son ascension |

Conséquences à long terme

SegWit n'est pas qu'un fix technique : c'est l'événement fondateur d'une nouvelle phase de Bitcoin :

  • Lightning prend son envol fin 2017.
  • Hardware wallets ajoutent le support Bech32.
  • Exchanges activent SegWit progressivement (Coinbase tardivement, en 2020).
  • Taproot devient possible en réutilisant l'infrastructure SegWit.

À retenir

SegWit est l'illustration parfaite d'un soft fork bien conçu : il ajoute de la fonctionnalité sans casser la rétrocompatibilité, débloque toute une génération d'innovations (Lightning, Taproot), et est devenu la majorité absolue de l'activité on-chain en moins de 7 ans.

Termes lies

← Retour au glossaire complet

Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.