Как клиенты Ethereum, такие как Ethereum Wallet или Eth-Lightwallet, генерируют уникальные адреса, которые ранее не использовались, и какова вероятность того, что эти адреса уже использовались?
Адрес получается из случайного закрытого ключа. Клиент не проверяет, использовался ли он ранее, потому что вероятность этого практически равна нулю.
Я думаю, что самая важная фраза в вашем вопросе - «какова вероятность».
Другие ответы верны при определении того, что вероятность обнаружения столкновения составляет 1 из 2 ^ 160 со 100% вероятностью .
Из-за парадокса дня рождения криптографы присваивают хеш-функции с длиной выходного бита 160 побитовый рейтинг безопасности 80. Это связано с тем, что с 2 ^ 80 адресами более вероятно, чем нет (то есть вероятность более 50%) , что вы будете иметь конфликт адресов .
Для визуального сравнения с приведенными выше ответами проблема дня рождения подразумевает, что столкновение произойдет с вероятностью 1 из 1 208 925 819 614 629 174 706 176, да.
Кошелек Ethereum (официальный кошелек, который будет использовать Mist) используется web3.personal.newAccount
для создания учетной записи. Это вызов web3.js, который эквивалентен geth account new
.
Адресное пространство в Ethereum представляет собой 20-байтовое значение (160-битное адресное пространство, такое же, как у Биткойна).
какова вероятность того, что эти адреса были использованы?
2^160 или около 1 из 1 461 501 637 330 902 918 203 684 832 716 283 019 655 932 542 976
Ethereum использует адреса длиной 160 бит. Таким образом, вероятность того, что какой-либо один адрес совпадает с любым другим заданным адресом, составляет 1 из 2^160. Однако из-за парадокса дня рождения вероятность того, что новый адрес Ethereum совпадает с любым уже существующим адресом Ethereum, экспоненциально возрастает с каждым новым адресом Ethereum и рассчитывается следующим образом:
Количество возможных пар: ( количество уникальных адресов Ethereum + 1 / количество уникальных адресов Ethereum) = ((4 807 984 + 1) * 4 807 984) / 2 = 11 558 357 476 120
Вероятность уникальной пары: ((2^160)-1)/2^160) = 0,99999999999999999999999999999999999999999999999315772234
Chance of 11,558,357,476,120 unique pairs = 0.999999999999999999999999999999999999999999999999315772234 ^ 11,558,357,476,120 = 0.999999999999999999999999999999999992091451
Вероятность совпадения = 1 - 0,999999999999999999999999999999999992091451 = 7,908549 × 10^-36
На сегодняшний день (26 июля 2017 г.) вероятность того, что новый адрес Ethereum будет таким же, как уже существующий адрес Ethereum, составляет ~ 8 × 10 ^ -36.
эт