Witness हर इनपुट के लिए स्टैक मदों का फ़ील्ड है। उसका अर्थ खर्च किए जाने वाले आउटपुट के संस्करण और शर्त से तय होता है; वह अपने आप स्वतंत्र रूप से चलने वाली स्क्रिप्ट नहीं है।
witness क्रमांकन में हर इनपुट की अपनी मद-सूची होती है। हस्ताक्षर सत्यापन संबंधित स्क्रिप्ट संस्करण द्वारा निर्धारित संदेश का उपयोग करता है; केवल डेटा मौजूद होना वैधता का प्रमाण नहीं है। [BIP 141 — Segregated Witness] [BIP 143 — SegWit signature hashing]
txid की गणना witness रहित मूल क्रमांकन से होती है। wtxid में witness सहित पूरा क्रमांकन शामिल है; witness रहित लेनदेन में दोनों पहचानकर्ता समान हैं। [BIP 141 — Segregated Witness]
Witness program खर्च किए जाने वाले आउटपुट में संस्करणयुक्त शर्त है। Witness बाद के खर्च करने वाले लेनदेन में दिया जाता है; यह न वही फ़ील्ड है, न UTXO समूह का बैकअप। [BIP 141 — Segregated Witness]
मूल SegWit संस्करण 0 में scriptSig खाली होना चाहिए। P2SH आवरण में scriptSig witness program को स्टैक पर रखता है; खर्च के प्रमाण witness में रहते हैं। [BIP 141 — Segregated Witness]
P2WPKH हस्ताक्षर और सार्वजनिक कुंजी देता है। P2WSH की अंतिम मद witnessScript है, जिसका हैश प्रोग्राम से मेल खाना चाहिए; पिछली मदें आरंभिक स्टैक देती हैं। [BIP 141 — Segregated Witness] [BIP 143 — SegWit signature hashing]
यदि annex हो तो उसे हटाने के बाद Taproot कुंजी रास्ते के एक हस्ताक्षर और स्क्रिप्ट व नियंत्रण ब्लॉक वाले स्क्रिप्ट रास्ते को अलग करता है। संस्करण 0 के नियम संस्करण 1 पर यांत्रिक ढंग से लागू नहीं होते। [BIP 341 — Taproot]
BIP 141 wtxid वृक्ष और coinbase की प्रतिबद्धता से witness को बांधता है। इस वृक्ष में coinbase का wtxid शून्य होता है; प्रतिबद्धता जड़ को 32 बाइट के आरक्षित मान से जोड़ती है। [BIP 141 — Segregated Witness]
केवल witness बदलने से txid नहीं बदलता। लेकिन अलगाव अन्य सभी फ़ील्ड या इनपुट के सभी संयोजनों की अपरिवर्तनीयता की गारंटी नहीं देता; बदले प्रमाण को भी सत्यापन पार करना होगा। [BIP 141 — Segregated Witness] [Bitcoin Core — Segregated Witness benefits]
witness क्रमांकन से जुड़े बाइट 1 WU और आधार बाइट 4 WU जोड़ते हैं। Full Node को संबंधित सत्यापन के लिए उनकी अभी भी जरूरत है; यह मुफ़्त चेन-बाहरी डेटा नहीं है। [BIP 141 — Segregated Witness] [Bitcoin Core v29.0 — Script interpreter]
Witness हस्ताक्षर, सार्वजनिक कुंजी या प्रयुक्त स्क्रिप्ट शाखा सार्वजनिक कर सकता है। यह कूटबद्ध भंडार नहीं है, निजी कुंजियां रखने के लिए नहीं है और Seed Phrase या वॉलेट बैकअप की जगह नहीं लेता। [BIP 341 — Taproot] [Bitcoin Developer Reference — Transactions]
पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें SegWit, Block weight, Bitcoin Script, Taproot. इस प्रविष्टि का उल्लेख यहाँ भी है Virtual byte (vbyte), Block weight.