Witness je pole zásobníkových položek pro jednotlivé vstupy. Jeho význam určuje verze a podmínka utráceného výstupu; nejde automaticky o samostatně spustitelný skript.
Každý vstup má ve witness serializaci vlastní seznam položek. Ověřování podpisu používá zprávu podle příslušné verze skriptu; samotná přítomnost dat platnost nedokazuje. [BIP 141 — Segregated Witness] [BIP 143 — SegWit signature hashing]
txid se počítá z původní serializace bez witness. wtxid zahrnuje úplnou serializaci s witness; u transakce bez witness se oba identifikátory shodují. [BIP 141 — Segregated Witness]
Witness program je verzovaná podmínka v utráceném výstupu. Witness se předkládá až v transakci, která tento výstup utrácí; není to totéž pole ani záloha UTXO setu. [BIP 141 — Segregated Witness]
Nativní SegWit verze 0 vyžaduje prázdný scriptSig. U varianty obalené P2SH nese scriptSig vložený witness program; důkazy utracení zůstávají ve witness. [BIP 141 — Segregated Witness]
P2WPKH předkládá podpis a veřejný klíč. U P2WSH je poslední položkou witnessScript, jehož hash musí odpovídat programu; předchozí položky dodají vstupní zásobník. [BIP 141 — Segregated Witness] [BIP 143 — SegWit signature hashing]
Taproot po případném odstranění annexu rozlišuje jednu podpisovou položku pro klíčovou cestu a skriptovou cestu se skriptem a kontrolním blokem. Pravidla verze 0 nelze mechanicky přenést na verzi 1. [BIP 341 — Taproot]
BIP 141 zavazuje witness přes strom wtxid a závazek v coinbase. Coinbase má pro tento strom nulový wtxid; závazek kombinuje kořen s 32bajtovou rezervovanou hodnotou. [BIP 141 — Segregated Witness]
Pouhá změna witness nezmění txid. Oddělení ale nezaručuje neměnnost všech ostatních polí ani všech kombinací vstupů; změněný důkaz stále musí projít ověřením. [BIP 141 — Segregated Witness] [Bitcoin Core — Segregated Witness benefits]
Bajty přidané witness serializací přispívají 1 WU oproti 4 WU základního bajtu. Full Node je stále potřebuje pro příslušnou validaci; nejde o bezplatná data mimo řetězec. [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — Script interpreter]
Witness může veřejně odhalit podpis, veřejný klíč nebo použitou větev skriptu. Není šifrovaným úložištěm, není určen k ukládání soukromých klíčů a nenahrazuje Seed Phrase ani zálohu peněženky. [BIP 341 — Taproot] [Bitcoin Developer Reference — Transactions]
Pro nejúplnější obraz čtěte toto heslo společně s SegWit, Váha bloku, Bitcoin Script, Taproot. Opačným směrem na něj odkazují také Virtuální bajt (vB), Váha bloku.