Witness to pole elementów stosu dla poszczególnych wejść. Znaczenie określa wersja i warunek wydawanego wyjścia; nie jest automatycznie osobno wykonywalnym skryptem.
Każde wejście ma własną listę elementów w serializacji witness. Weryfikacja podpisu używa komunikatu określonego przez odpowiednią wersję skryptu; sama obecność danych nie dowodzi poprawności. [BIP 141 — Segregated Witness] [BIP 143 — SegWit signature hashing]
txid oblicza się z pierwotnej serializacji bez witness. wtxid obejmuje pełną serializację z witness; w transakcji bez witness identyfikatory są równe. [BIP 141 — Segregated Witness]
Witness program to warunek z wersją w wydawanym wyjściu. Witness dostarcza późniejsza transakcja wydająca; nie jest tym samym polem ani kopią zbioru UTXO. [BIP 141 — Segregated Witness]
Natywny SegWit wersji 0 wymaga pustego scriptSig. W opakowaniu P2SH scriptSig umieszcza witness program na stosie; dowody wydania pozostają w witness. [BIP 141 — Segregated Witness]
P2WPKH dostarcza podpis i klucz publiczny. W P2WSH ostatnim elementem jest witnessScript, którego hash musi odpowiadać programowi; poprzednie elementy tworzą stos początkowy. [BIP 141 — Segregated Witness] [BIP 143 — SegWit signature hashing]
Po usunięciu annex, jeśli występuje, Taproot rozróżnia pojedynczy element podpisu dla ścieżki klucza i ścieżkę skryptu ze skryptem i blokiem kontrolnym. Reguł wersji 0 nie można mechanicznie przenieść na wersję 1. [BIP 341 — Taproot]
BIP 141 wiąże witness przez drzewo wtxid i zobowiązanie w coinbase. Coinbase ma w tym drzewie zerowy wtxid; zobowiązanie łączy korzeń z zarezerwowaną wartością 32-bajtową. [BIP 141 — Segregated Witness]
Zmiana samego witness nie zmienia txid. Rozdzielenie nie gwarantuje niezmienności wszystkich innych pól ani kombinacji wejść; zmieniony dowód nadal musi przejść weryfikację. [BIP 141 — Segregated Witness] [Bitcoin Core — Segregated Witness benefits]
Bajty dodane przez serializację witness wnoszą 1 WU wobec 4 WU bajtu bazowego. Full Node nadal potrzebuje ich do odpowiedniej walidacji; nie są bezpłatnymi danymi poza łańcuchem. [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — Script interpreter]
Witness może publicznie ujawnić podpis, klucz publiczny lub użytą gałąź skryptu. Nie jest szyfrowanym magazynem, nie służy do przechowywania kluczy prywatnych i nie zastępuje Seed Phrase ani kopii portfela. [BIP 341 — Taproot] [Bitcoin Developer Reference — Transactions]
Pełniejszy obraz uzyskasz, czytając to hasło razem z SegWit, Block weight, Bitcoin Script, Taproot. Do tego hasła prowadzą również odsyłacze z Virtual byte (vbyte), Block weight.