Cryptography

什麼使乙太坊密鑰對有效?

  • March 23, 2022

據我了解,乙太坊(和比特幣)使用依賴於 secp256k1 曲線的 ECDSA 算法。secp256k1 曲線是在給定私鑰的情況下生成公鑰的原因。

然而,最近,我遇到了一個實現 bip32 的庫,但它沒有使用 secp256k1,而是使用 ed25519(我相信是另一條曲線)來生成公鑰。乍一看,這些公鑰看起來與 secp256k1 生成的任何公鑰相同。它們都可以序列化為 32 字節值。

但是,我擔心這會產生意想不到的後果。使用不同的曲線來生成乙太坊中最基本的屬性之一會產生相同的結果似乎並不正確。但由於鑰匙看起來一樣,客戶怎麼能分辨出不同呢?這有什麼危險嗎?

它行不通。

節點期望一個特定的簽名格式來驗證你的交易,如果你給他們一個他們不期望他們的交易會失敗的格式。

Eth 從 BTC 繼承了很多東西,包括它的簽名算法 secp256k1,Edwards 會稍微快一些,但它不是我們使用的那個。

Geth(Eth 最受歡迎的節點)實現了對其他簽名算法的兼容性,但 afaik 是為了未來的保護,現在你只能使用 secp256k1。

這是一篇很酷的文章,談論選擇該算法是多麼幸運:http: //bitcoinmagazine.com/7781/satoshis-genius-unexpected-ways-in-which-bitcoin-dodged-some-cryptographic-bullet/

引用自:https://ethereum.stackexchange.com/questions/124508