Cryptography

一個公共地址是否可以有多個私鑰?

  • November 29, 2019

由於公鑰與私鑰的所有可能數字(如果我錯了,請更正我的數學)的比率是:

1/79228162514264337593543950336

  • 公眾 (40^16):1 461 501 637 330 902 918 203 684 832 716 283 019 655 932 542 976
  • 私人 (64^16):115 792 089 237 316 195 423 570 985 008 687 907 853 269 984 665 640 564 039 457 584 007 913 129 639 936

如果沒有,為什麼不呢?如果是的話,那會不會使它只是一個稍微不安全的系統?

地址只是公鑰的 keccak256 散列的最後 20 個字節。

對於 ecdsa 算法(和 RSA),每個私鑰只有一個公鑰。

然而,當這個公鑰被散列來創建地址時,它會導致資訊失去,因為生成的修整散列小於輸入的公鑰。這意味著,根據鴿巢原理,多個公鑰散列並修剪為相同的值。由於乙太坊使用密鑰恢復方案從簽名中導出公鑰,然後對其進行雜湊處理以確定tx.origin地址,這使得有多個私鑰可以在沒有相同公鑰的情況下從一個地址花費硬幣。

在計算上,由於密鑰空間的大小,找到這樣的碰撞是不切實際的。

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