Witness ist ein Feld von Stack-Elementen je Eingang. Seine Bedeutung folgt Version und Bedingung des ausgegebenen Outputs; es ist nicht automatisch ein separat ausführbares Skript.
Jeder Eingang hat in der Witness-Serialisierung seine eigene Elementliste. Die Signaturprüfung nutzt eine durch die Skriptversion definierte Nachricht; bloß vorhandene Daten beweisen keine Gültigkeit. [BIP 141 — Segregated Witness] [BIP 143 — SegWit signature hashing]
txid wird aus der ursprünglichen Serialisierung ohne Witness berechnet. wtxid umfasst die vollständige Serialisierung mit Witness; ohne Witness sind beide Kennungen gleich. [BIP 141 — Segregated Witness]
Ein Witness-Programm ist eine versionierte Bedingung im ausgegebenen Output. Witness wird erst durch die spätere ausgebende Transaktion geliefert; es ist weder dasselbe Feld noch eine UTXO-Set-Sicherung. [BIP 141 — Segregated Witness]
Natives SegWit der Version 0 verlangt eine leere scriptSig. Bei P2SH-Einbettung legt scriptSig das Witness-Programm auf den Stack; der Ausgabenachweis bleibt im Witness. [BIP 141 — Segregated Witness]
P2WPKH liefert Signatur und öffentlichen Schlüssel. Bei P2WSH ist das letzte Element witnessScript, dessen Hash zum Programm passen muss; vorherige Elemente bilden den Anfangsstack. [BIP 141 — Segregated Witness] [BIP 143 — SegWit signature hashing]
Nach Entfernen eines gegebenenfalls vorhandenen Annex unterscheidet Taproot ein einzelnes Signaturelement für den Schlüsselpfad vom Skriptpfad mit Skript und Kontrollblock. Regeln der Version null gelten nicht mechanisch für Version 1. [BIP 341 — Taproot]
BIP 141 bindet Witness über einen wtxid-Baum und ein Coinbase-Commitment. Coinbase hat in diesem Baum eine Null-wtxid; das Commitment verbindet die Wurzel mit einem reservierten 32-Byte-Wert. [BIP 141 — Segregated Witness]
Eine Änderung allein am Witness ändert txid nicht. Die Trennung garantiert keine Unveränderlichkeit aller übrigen Felder oder Eingangskombinationen; veränderte Nachweise müssen weiterhin gültig sein. [BIP 141 — Segregated Witness] [Bitcoin Core — Segregated Witness benefits]
Durch Witness-Serialisierung ergänzte Bytes tragen 1 WU bei, Basisbytes 4 WU. Ein Full Node benötigt sie weiterhin für die betreffende Prüfung; es sind keine kostenlosen Daten außerhalb der Kette. [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — Script interpreter]
Witness kann Signatur, öffentlichen Schlüssel oder den verwendeten Skriptzweig offenlegen. Es ist kein verschlüsselter Speicher, ist nicht zum Speichern privater Schlüssel gedacht und ersetzt weder Seed Phrase noch Wallet-Sicherung. [BIP 341 — Taproot] [Bitcoin Developer Reference — Transactions]
Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit SegWit, Blockgewicht, Bitcoin Script, Taproot. Auf diesen Eintrag verweisen außerdem Virtuelles Byte, Blockgewicht.