Greifen Sie auf Geldmittel auf Legacy-Adressen zu, die sich auf die Segwit-Adresse beziehen, von der ich einen privaten Schlüssel habe

Die Situation

Hallo. Unser Unternehmen betreibt den BTC-Pool. Wir schürfen BTC schon seit einiger Zeit und haben die Segwit-Adresse 32Z3eXSPgxcHj2fnQy8d6dg66eVtZfxrBMals Pooladresse verwendet.

Aber als wir endlich einen ersten Block fanden (eigentlich zwei Blöcke), wurde die Blockbelohnung aus irgendeinem Grund an eine andere Adresse gesendet:1s2iywx94HudryMHsU2g1K9x8DB1cahGc

Hier sind Links für Transaktionen beider Generationen mit Belohnungen: die erste und die zweite

Das Problem

Wir können nicht auf Geld zugreifen 1s2iywx94HudryMHsU2g1K9x8DB1cahGc- wir können dieses Guthaben auf der Brieftasche einfach nicht sehen.

Die Frage

Wie können wir auf diese Gelder zugreifen 1s2iywx94HudryMHsU2g1K9x8DB1cahGc?

Mehr Info

Mit dem Bitcoin Core- Client-Befehl validateaddresskönnen wir beide Adressen überprüfen:

Ausgabe für 32Z3eXSPgxcHj2fnQy8d6dg66eVtZfxrBMist

{
  "isvalid": true,
  "address": "32Z3eXSPgxcHj2fnQy8d6dg66eVtZfxrBM",
  "scriptPubKey": "a91409763cb05dcea0f98f53b0f08651f92c5d2d2f3887",
  "ismine": true,
  "iswatchonly": false,
  "isscript": true,
  "iswitness": false,
  "script": "witness_v0_keyhash",
  "hex": "00142ee67d879ccf17daec87b4ed4a6cecdd9b3f64a0",
  "pubkey": "02835613e6e22843ce7dafc5d22a2763a8428b81f3d44dced0fd860f08be7a29df",
  "embedded": {
    "isscript": false,
    "iswitness": true,
    "witness_version": 0,
    "witness_program": "2ee67d879ccf17daec87b4ed4a6cecdd9b3f64a0",
    "pubkey": "02835613e6e22843ce7dafc5d22a2763a8428b81f3d44dced0fd860f08be7a29df",
    "address": "bc1q9mn8mpuueuta4my8knk55m8vmkdn7e9qmezkgv",
    "scriptPubKey": "00142ee67d879ccf17daec87b4ed4a6cecdd9b3f64a0"
  },
  "addresses": [
    "bc1q9mn8mpuueuta4my8knk55m8vmkdn7e9qmezkgv"
  ],
  "account": "",
  "timestamp": 1533473707,
  "hdkeypath": "m/0'/0'/0'",
  "hdmasterkeyid": "35e9670da1b28efe5621eb9cee2cf3e88b929968"
}

Ausgabe für 1s2iywx94HudryMHsU2g1K9x8DB1cahGcist

{
"isvalid": true,
"address": "1s2iywx94HudryMHsU2g1K9x8DB1cahGc",
"scriptPubKey": "76a91409763cb05dcea0f98f53b0f08651f92c5d2d2f3888ac",
"ismine": false,
"iswatchonly": false,
"isscript": false,
"iswitness": false
}

Ich sehe hier drei interessante Punkte:

  1. scriptPubKeydenn beide Adressen enthalten 09763cb05dcea0f98f53b0f08651f92c5d2d2f38einen Teil, der tatsächlich ein öffentlicher Schlüssel ist. Das erste Byte unterscheidet sich, was sinnvoll ist, da es sich um ein Präfix handelt, 00 für Legacy bzw. 05 für Segwit.

bezüglich Ausgabe für 1s2iywx94HudryMHsU2g1K9x8DB1cahGc:

  1. pubkeyEigenschaft fehlt, was seltsam ist, da sie normalerweise für Legacy-Adressen enthalten ist

  2. isMineProperty gleich false ist, was bedeutet, dass Wallet diese Adressbeziehung zu Wallet PK nicht erkennt.

Kann also bitte jemand einen Einblick geben und uns sagen, ob (und wie?) wir auf diese Gelder zugreifen können oder wir sie für immer verloren haben?

PS

Wenn ich base58 decode auf beiden verwende 32Z3eXSPgxcHj2fnQy8d6dg66eVtZfxrBMund 1s2iywx94HudryMHsU2g1K9x8DB1cahGcich bekomme

0509763CB05DCEA0F98F53B0F08651F92C5D2D2F385CCEC0F4Und

0009763CB05DCEA0F98F53B0F08651F92C5D2D2F3861372301bzw.

Auch hier können Sie deutlich dieselben Bytes sehen, sodass Adressen definitiv verwandt sind.

Antworten (1)

Ich fürchte, Sie haben einen Fehler in Ihrer Mining-Software und Ihre Coins sind weg.

Anstatt an die P2SH-Adresse zu senden, wurde ein Block mit einem P2PKH-Ausgabeskript erstellt, das den Skript-Hash von der P2SH-Adresse als Public-Key-Hash neu interpretiert. Dies passiert irgendwo in defekter Software, die P2SH nicht unterstützt und außerdem das Adressversionsbyte nicht überprüft.

Wenn dies der Fall ist, ist es nicht wiederherstellbar und diese Coins sind für immer verloren. Sie können keinen öffentlichen Schlüssel finden, dessen Hash mit diesem Skript übereinstimmt.