Unterschiede zwischen Adressen mit demselben 20B-Hash (Hash 160)

Warum hat der gleiche Hash 160 ein unterschiedliches Guthaben im Bitcoin-Netzwerk?

Hash 160 ist B0D5D1FB94B76B39EE82771027BEFD17131042FA.

Einerseits ist es die Adresse 1H825FgspbkznbiGAnAjFjan7dmYFjpsFe, die einen Nullsaldo hat.

Bei der zweiten Möglichkeit ist es die andere Adresse 3Hp2zoBKNW5NsmQhHsqKgMwiGA4FoUj9Q4, die einen Saldo ungleich Null hat.

Ich versuche es vor blockchain.infoOrt zu verfolgen.

Warum gibt es diese Unterschiede?

Antworten (1)

Sowohl P2SH- als auch P2PKH-Adressen basieren auf HASH160. Der Unterschied liegt im Skript.

In einer P2SH-Adresse ( 3Hp2zoBKNW5NsmQhHsqKgMwiGA4FoUj9Q4in Ihrem Beispiel) lautet das Skript a914 B0D5D1FB94B76B39EE82771027BEFD17131042FA 87(Leerzeichen von mir). Dies beläuft sich auf OP_HASH160 OP_PUSH(20) B0D5D1FB94B76B39EE82771027BEFD17131042FA OP_EQUAL. Kurz gesagt, das Bitcoin-Netzwerk nimmt ein bereitgestelltes Einlösungsskript und Signaturdaten und vergleicht den Hash160 dieses Einlösungsskripts mit dem, was in den Adressausgaben angegeben ist.

Für 1H825FgspbkznbiGAnAjFjan7dmYFjpsFeist das Skript 76a914 B0D5D1FB94B76B39EE82771027BEFD17131042FA 88ac(Leerzeichen von mir). Dies entspricht OP_DUP OP_HASH160 OP_PUSH(20) B0D5D1FB94B76B39EE82771027BEFD17131042FA OP_EQUALVERIFY OP_CHECKSIG. Dies weist das Netzwerk im Wesentlichen an, den bereitgestellten öffentlichen Schlüssel zu nehmen, wenn es eine Eingabe ausgibt, ihn zu duplizieren, das Duplikat zu hashen, es zu vergleichen und zu überprüfen, ob es gleich B0D5D1FB94B76B39EE82771027BEFD17131042FA ist, und dann die Signatur mit dem ursprünglichen öffentlichen Schlüssel (demjenigen, den Sie dupliziert haben) zu vergleichen.

Wallets und Explorer entscheiden anhand der Opcodes im Skript, welches Adressformat angezeigt werden soll. Eine P2SH-Adresse beginnt immer mit a914und endet mit 87. Ein P2PKH beginnt immer mit 76a914und endet mit 88ac.

Da Hashing per Definition keine Eins-zu-eins-Funktion ist, gibt es einen privaten Schlüssel, für den der Pubkey-Hash B0D5D1FB94B76B39EE82771027BEFD17131042FA wäre. Mir sind jedoch keine bekannten Paare aus privatem Schlüssel und Redeem-Skript bekannt, die demselben HASH160 entsprechen