Diferencias entre direcciones con el mismo hash 20B (Hash 160)

¿Por qué el mismo Hash 160 tiene un saldo diferente en la red Bitcoin?

Hachís 160 es B0D5D1FB94B76B39EE82771027BEFD17131042FA.

De una manera es la dirección 1H825FgspbkznbiGAnAjFjan7dmYFjpsFeque tiene saldo cero.

Por la segunda forma, es la otra dirección 3Hp2zoBKNW5NsmQhHsqKgMwiGA4FoUj9Q4que tiene un saldo distinto de cero.

Intento rastrearlo en el blockchain.infositio.

¿Por qué hay esas diferencias?

Respuestas (1)

Tanto las direcciones P2SH como las P2PKH se basan en HASH160. La diferencia está en el guión.

En una dirección P2SH ( 3Hp2zoBKNW5NsmQhHsqKgMwiGA4FoUj9Q4en su ejemplo), el script es a914 B0D5D1FB94B76B39EE82771027BEFD17131042FA 87(espacios míos). Esto equivale a OP_HASH160 OP_PUSH(20) B0D5D1FB94B76B39EE82771027BEFD17131042FA OP_EQUAL. En resumen, la red de Bitcoin tomará un script de canje proporcionado y los datos de la firma, y ​​comparará el hash160 de ese script de canje con lo que se proporciona en los resultados de la dirección.

Para 1H825FgspbkznbiGAnAjFjan7dmYFjpsFe, el guión es 76a914 B0D5D1FB94B76B39EE82771027BEFD17131042FA 88ac(espacios míos). Esto equivale a OP_DUP OP_HASH160 OP_PUSH(20) B0D5D1FB94B76B39EE82771027BEFD17131042FA OP_EQUALVERIFY OP_CHECKSIG. Básicamente, esto le dice a la red que tome la clave pública proporcionada cuando gaste una entrada, la duplique, haga un hash del duplicado, compárela y verifique que sea igual a B0D5D1FB94B76B39EE82771027BEFD17131042FA, luego verifique la firma con la clave pública original (la que duplicó).

Las billeteras y los exploradores decidirán qué formato de dirección mostrar en función de los códigos de operación en el script. Una dirección P2SH siempre comenzará a914y terminará con 87. Un P2PKH siempre comenzará 76a914y terminará con 88ac.

Dado que Hashing, por definición, no es una función uno a uno, existe una clave privada para la cual el hash de clave pública sería B0D5D1FB94B76B39EE82771027BEFD17131042FA. Sin embargo, no tengo conocimiento de ningún par conocido de clave privada/script de canje que corresponda al mismo HASH160