Aquí hay un escenario hipotético:
La persona A tiene una dirección de Bitcoin con 25BTC. La persona B abre su cliente Bitcoin:
La persona B presiona "Nueva dirección", y la dirección de la persona A se genera de alguna manera. Ahora, la cadena de bloques termina de sincronizarse.
¿Lo que sucede? ¿Es esta una posibilidad, sin la asombrosa improbabilidad? Después de todo, se puede influir en la generación de números aleatorios.
Si esto sucede, la Persona B podrá gastar los bitcoins de la persona A. Sin embargo, solo hay dos formas en que esto puede suceder:
a) La persona B genera el mismo par de claves (clave privada) que la persona A
o b) la persona B genera un par de claves diferente, que (clave pública) genera un hash a la dirección de la persona A (una colisión de hash)
Eche un vistazo a la especificación de la dirección de bitcoin: https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses
Una dirección de Bitcoin es un hash de 160 bits de la parte pública de un par de claves ECDSA públicas/privadas
Para que suceda "a", la persona B necesitaría romper "secp256k1". No soy un experto en este campo, pero por lo que puedo encontrar en bitcointalk.org , la "fuerza" de esto es 2^128 bits. Y si te preguntas qué tan fuerte es eso, busca el video "Ataques de búsqueda exhaustiva" de Dan Boneh . 11 minutos en el video dice " cualquier cosa que sea más grande que 2 ^ 90 se considera suficientemente seguro " (se trata de atacar 3DES, que es un cifrado de bloque simétrico, por lo que no estoy seguro de que realmente se aplique a secp256k1, pero realmente no tengo mejor argumento de por qué 2^128 es " tan seguro que nunca, jamás, generará la misma clave que otra persona "
Y para que suceda "b", necesitaría encontrar una colisión en RIPEMD-160 (SHA-256 (pk)). Hasta donde yo sé, ni RIPEMD-160 ni SHA-256 tienen vulnerabilidades a los ataques de colisión de hash. Por lo tanto, es muy poco probable romper ambos o generar aleatoriamente una clave cuyo hash sea exactamente igual a otra dirección de bitcoin.
También existe la posibilidad de que su computadora se incendie, y algunos de los materiales se derritan en un cupón de lotería con números ganadores (y un código de barras válido), pero simplemente no sucederá porque la posibilidad es tan increíble pequeño (es lo mismo con " haga clic y genere la dirección de bitcoin de otra persona ").
EDIT Woops, una cosa importante: todo esto supone que todas las direcciones de bitcoin se generan correctamente usando "true random". Todas las direcciones cerebrales y las direcciones generadas con un PRG incorrecto pueden ser fáciles de encontrar utilizando un defecto en el PRG o explotando (los defectos en el) cerebro humano.
Esta es la forma en que lo veo. El número total de bitcoins que alguna vez se extraerán es de 21 millones. La unidad de bitcoin más pequeña es un satoshi (0.00000001 BTC). Si colocamos todos los satoshis posibles en una billetera propia, obtendríamos la cantidad máxima de billeteras que podrían tener saldo (por lo que la cantidad real de billeteras con bitcoins es obviamente menor). Esto es 21x10^6(BTC) x 10^8 (satoshi/BTC) = 21x10^14 carteras. Es un número enorme, pero está eclipsado por 2^256 billeteras posibles. Entonces, en el peor de los casos, la probabilidad de adivinar una billetera con un satoshi es 21x10^14/(2^256)=1.813595x10^-62. Un número increíblemente pequeño.
2^160
direcciones posibles. Más de una clave privada (de las cuales hay 2^256
posibles) generaría hash en la misma dirección.Una ligera adición a las respuestas existentes:
Si B no ha descargado suficiente de la cadena de bloques para ver la transacción de A, entonces la situación será como se describe anteriormente. Cuando un cliente de billetera descarga bloques, las transacciones en ellos se verifican para ver si alguno de ellos envía monedas a las direcciones que se encuentran en esta billetera. Si es así, esas monedas se agregan al saldo de la billetera. Entonces B verá aparecer 25 BTC adicionales en su billetera. Como se mencionó en las otras respuestas, podrá gastarlos como si fueran suyos. Así que es una carrera entre A y B para ver quién los gasta primero, cualquiera puede hacerlo.
Si B ya descargó las transacciones relevantes antes de generar la dirección en conflicto, la situación es un poco diferente. Hasta donde yo sé, la mayoría de los clientes de Bitcoin, al generar una nueva dirección aleatoria, no volverán a escanear la cadena de bloques para ver si contiene transacciones que envíen monedas a esa dirección. (Como se describió anteriormente, la probabilidad de que esto suceda es infinitesimalmente pequeña, por lo que para todos los propósitos prácticos, tal escaneo sería una pérdida de tiempo y recursos). Entonces, aunque B ahora tiene una clave privada que puede gastar los bitcoins de A, él no ser consciente de ello, a menos/hasta que él fuerce manualmente una nueva exploración de la cadena de bloques (por ejemplo, con la -rescan
opción de Bitcoin Core), o verifique el saldo de su dirección usando un explorador de bloques en línea, o algo por el estilo.
Por supuesto, salvo fallas de RNG, esta pregunta es como preguntar "Si los 50 gobernadores estatales de EE. UU. fueran alcanzados por un rayo simultáneamente, ¿cómo se vería afectado el mercado de valores?" Se basa en una suposición tan improbable que es algo absurdo sacar alguna conclusión.
Sospecho que la respuesta simple es que la Persona B podría gastar los bitcoins de la Persona A, ya que aparecería en el libro mayor como su propietario. No muy diferente de simplemente darle a alguien su billetera.
Es curioso cómo las personas que afirman saber sobre criptografía no pueden calcular las probabilidades.
El espacio de direcciones de 2 128 no es la probabilidad o "fuerza" de nada (aparte de la probabilidad de elegir un valor en el espacio de direcciones).
La probabilidad de que 2 personas tengan la misma dirección de bitcoin es en realidad mucho más alta de lo que la gente puede sospechar por intuición (defectuosa).
De hecho, la probabilidad de colisión está relacionada con el problema del cumpleaños (lea sobre esto).
A medida que aumenta la cantidad de personas y direcciones generadas, la probabilidad de una colisión aumenta casi exponencialmente.
Dado que unos pocos millones de usuarios generan cada uno una nueva dirección por mes, la probabilidad de una colisión es tal que podría ocurrir varias veces en la vida, especialmente porque estamos tratando con hashes (o hashes de hashes).
Conviértalo en mil millones de usuarios y tendrá historias periódicas de colisiones que aparecen.
~2.2×10^19
dirección de bitcoin hasta que haya un 50% de probabilidad de que haya habido al menos una colisión. Así que básicamente no te preocupes.
Nick ODell
muro
usuario14805
muro
usuario13120
austin burk
D.Snap