Transactions

為什麼要在 P2PKH 交易中同時檢查公鑰和簽名?

  • March 19, 2018

在 P2PKH 公鑰腳本中,首先驗證預期支出者提供的公鑰是正確的,然後使用此密鑰來驗證支出者的簽名。

我想知道為什麼僅僅驗證公鑰是不夠的。pubkey 腳本包含它的加密雜湊,因此應該不可能進行反轉,並且任何想要花費與該腳本關聯的 UTXO 的人都需要擁有正確的公鑰。這不是已經充分驗證了消費者嗎?我知道在 P2PK 交易中籤名是必要的,但是對於 P2PKH,散列和簽名對我來說似乎是多餘的。

贖回腳本的散列不也用於 P2SH 中的身份驗證嗎?P2SH 中的 pubkey 腳本只是檢查兌換腳本是否散列到正確的值,然後它已經執行它。如果散列在 P2SH 中被認為是安全的,為什麼不在 P2PKH 中呢?

1)地址在使用一次後就會過時。

  1. 如果有人進行 Sybil 攻擊,他/她可以阻止交易中繼(現在也可能發生),但他/她也可以從該地址進行虛假交易併中繼它,因為攻擊者知道原像是什麼是。

  2. 即使沒有 Sybil 攻擊,也有人可以利用最終的孤塊,並通過對每個交易進行虛假交易,從其中的所有交易中攫取資金。

有消費條件和所有權條件。支出條件由 pubkey 腳本中的前一個資金發送者設置:“證明您可以創建屬於該地址的雜湊”。使用單向雜湊函式證明,只有“你”才能成為個人,進一步花費資金。您使用散列依賴項正確解釋了它。

簽名用於證明您是資金的合法所有者。Checksig 將驗證 ECDSA 邏輯,只有您的私鑰才能生成正確的結果。

在您上次發表的評論中,您根本沒有驗證簽名(multisig)。這有點不正確。贖回腳本末尾有 OP_Code 0xAE,它檢查指定數量的公鑰的簽名。

另請參閱此處的答案

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