Fehler beim Verschlüsseln von scriptPubKey im Testnet

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?

Antworten (1)

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
Danke! Wenn also das Versionsbyte "0xc4" ist, kann ich sagen, dass es sich um eine P2SH-Adresse handelt ... Ich bekomme jetzt en.bitcoin.it/wiki/Base58Check_encoding . Was ich jetzt verstehen möchte, ist, warum der Opcode in P2SH-Adressen in Coinbase-Transaktionen unterschiedlich ist
Sie sind nicht unbedingt P2SH. Sie verwechseln sie wahrscheinlich mit etwas anderem.