¿Cómo generan los clientes de Ethereum, como Ethereum Wallet o Eth-Lightwallet, direcciones únicas que no se han utilizado antes y cuál es la probabilidad de que estas direcciones se hayan utilizado?
La dirección se deriva de una clave privada aleatoria. El cliente no comprueba si se ha utilizado anteriormente porque la posibilidad de que eso suceda es casi nula.
Creo que la frase más importante en su pregunta es 'cuál es la probabilidad'.
Las otras respuestas son correctas al determinar que hay una probabilidad de 1 en 2^160 de encontrar una colisión con una probabilidad del 100 % .
Debido a la paradoja del cumpleaños , los criptógrafos otorgan a una función hash con una longitud de bits de salida de 160 una clasificación de seguridad bit a bit de 80. Esto se debe a que con 2^80 direcciones, es más probable que no (es decir, la probabilidad es superior al 50%) que tendrá una colisión de direcciones .
Para una comparación visual con las respuestas anteriores, el problema del cumpleaños implica que ocurrirá una colisión con una probabilidad de 1 en 1,208,925,819,614,629,174,706,176, yikes.
Ethereum Wallet (la billetera oficial que usará Mist) se usa web3.personal.newAccount
para crear una cuenta. Esta es una llamada web3.js que hace el equivalente a geth account new
.
El espacio de direcciones en Ethereum es un valor de 20 bytes (espacio de direcciones de 160 bits, igual que Bitcoin).
¿Cuál es la probabilidad de que se hayan utilizado estas direcciones?
2^160 o aproximadamente 1 en 1,461,501,637,330,902,918,203,684,832,716,283,019,655,932,542,976
Ethereum utiliza direcciones de 160 bits de longitud. La probabilidad de que cualquier dirección sea la misma que cualquier otra dirección dada es, por lo tanto, de 1 en 2^160. Sin embargo, debido a la paradoja del cumpleaños , la posibilidad de que una nueva dirección de Ethereum sea la misma que cualquier dirección de Ethereum ya existente aumenta exponencialmente con cada nueva dirección de Ethereum y se calcula de la siguiente manera:
Número de pares posibles: ( número de direcciones únicas de Ethereum + 1 / número de direcciones únicas de Ethereum) = ((4 807 984 + 1) * 4 807 984) / 2 = 11 558 357 476 120
Probabilidad de un par único: ((2^160)-1) / 2^160) = 0.99999999999999999999999999999999999999999999999999315772234
Chance of 11,558,357,476,120 unique pairs = 0.999999999999999999999999999999999999999999999999315772234 ^ 11,558,357,476,120 = 0.999999999999999999999999999999999992091451
Probabilidad de alguna coincidencia = 1 - 0.999999999999999999999999999999999992091451 = 7.908549 × 10^-36
A partir de hoy (26 de julio de 2017), la posibilidad de que una nueva dirección de Ethereum sea la misma que una dirección de Ethereum ya existente es ~8 × 10^-36
ética