Lo que trato de indicar es que todas las private key de 64 caracteres apuntan a alguna wallet de 40 caracteres... No hay ninguna private key que no posea ninguna wallet... O visto de otra forma, para "gestionar" los fondos de una wallet te asignan una de las muchas private key que hay...
El paso de la clave publica a dirección de wallet se hace por un hash que da otra cadena de 64 caracteres de los que se eliminan los 24 primeros para dar los 40 de la dir Pues aquí tienes repeticiones por bowling, aunque tengas una clave pública de 128.
Simplificando cantidades y magnitudes: Si tenemos 1 millón de wallets y 100 millones de claves privadas, entonces tenemos que por cada wallet se disponen 100 claves privadas para gestionar dicha wallet, o por lo menos es lo que han echo en Ethereum, por lo que entonces ya no es tanto espectro a calcular... Si además la asignación de cada clave privada se hace de forma lineal (aunque sea aleatoria) por cada millón de claves privadas, entonces nos quitamos dos magnitudes de dificultad, es decir:
Caso 1:
De la clave privada 1 a la clave privada 1millón, se encuentran todas las wallets.
De la clave privada 1millón1 a la clave privada 2millones, se encuentran otra vez todas las wallets (sería una 2ª clave de gestión de esa wallet)
...
Caso 2 (Pareto):
De la clave privada 1 a la clave privada 1millón, se encuentran varias private key de un 20% de wallets
De la clave privada 1millón1 a la clave privada 2millones, se encuentran varias private key de otro 20% de wallets.
...
Y, recordad, que la dificultad de encontrar por fuerza bruta siempre se calcula en base a iniciar los cálculos desde el principio una y otra vez, pero si tienes ya una BD con el par wallet-pk, entonces el tiempo se reduce a la búsqueda por el índice de la wallet para observar cual fue la pk que se generó por medio de OclHashCat o cualquier otro programa de generación de Hash. Recordemos que no hace falta guardar cada par wallet-pkgestion, ya que con una de ellas nos basta para "gestionar" dicha wallet.
Yo he encontrado ya >300 private key de gestión de mi wallet XDXDXDXDXDXDXDXDDXD
Supongo que conoces lo que es un hash, el que utiliza ethereum y muchas más aplicaciones, no solo coins, es el Keccak-256.
Tienes que estar registrado para ver este contenido
Los hash crean un
resumen de longitud fija de lo que le metamos de entrada. Como ves, la entrada(clave publica) tiene 128 caracteres y el hash 40. Logicamente puede haber distintas entradas que den la misma salida, puesto que la entrada es más grande podemos hacer muchas más combinaciones con la entrada que con la salida, es decir que varias claves pública pueden dar la misma dirección de wallet, esto es lo que se conoce como colisión.
Tienes que estar registrado para ver este contenido
Aquí es donde te equivocas gravemente, de una wallet(resumen-función hash) no salen muchas claves públicas ni privadas, es justo al revés como todos sabemos. Es muy fácil entender que de un resumen no se puede obtener el original, aunque varios originales podrían dar lugar al mismo resumen.
Otro ejemplo en donde se usa el hash es en las imagenes de los CD que tienen un md5, que es otra función hash. Logicamente hay muchas imagenes de 600Mb que den el mismo hash que solo tiene 8 caracteres hexadecimales(128 bits).
La única manera de que el hash obtenido sea distinto para cada entrada es que tenga la misma longitud, como por ejemplo asignar un número entre 1 a 366 consecutivo para los días del año, pero es que entonces se pierde la utilidad del hash que es la de resumir.
Esto es algo que se sabe desde el minuto 1 en que se busca una función hash, por eso no todas valen y por eso se utiliza una cantidad de bits que cuanto mayor sea mayor es su fortaleza.
Además es una cosa que se puede calcular y de hecho se calcula para saber la fortaleza de la función hash y hay mucha gente haciendo pruebas para dar con una colisión, algo que por ejemplo han conseguido ya con MD5 y aún así se sigue utilizando.
Lo que pareces obviar es la magnitud de los números empleados, 40 caracteres hexadecimales son 160 bits y con eso obtienes más combinaciones que estrellas hay en el Universo, con lo que no deja de ser un ataque teórico pero no factible en la práctica.
Si tú lograses romper el Keccak-256 saldrías en los titulares de la prensa mundial y ocasionarias la hecatombe no solo en ethereum.