¿Que probabilidad hay de generar dos veces una clave privada?

Es una duda que llevo dias en la cabeza. Ya que se pueden generar de forma totalmente offline, y puedes crear todas las que quieras sin limite, me planteo si alguien pudiera llegar a generar una clave privada que ya hubiera sido generada anteriormente. Segun tengo entendido no es posible, asi que mi duda realmente es que mecanismo asegura que no sea posible hacerlo, ya que de serlo, creo que seria una importante debilidad para la moneda, aunque la probabilidad fuera realmente baja, si no es 0 existe el peligro.

No te preocupes por eso que antes te caerá un rayo justo el día que estabas feliz porque te había tocado la lotería, pero no te atenderán en el hospital porque le habrá caido un meteorito encima :stuck_out_tongue:

Creo que la probabilidad de generar 2 veces la misma clave privada es algo similar a la de escoger dos átomos del universo al azar y que sean el mismo.

2 Me gusta

Entiendo, pero siendo así, un escenario que me planteo, en un futuro, si aumenta bastante la capacidad de calculo (computación cuántica por ejemplo) y el precio del bitcoin es suficientemente alto como para incentivarlo, las cuentas que posean muchos BTC creo que podrían estar en riesgo.

Si eso sucede se doblará el tamaño de las claves y a correr.

Si la computación cuántica llega y lo hace de forma subrepticia (algún estado o megacorporación poniendo en marcha un engendro cuántico), se podría desvalijar a todos los poseedores de criptomonedas.

Claro que ese sería el menor problema del mundo, porque todas las claves del DNS de internet caerían también. Por supuesto también todos los sistemas bancarios. Ah! y también los controles de los satélites, la telefonía móvil, las comunicaciones militares, el botón nuclear,…

Por cierto el originalísimo protocolo de IOTA es resistente a la computación cuántica.

3 Me gusta

Falso. La computación facilita enormemente el cálculo del la clave privada a través de la pública, pero en Bitcoin no se expone la clave pública sino su hash, y la computación cuántica no puede revertir un hash. Por tanto si no reutilizas direcciones no te pueden robar tus bitcoins ni con un supercomputador cuántico. Vitalik tiene un artículo bastante interesante sobre el tema.

Como ves, si aparece un superordenador cuántico de la nada se iría todo a tomar por culo pero Bitcoin más o menos sobreviviría.

1 me gusta

Dice la wikipedia que en un diccionario de inglés hay 228,000 palabras. Así que tenemos 228,000^12 posibles semillas, que son 1.973.413.814 seguido de 55 ceros. En cambio, para acertar el número de la Visa de Amancio Ortega seguido de su número de seguridad, sólo tenemos que probar entre 10^19 posibilidades (1 seguido de 19 ceros). :slight_smile:

Jajajajaja

El doble hasing de bitcoin protege muy bien la clave pública. Es una genialidad de Satoshi, pero ante una potencia de cálculo desconocida nada estaría seguro.

Hombre esa no es una buena comparación porque las claves las puedes probar en privado, pero para atacar por fuerza bruta una visa tienes que probar contra el banco y te bloquearían los intentos.

Hay algo que no llego a entender sobre esto. El otro día un amigo me comentó que no debía poner la clave privada en myetherwallet web, me emparanoie y ando instalando linux mint desde 0 para crear una clave privada en frío con un PC que me aseguré estar libre de virus.

Lo que no entiendo es cómo es posible crear una wallet con myetherwallet sin conexión a Internet. Es decir, las carteras ya están creadas por defecto y se van asignando?? :S

Una forma que se me ocurre de estar a salvo de estos hipoteticos ataques, seria dividir los BTC en varias claves privadas, de modo que en cada una, el saldo que tuviesen no compensase el ataque.

Si, tienes razón. No me referia a la facilidad de realizar un ataque de fuerza bruta, sino ilustrar la magnitud de la improbabilidad de que por “azar” se generase una clave que ya hubiese sido generada anteriormente. Y el caso es que es tropecientos millones de veces más probable que escribas diecinueve cifras a boleo y te salga el número y el código de seguridad de la tarjeta de un multimillonario.

Esta seguridad, claro, sólo afecta a las carteras generadas desde una semilla crada a partir de palabras de diccionario elegidas de forma aleatoria. Aqui, de hecho, explican cómo es perfectamente factible encontrar colisiones en esas llamadas “carteras mentales”, generadas a partir de una contraseña.

El espacio de generacion de claves o direcciones es tan , tan tan grande que es algo cercano a imposible en terminos humanos de colisionar una direccion con otra de las ya existentes aunque todos los supercomputadores del mundo estuvieran 24 horas generando pares de claves.Por supuesto esto es algo dificil de entender para nuestro pequeño cerebro, pero afortunadamente haciendo uso de la capacidad de abstraccion de las matematicas podemos probarlo y llegar a esa conclusion.

¿Puedes poner un enlace a ese artículo? No se donde encontrarlo. Gracias.

La probabilidad es nula.

Sobre los ordenadores Quantum funcionan de manera completamente distinta. Es como comparar manzanas con naranjas.

Pues a pesar de lo que te respondan y que muchos digan que la probabilidad es nula ya que la cantidad de posibles números que representan una clave privada es enorme, esa respuesta no es del todo correcta.

El porqué viene en que a pesar de que el número de cuentas posibles es un número exageradamente grande, el peso de que pueda generarse dos claves iguales no recae ahí, sino en el algoritmo generador de esas claves.

Si por ejemplo fuéramos las personas las que creáramos esas claves, las probabilidades de que se generaran dos claves iguales serían enormes, prácticamente no habría posibilidades de que no se crearan debido a los sesgos cognitivos que tenemos los humanos.

Normalmente las wallets al crear tus direcciones utilizan un algoritmo de generación de números aleatorios, y es ese algoritmo el que marca las posibilidades de que haya una colisión, y no el espacio del total de direcciones. Así que cuidado, tened miedo…mucho miedo y cuidado de quien es el que genera vuestras keys… deberíais estar aterrorizados…

La ignorancia aterra más…

Respecto a la probabilidad de que se creasen dos claves privadas iguales, te aconsejo que revises la paradoja del cumpleaños aplicada al espacio de direcciones de Bitcoin. Es más, alguien ya lo ha hecho por tí: https://download.wpsoftware.net/bitcoin-birthday.pdf

Y respecto a la generación de números aleatorios, precisamente por el problema que dices (potenciales colisiones en la generación de números aleatorios) se utilizan algoritmos de números pseudoaleatorios criptográficamente seguros (Cryptographically secure pseudorandom number generator - Wikipedia). Estos algoritmos son esenciales a día de hoy, porque sin ellos la seguridad de Internet basada en TLS no existiría - y varios ataques informáticos en el pasado han ocurrido porque no se han utilizado esta clase de algoritmos o porque no se han implementado correctamente (ver por ejemplo Random number generator attack - Wikipedia)

Si quieres aterrorizar a la gente, te aconsejo que revises el código fuente de las aplicaciones de wallet, y compruebes si el algoritmo de números aleatorios que se utiliza es un algoritmo inseguro o procedente de una librería obsoleta. Quien sabe, quizás la empresa del wallet te recompensará por encontrar una vulnerabilidad potencial.

Suerte.

4 Me gusta