Addresses

為什麼乙太坊地址是公鑰的雜湊值?

  • August 26, 2018

我了解乙太坊地址是如何生成的。這個執行緒有一個很好的解釋:乙太坊地址是如何生成的?

然而,這個解釋缺少的是為什麼使用雜湊。

有一個相關的文章沒有令人信服的答案: Ethereum Address and public key 之間的關係

除了基於散列的地址更短這一點之外,一個常見的論點是散列在橢圓曲線密碼學受損的情況下提供了額外的安全性。在比特幣的情況下,我可以看到這一點(因為它不鼓勵地址重用),但在乙太坊中,地址被設計為可重用並且每筆交易都會顯示公鑰,因此使用雜湊“隱藏”​​它們似乎相當無意義。

即使在比特幣核心開發人員的這篇文章中,也有人認為散列可能是不必要的。

忽略較短地址可能增加的可用性,如果要設計一個新的區塊鏈,是否有任何理由使用基於雜湊而不是壓縮公鑰的地址?

事實上,乙太坊的地址重用使得“防止 ecc 公鑰攻擊”的論點為空。

對於外部擁有的帳戶,直接使用公鑰可能不會導致任何問題或重大安全問題。

我能想到散列在哪裡有用的唯一原因是保持外部擁有的賬戶和內部賬戶(契約)之間的平等。合約不與私鑰相關聯,而是根據創建地址和交易隨機數將合約地址計算為雜湊值。

對於一個幼稚的情況,這可以用公鑰和隨機數的散列代替,但合約可以由其他合約部署,這不會輕易暴露公鑰。

在這一點上,它更像是一種設計選擇而不是安全選擇。

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