Transactions

提供公共地址時,錢包如何創建交易?

  • August 27, 2021

給定一個公共比特幣錢包地址 1BdYVvwoxTWMGqJS2Pg6NkVD7RnENVjSac;被粘貼到錢包中以發送比特幣。由於不可能從公共地址派生,錢包如何創建輸出以將硬幣發送到與該地址關聯的公鑰?

目前定義了 3 種地址,每種都直接編碼一個特定的 scriptPubKey。

  • 1...地址。這些是 P2PKH 地址。構造他們的scriptPubKey,使用Base58Check解碼,驗證結果的第一個字節為0,然後構造腳本OP_DUP OP_HASH160 <byte 1-21 of the Base58Check decode> OP_EQUALVERIFY OP_CHECKSIG
  • 3...地址。這些是 P2SH 地址。構造他們的scriptPubKey,使用Base58Check解碼,驗證結果的第一個字節是5,然後構造腳本OP_HASH160 <byte 1-21 of the Base58Check decode> OP_EQUAL
  • bc1...地址。這些是本地隔離見證地址。要建構他們的 scriptPubKey,請遵循 BIP173 和 BIP350 中記錄的過程。

其他網路(例如比特幣測試網)的前綴字元/字節不同。

理想情況下,您不需要自己重新實現。有幾個比特幣庫可以用各種語言為你做到這一點。

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