Signature

如何通過見證人的原始比特幣交易計算 R、S 和 Z?

  • January 17, 2022

如何從原始比特幣交易中計算 R、S 和 Z 值?我可以用 提取它們rscan.py,但這不適用於新交易。

BIP-141中所述,P2WPKH 支出的見證如下:

見證人必須正好包含 2 個項目(每個 ≤ 520 字節)。第一個是簽名,第二個是公鑰。

與以前一樣,簽名由您正在尋找的常用 R 和 s 值組成。


讓我們看看你一直連結到的這個交易。讓我們看看第一個輸入。

我們可以看到 scriptPubKey 是

OP_HASH160 fcebfb01198e90e99875a913dd592650fd2df667 OP_EQUAL

這意味著這是一筆 P2SH 支出,其中 P2SH 兌換腳本具有雜湊值fcebfb0....67

那麼讓我們看看那個兌換腳本:

0020d687015ac2304c3213491ff4fc71ea15e9c170fddedd8bed92be2d191f8adddd

這是 OP_0 後跟 32 字節的推送。這意味著這是一個 P2WSH 支出。因為它被包裹在 P2SH 中,所以它被稱為 P2SH-P2WSH。但是到目前為止,還沒有涉及到公鑰或簽名,只是腳本。

見證由對堆棧的三個推送組成。這包括見證腳本:

OP_PUSHNUM_2 OP_PUSHBYTES_33 035e1822f3a6eec3911545188bb0e6df3826eef8b630a77d1e344ba5954d9534a8 OP_PUSHBYTES_33 03694100a1f02854db3acac05c878053aba59fedfe3ebb1b7e094051aa61da6ba8 OP_PUSHBYTES_33 03e9509f6b6ad39542aa816c24d50d8ca7d83cfa6b430f0c366184957961a07fd6 OP_PUSHNUM_3 OP_CHECKMULTISIG

換句話說,這是一個 2-of-3 的多重簽名。因此,見證堆棧上的其他兩項是簽名。但這對於每種可能的腳本類型都會有所不同,因此不會有一種方法可以僅從 P2WSH 支出中“提取”簽名。最好只關注基於密鑰的支出。

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