Weight Unit (WU)
Le Weight Unit est l'unité de poids des transactions Bitcoin (1 vB = 4 WU). Un bloc fait au plus 4 000 000 WU. Permet de comptabiliser les discounts SegWit (witness comptée 1 WU/byte). Standard depuis SegWit (BIP-141).
Origine
Le Weight Unit (WU) a été introduit avec SegWit en août 2017 via le BIP-141. Avant SegWit, la limite de bloc était exprimée en octets : 1 MB de données strictes. SegWit a remplacé cette limite par une limite en weight units : 4 000 000 WU maximum par bloc. Ce changement subtil a permis d'augmenter la capacité effective sans rompre la compatibilité (soft fork) et d'introduire un incentive économique pour adopter SegWit.
Le calcul
La règle est simple mais essentielle :
| Partie de la transaction | Coût | |---|---| | Données non-witness (header, inputs, outputs) | 4 WU par byte | | Données witness (signatures SegWit) | 1 WU par byte |
Le vbyte (virtual byte) est défini comme weight / 4. Une transaction de 560 WU pèse 140 vB. Les frais sont exprimés en sats/vB, ce qui rend la formule de coût intuitive pour l'utilisateur.
Pourquoi cette pondération
Les signatures, contrairement aux UTXO créés, ne polluent pas le UTXO set (l'état coûteux à maintenir pour les nœuds). Pondérer les signatures à 1 WU/byte (au lieu de 4) incite les développeurs et utilisateurs à migrer vers SegWit en payant moins de frais. Une transaction SegWit native (P2WPKH) économise typiquement 40 % de frais par rapport à une legacy P2PKH équivalente. C'est la principale raison du succès de l'adoption SegWit.
Exemple concret
Une transaction P2WPKH 1-input/2-outputs :
- Base (non-witness) : 41 bytes × 4 = 164 WU
- Witness (signature 72 b + pubkey 33 b + overhead) : 109 bytes × 1 = 109 WU
- Total : 273 WU = 68,25 vB
À 20 sat/vB, frais = 1 365 sats. La même transaction en legacy ferait ~226 bytes, soit ~4 520 sats. Le gain est massif.
Lien avec Taproot
Taproot (BIP-341) conserve le même schéma de poids et ajoute encore des optimisations grâce à Schnorr (signatures de 64 bytes au lieu de 71-72).
À retenir
Le weight unit est l'unité comptable cachée derrière chaque transaction Bitcoin moderne — c'est elle qui rend SegWit et Taproot économiquement attractifs.
Termes lies
- vBytes (vB)Le vByte (vbyte) est l'unité de mesure de taille d'une transaction tenant compte du discount SegWit. 1 vByte = 4 weight units. Plus précis que les bytes pour les transactions modernes. Sert au calcul du fee rate (sats/vB).
- 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).
- BlocUn bloc est un ensemble de transactions Bitcoin validées et regroupées par un mineur. Chaque bloc contient un en-tête, un nonce et une référence au bloc précédent (hash), formant ainsi la chaîne. Un bloc est ajouté en moyenne toutes les 10 minutes via la preuve de travail. Sa taille est limitée à 4 millions de weight units (~1-4 MB).
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.