Segregated-Witness

什麼是見證,它包含什麼數據?

  • November 13, 2019

我已經了解了隔離見證,但找不到分解它的資訊。

我通常知道,當使用舊地址時,例如公鑰將位於Scriptig. 使用 P2SH,我可以看到ScriptSig包含的雜湊redeemScript必須與輸出中地址的雜湊匹配(我認為)。但我不確定witness數據。

讓我們拿這個TX: 80975cddebaa93aa21a6477c0d050685d6820fa1068a2731db0f39b535cbd369

裡面有什麼資訊witness,有人可以分解一下嗎?

該結構包含檢查交易有效性所需的數據,但不需要確定交易效果。特別是,腳本和簽名被移動到這個新結構中。

見證是交易的所有見證數據的序列化。每個 txin 都與一個見證欄位相關聯。見證欄位以 var_int 開頭,表示 txin 的堆棧項數。緊隨其後的是堆棧項,每個項都以 var_int 開頭以指示長度。見證數據不是腳本。見BIP 141

見證數據取決於交易類型。

輸入 3

查看原始 json中的交易輸入 #3 :

腳本 =a914771962306e72e479245d48e879dd2a1862225b4c87

這具有 Pay to Script Hash (P2SH) 交易的結構。由於見證數據,這可能是嵌套在 BIP16 P2SH 中的多重簽名 P2WSH

witness:      0 <signature1> <1 <pubkey1> <pubkey2> 2 CHECKMULTISIG>
scriptSig:    <0 <32-byte-hash>>
             (0x220020{32-byte-hash})
scriptPubKey: HASH160 <20-byte-hash> EQUAL
             (0xA914{20-byte-hash}87)

見證人:

04(4個堆棧元素)

00(第一個堆棧元素,0 字節)

47(第二個堆棧元素,第一個簽名,十六進制:0x47 十進制:71 字節) 304402202c3f94e5daf4057377d9f16d45b57e962de42fb42cb7e95a0382b7c66624980a02204098f6acd43b0391ea1b4a8102797e78895848fb7e883f98d207d14d45945a6901

47(第三個堆棧元素,第二個簽名,十六進制:0x47 十進制:71 字節) 30440220448460edd5291a548c571ccf3a72caf47b02364035dc84f420d311e3a0c5494802205bb1cc89f20dc1e2c1f6eadb74898f8eecc46fbf488b676636b45fafaeb96e0f01

69(第 4 個堆棧元素,2-of-3 多重簽名腳本,十六進制:0x69 十進制:105 字節)

<52 OP_2>

21 (33 字節)

<021e6617e06bb90f621c3800e8c37ab081a445ae5527f6c5f68a022e7133f9b5fe pubkey1>

21 (33 字節)

<03bea1a8ce6369435bb74ff1584a136a7efeebfe4bc320b4d59113c92acd869f38 pubkey2>

21(33 字節)

<0280631b27700baf7d472483fadfe1c4a7340a458f28bf6bae5d3234312d684c65 pubkey3> <53 OP_3><ae OP_CHECKMULTISIG>

請注意,OP_2andOP_3表示這是一個 2-of-3 多重簽名交易腳本。請參閱支付腳本雜湊 | 交易

引用自:https://bitcoin.stackexchange.com/questions/77180