Blockchain

如何從兩個公鑰中獲取一個地址?

  • November 18, 2014

解析交易的輸入腳本,我在腳本中遇到了兩個公鑰。任一公鑰都是 33 字節長。

我知道如何將單個 33 字節長的 public 轉換為地址。

從兩個或多個公鑰中獲取地址的機制是什麼?

注意我對通過 createmultisig 命令的 bitcoind 技術不感興趣。

我回答我的問題是為了後代讀者的利益。

如果您只有一個 33 字節長的公鑰,您可以通過應用由 5-7 個步驟組成的標準技術來獲得地址,具體取決於您如何看待該技術。

如果你有多個 33 字節長的公鑰,你必須建構一個所謂的贖回腳本,或者用比特幣的說法,贖回腳本。建構贖回腳本後,將標準技術應用於整個贖回腳本。

從技術上講,贖回腳本是一個字節數組。假設您有兩個公鑰。從概念上講,您的字節數組應如下所示:

[OP_1][length of public key 1][public key 1][length of public key 2][public key 2][OP_2][OP_CHECKMULTISIG]

在我的問題中,我說我已經解析了交易的輸入腳本。因此,我不必構造數組。redemption-script 數組已經在輸入腳本中。我犯了從贖回腳本中提取公鑰的“錯誤”,認為我應該只按摩公鑰。我應該取走 redemption-script 數組的所有字節。

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