Aller au contenu principal
Protocole

SegWit v0

SegWit v0 est la première version de SegWit, activée en 2017. Elle introduit P2WPKH et P2WSH. Format Bech32. Utilise toujours ECDSA pour les signatures.

Définition

SegWit v0 désigne la version initiale de Segregated Witness, activée sur Bitcoin par soft fork le 23 août 2017 au bloc 481 824. Elle introduit deux nouveaux templates de sortie — P2WPKH (Pay-to-Witness-PubKey-Hash) et P2WSH (Pay-to-Witness-Script-Hash) — et le format d'adresse Bech32 (BIP-173). Elle conserve ECDSA pour les signatures.

Caractéristiques

| Caractéristique | Détail | |-----------------|--------| | BIP de référence | BIP-141 (consensus), BIP-143 (sighash), BIP-173 (Bech32) | | Version du witness | 0 | | Préfixe adresse | bc1q... (mainnet), tb1q... (testnet) | | Types | P2WPKH (20 octets), P2WSH (32 octets) | | Algorithme signature | ECDSA | | Activation | UASF + miner signaling, août 2017 |

P2WPKH (Pay-to-Witness-PubKey-Hash)

C'est l'équivalent SegWit du P2PKH classique :

scriptPubKey: OP_0 <20-byte hash160 de la pubkey>
scriptSig:    (vide)
witness:      [signature, pubkey]

Adresse type : bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 (exemple BIP-173).

Avantages : ~30% moins cher en frais qu'un P2PKH équivalent grâce au discount du witness, et plus de malléabilité : le txid est figé dès la signature.

P2WSH (Pay-to-Witness-Script-Hash)

Equivalent SegWit du P2SH :

scriptPubKey: OP_0 <32-byte sha256 du witnessScript>
witness:      [push1, push2, ..., witnessScript]

Le hash est SHA-256 simple (32 octets, contre 20 pour HASH160 du P2SH), ce qui élimine définitivement le risque (théorique) de collision RIPEMD-160 pour les scripts complexes (multisig).

Le calcul du sighash (BIP-143)

SegWit v0 modifie aussi la formule de calcul du sighash pour fix un bug de performance quadratique appelé "O(n²) signature hashing" qui rendait certaines transactions très coûteuses à valider. BIP-143 calcule des "midstate hashes" réutilisables et linéarise le coût de validation. C'est un gain de scalabilité invisible mais majeur.

Adoption

| Année | % blocs avec SegWit | Notes | |-------|---------------------|-------| | 2017 fin | 10% | Bitcoin Core dominant | | 2019 | 50% | Coinbase, BitGo, Bitfinex actifs | | 2021 | 80% | Bech32 généralisé | | 2024 | 95%+ | P2TR commence à grignoter |

P2SH-P2WPKH (SegWit "wrapped") a servi de pont pendant 2017-2020 pour les wallets ne supportant pas bech32.

P2SH-wrapped

Pendant la transition, les adresses 3... pouvaient en réalité être des SegWit imbriqués dans du P2SH :

P2SH redeemScript = OP_0 <20-byte hash160>

C'était une astuce pour bénéficier du discount SegWit sur des wallets legacy. Aujourd'hui, l'adoption massive du bech32 a rendu cette gymnastique obsolète.

À retenir

SegWit v0 est l'upgrade le plus important de Bitcoin depuis 2010 : il résout la malléabilité, débloque Lightning, réduit les frais et ouvre la porte à Taproot (SegWit v1). Son adoption à 95 %+ est l'une des plus grandes victoires techniques du protocole.

Termes lies

← Retour au glossaire complet

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