Ich habe die folgende Testnet-Wallet-Adresse:
2MsQEtPJ6JJZszMYrD6udjUyTDFLczWQrv9
Was ich versuche, als Pubkeyhash für die Coinbase TX im Testnet zu codieren. Wenn ich decode58 starte, bekomme ich das
C401B47E5722F808856A308FA043CCF28323F51711E8165536
Ich entferne das Versions-Byte-Präfix und das Prüfsummen-Postfix und erhalte:
01B47E5722F808856A308FA043CCF28323F51711
So sollte das scriptPubKey sein
76a91401b47e5722f808856a308fa043ccf28323f5171188ac which is OP_DUP OP_HASH160 01b47e5722f808856a308fa043ccf28323f51711 OP_EQUALVERIFY OP_CHECKSIG
Aber als Sanity-Unit-Test verifiziere ich es Vs. die Debug-Konsole
decodescript 76a91401b47e5722f808856a308fa043ccf28323f5171188ac
Aber die Debug-Konsole gibt mir Folgendes:
"asm": "OP_DUP OP_HASH160 01b47e5722f808856a308fa043ccf28323f51711 OP_EQUALVERIFY OP_CHECKSIG",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"mffyC9xbwyBQUWhV8SbYWpqaiNSSWR2vpo"
],
"p2sh": "2ND12E9b9oa9hvTTckXwNaSJiRZ39eRFWSJ"
Warum erhalte ich die Adresse „mffyC9xbwyBQUWhV8SbYWpqaiNSSWR2vpo“ und nicht „2MsQEtPJ6JJZszMYrD6udjUyTDFLczWQrv9“, wie ich erwartet habe?
Zunächst einmal sind scriptPubKeys nicht verschlüsselt und was Sie tun, ist keine Verschlüsselung. Das ist Codierung.
Das Problem ist, dass Sie versuchen, eine P2SH-Adresse als P2PKH scriptPubKey zu codieren. P2SH-Adressen unterscheiden sich von P2PKH-Adressen und haben unterschiedliche Opcodes. Sie können sie identifizieren, indem Sie sich die Versionsnummer der Adresse ansehen, die Sie nicht tun. Die Versionsnummer hat tatsächlich eine Bedeutung, sie ist nicht zu übersehen. Ihr scriptPubKey sollte eigentlich sein
OP_HASH160 01b47e5722f808856a308fa043ccf28323f51711 OP_EQUAL
dodo
Andreas Chow