Transactions

ScriptPubKey 如何知道比特幣地址的公鑰?

  • March 13, 2014

我現在有一個金發的時刻。

ScriptPubKey 提供了接收者公鑰的散列版本。

scriptPubKey OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG

但是,如果我給某人我的比特幣地址以向我匯款 - 發件人如何檢索我的公鑰然後對其進行雜湊處理?作為 pubKeyHash != 我的比特幣地址

我可能忘記了一些非常明顯的事情——但今天早上它讓我頭疼不已。

地址實際上只是特定腳本的簡寫。標準地址類型(在主網上以“1”開頭)實際上與您在上面給出的腳本的確切類型相對應。

如果你對這樣的地址進行 base58 解碼,你最終會得到一個 0x00 + [20-byte hash] + [4-byte checksum] 形式的字節串。對應的腳本是 OP_DUP OP_HASH160 [20-byte hash] OP_EQUALVERIFY OP_CHECKSIG。

因此,在某種程度上,您的地址確實包含公鑰的雜湊值。

發件人不需要知道你的公鑰,只需要你提供的比特幣地址,每次都可以不同。您稍後使用公鑰贖回資金並發送到另一個地址。

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