¿Probar colisiones en las direcciones de Bitcoin sin descubrir la clave privada?

Si hay una clave privada que conduce a una colisión en una dirección, ¿es posible demostrar que la clave privada no es la utilizada anteriormente, aunque tengan una colisión en la dirección?

Específicamente, si hubo una colisión en uno de los primeros bloques propiedad de Satoshi, ¿podría cuestionarse para demostrar que la persona que lo obtuvo no tenía la clave privada inicial? Específicamente, si firmaron el mismo script que se usó originalmente, ¿no generaría una firma diferente, mientras que el propietario original podría reproducir la firma original?

gracias, david

Respuestas (1)

Para formular la pregunta con mis propias palabras: ¿Puede probar que la salida de una transacción se desbloqueó con una clave privada diferente a la que se pretendía originalmente?

Respuesta corta: puedes o no puedes, dependiendo de la situación.


Un script de salida de transacción estándar funciona así:

  1. Suponga que la pila comienza con dos elementos, con la clave pública en la parte superior y la firma debajo.
  2. Duplicar la clave pública (elemento superior).
  3. Calcule su hash.
  4. Empuje el hash esperado, que es la dirección del beneficiario (hash SHA-256 + RIPEMD-160 de 20 bytes).
  5. Compare y afirme que los dos elementos superiores son iguales.
  6. Restaure la pila al estado inicial y use los dos elementos para verificar la firma.

Un script de entrada de transacción estándar funciona así:

  1. Empuje la firma.
  2. Presione la clave pública (ahora está en la parte superior de la pila).

Debido a este mecanismo subyacente, estas son las implicaciones:

  • Si nunca antes se ha gastado una salida a una dirección específica, entonces la red Bitcoin nunca ha visto la clave pública. Por lo tanto, la primera vez que aparece una clave pública válida (cuyo hash SHA-256 + RIPEMD-160 coincide), es indistinguiblemente tan válida como cualquier otra clave pública que tenga el mismo hash (que es muy poco probable que encuentre una, por supuesto). ).

  • Si se ha gastado antes una salida a una dirección específica, entonces la red ha registrado una o más claves públicas que se usaron para gastar esa dirección. El protocolo Bitcoin/blockchain no exige que la clave pública deba ser la misma; en otras palabras, no existe la noción de "fijación de clave". Aunque es plausible que el cliente de Bitcoin de un minero individual imponga la fijación de clave, no espero que esta sea una característica que se implemente.

En el ejemplo específico, los primeros bloques, este no es el caso, son claves de publicación sin procesar, no un hash de clave de publicación.
Bien, entiendo el pago a pubkey. En ese caso, ¿qué significa tener una colisión? Porque cada clave privada se asigna a una clave pública única.
Depende de lo que entiendas por clave privada. ¿Multiplicador de curva elíptica de 256 bits? Es única. / ¿Clave principal de la billetera HD? Habría muchos.