P2pk

試圖理解 Pay-to-Public-Key-Hash

  • November 14, 2016

我是比特幣的新手,我試圖從這本書中理解Pay-to-Public-Key-Hash (P2PKH)掌握比特幣:解鎖數字加密貨幣(第 127 頁)。我了解數字密鑰(源自私鑰)實際上並未儲存在網路中,而是由使用者儲存在錢包中。

例如:Alice 想向 Bob 發送 1-BTC:

---------------------------------------------------------
| Sender:    Hash(alice-public-key)                     |
| Receiver:  Hash(bob-public-key)                       |
| Amount:    1-BTC                                      |
| Signature: Hash(Encrypt_{alice-private-key}(Message)) |
---------------------------------------------------------

問題

  • 那麼我們如何在沒有公鑰的情況下驗證此交易是否有效?
  • 如果我們在消息中附加公鑰,那麼為什麼首先要花時間查找公鑰的散列呢?
  • 我們是否將公鑰儲存在某個集中式數據庫中?
  • 如果接收者提供了公鑰並驗證交易是有效的,那麼其他人如何驗證這是一個有效的交易?

那麼我們如何在沒有公鑰的情況下驗證此交易是否有效?

簽名包括與進行簽名的私鑰對應的公鑰。

如果我們在消息中附加公鑰,那麼為什麼首先要花時間查找公鑰的散列呢?

目前尚不清楚您所說的“公鑰”是什麼意思。你在說誰的公鑰?Bob 的公鑰不在消息中。

我們是否將公鑰儲存在某個集中式數據庫中?

送出帶有簽名的公鑰時,公鑰在交易中。交易包含在一個區塊中,並且該區塊永遠是區塊鏈的一部分。

如果接收者提供了公鑰並驗證了交易是有效的,那麼其他人如何驗證這是一個有效的交易?

目前尚不清楚您所說的“那個”是什麼意思。要驗證交易,您只需確保它有權索取它試圖索取的資金。您並不特別關心它如何處理這些資金,只是它有權決定如何處理它們。因此,您不需要了解收款人的太多資訊——只需在他們來領取資金時辨識他們即可。他們的公鑰的散列就是這樣做的。

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