Empecé a aprender programación Bitcoin a través de Programación Bitcoin de Jimmy Song . Jimmy dice que algunas de las ventajas de p2pkh sobre p2pk incluyen:
una ScriptPubKey más pequeña
mantener privada la clave pública
Estoy completamente de acuerdo con la primera ventaja, pero tengo un pequeño problema con la segunda ventaja.
Jimmy explica que, si ECDSA estuviera roto, uno podría robar bitcoins de otra entidad porque podría encontrar su clave pública en ScriptPubKey (si estuviera usando p2pk) y crear una firma válida.
Mi pregunta es: si todo lo que estamos haciendo es mover la clave pública de ScriptPubKey a ScriptSig, ¿qué seguridad nos otorga eso si ScriptSig también es accesible? Si tuviera que gastar un UTXO que se hizo con mi hash de clave pública, mi clave pública sería pública. ¿No podría un usuario malintencionado que había roto ECDSA seguir buscando una UTXO ScriptPubKey con mi hash, copiar mi clave pública de la transacción anterior, generar una firma y robar mi bitcoin? Me parece que mi clave pública es privada mientras no gasto nada.
Por supuesto, sé que me estoy perdiendo algo :) Cualquier ayuda es apreciada.
Las direcciones de Bitcoin, y la clave pública por extensión, idealmente solo deberían usarse una vez. Entonces, su tiempo de exposición de la clave pública en P2PKH es el tiempo entre el momento en que se realiza el gasto y el momento en que se confirma. Para P2PK, la clave pública siempre es conocida por todos. Hay una diferencia considerable entre los dos.
mike d