Dado que las direcciones son hash de una parte pública de un par de claves ECDSA público/privado, ¿qué les sucedería a dos personas diferentes con claves diferentes que tienen hash en la misma dirección? ¿Cómo se manejarían las transacciones a esas direcciones?
En la criptografía de curva elíptica, las claves públicas se derivan de las claves privadas, con una distribución aparentemente aleatoria. Tiene razón en que dos claves privadas diferentes podrían producir dos claves públicas diferentes que casualmente generan hash en la misma dirección de Bitcoin.
Un SCRIPT_SIG de la transacción que gasta desde esa dirección debería proporcionar:
Dado que dos pares de claves diferentes podrían cumplir con este criterio, cualquiera de ellos podría gastar los bitcoins.
Sin embargo, esto es muy poco probable. Tanto es así, que ni siquiera vale la pena considerarlo como una posibilidad. La mejor metáfora que he visto sobre por qué esto no es un problema se explica en este video: https://www.youtube.com/watch?v=ZloHVKk7DHk
Ambas personas tendrían acceso a cualquier fondo en la dirección. El primero en gastar estos fondos gana.
Por supuesto, es extremadamente improbable que haya tal colisión.
Como respondió @Meni, ambas personas tendrían acceso a los fondos.
Para ilustrar cuán improbable es que esto suceda alguna vez, considere el siguiente ataque simple:
while True:
genereate new keys and address
if address has funds:
transfer to ME
Este ataque puede escanear una cantidad astronómica de direcciones cada día. ¡Y es tan simple que cualquiera puede llevarlo a cabo y hacerse rico! Excepto que no funciona. Si lo hiciera, la red de bitcoin colapsaría rápidamente.
La razón por la que no funciona es que el espacio de direcciones es tan grande que es extremadamente improbable que ocurra una colisión por pura casualidad (los errores en los generadores aleatorios son una historia diferente...).
muro