Transactions
p2pkh 與 p2pk 保持公鑰私有
我剛剛通過 Jimmy Song 的Programming Bitcoin開始學習比特幣程式。Jimmy 說 p2pkh 相對於 p2pk 的一些優勢包括:
- 較小的 ScriptPubKey
- 將一個人的公鑰保密
我完全同意第一個優勢,但第二個優勢有點麻煩。
Jimmy 解釋說,如果 ECDSA 被徹底破壞,人們可以從另一個實體那裡竊取比特幣,因為他們可以在 ScriptPubKey 中找到他們的公鑰(如果他們使用的是 p2pk)並創建一個有效的簽名。
我的問題是:如果我們所做的只是將公鑰從 ScriptPubKey 移動到 ScriptSig,那麼如果 ScriptSig 也可以訪問,這會給我們帶來什麼安全性?如果我要花費一個對我的公鑰雜湊進行的 UTXO,我的公鑰將是公開的。破壞 ECDSA 的惡意使用者難道不能繼續尋找包含我的雜湊的 UTXO ScriptPubKey、從之前的交易中複製我的公鑰、生成簽名並竊取我的比特幣嗎?在我看來,只要我不花任何錢,我的公鑰就是私有的。
當然,我知道我錯過了一些東西:) 任何幫助表示讚賞。
比特幣地址,以及擴展的公鑰,理想情況下應該只使用一次。因此,您在 P2PKH 中公開密鑰的時間是從花費到確認之間的時間。對於 P2PK,公鑰總是為所有人所知。兩者有相當大的區別。