127 / 691WIT

Witness data

Witness data contient les preuves nécessaires pour dépenser des entrées SegWit. Ces données font partie de la transaction, même si le calcul original de txid les exclut.

Witness est un champ d'éléments de pile pour chaque entrée. Son sens dépend de la version et de la condition de la sortie dépensée ; ce n'est pas automatiquement un script exécutable séparément.

Chaque entrée possède sa liste d'éléments dans la sérialisation witness. La vérification de signature utilise un message défini par la version du script ; la seule présence de données ne prouve pas la validité. [BIP 141 — Segregated Witness] [BIP 143 — SegWit signature hashing]

txid est calculé à partir de la sérialisation d'origine sans witness. wtxid inclut la sérialisation complète avec witness ; sans witness, les deux identifiants sont égaux. [BIP 141 — Segregated Witness]

Un programme witness est une condition versionnée dans la sortie dépensée. Witness est fourni par la transaction ultérieure qui la dépense ; ce n'est ni le même champ ni une sauvegarde de l'ensemble UTXO. [BIP 141 — Segregated Witness]

SegWit natif version 0 exige un scriptSig vide. Dans la forme encapsulée en P2SH, scriptSig pousse le programme witness ; les preuves de dépense restent dans witness. [BIP 141 — Segregated Witness]

P2WPKH fournit une signature et une clé publique. Pour P2WSH, le dernier élément est witnessScript, dont le hash doit correspondre au programme ; les éléments précédents fournissent la pile initiale. [BIP 141 — Segregated Witness] [BIP 143 — SegWit signature hashing]

Après retrait d'un éventuel annex, Taproot distingue un élément de signature unique pour le chemin par clé et un chemin par script avec script et bloc de contrôle. Les règles de version zéro ne se transposent pas mécaniquement à la version 1. [BIP 341 — Taproot]

BIP 141 engage witness via un arbre wtxid et un engagement dans la coinbase. Coinbase utilise un wtxid nul pour cet arbre ; l'engagement combine la racine avec une valeur réservée de 32 octets. [BIP 141 — Segregated Witness]

Changer seulement witness ne change pas txid. La séparation ne garantit pas l'immutabilité de tous les autres champs ou combinaisons d'entrées ; la preuve modifiée doit toujours être validée. [BIP 141 — Segregated Witness] [Bitcoin Core — Segregated Witness benefits]

Les octets ajoutés par la sérialisation witness comptent pour 1 WU contre 4 WU par octet de base. Un Full Node en a toujours besoin pour les vérifications concernées ; ce ne sont pas des données gratuites hors chaîne. [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — Script interpreter]

Witness peut révéler publiquement une signature, une clé publique ou la branche de script utilisée. Ce n'est pas un stockage chiffré, il n'est pas destiné au stockage des clés privées et ne remplace ni Seed Phrase ni sauvegardes de portefeuille. [BIP 341 — Taproot] [Bitcoin Developer Reference — Transactions]

Pour une vision complète, lisez aussi SegWit, Block weight, Bitcoin Script, Taproot. Cette entrée est également citée par Virtual byte (vbyte), Block weight.

DOC · 001BIP 141 — Segregated WitnessSpécification ↗DOC · 002BIP 143 — SegWit signature hashingSpécification ↗DOC · 003BIP 341 — TaprootSpécification ↗DOC · 004Bitcoin Developer Reference — TransactionsDocumentation ↗DOC · 005Bitcoin Core v29.0 — Script interpreterDocumentation ↗DOC · 006Bitcoin Core — Segregated Witness benefitsDocumentation ↗
Sources d’abord · Pas un conseil financier