Acceder a fondos en la dirección heredada relacionada con la dirección segwit de la que tengo clave privada

La situación

Hola. Nuestra empresa gestiona el pool de BTC. Hemos estado extrayendo BTC por un tiempo y usamos la dirección segwit 32Z3eXSPgxcHj2fnQy8d6dg66eVtZfxrBMcomo dirección del grupo.

Pero cuando finalmente encontramos un primer bloque (en realidad, dos bloques), por alguna razón, la recompensa del bloque se envió a una dirección diferente:1s2iywx94HudryMHsU2g1K9x8DB1cahGc

Aquí hay enlaces para transacciones de ambas generaciones con recompensas: la primera y la segunda

El problema

No podemos acceder a los fondos 1s2iywx94HudryMHsU2g1K9x8DB1cahGc, simplemente no podemos ver ese saldo en la billetera.

La pregunta

¿Cómo podemos acceder a esos fondos en 1s2iywx94HudryMHsU2g1K9x8DB1cahGc?

Más información

Usando el comando del cliente Bitcoin Corevalidateaddress podemos inspeccionar ambas direcciones:

Salida para 32Z3eXSPgxcHj2fnQy8d6dg66eVtZfxrBMes

{
  "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"
}

Salida para 1s2iywx94HudryMHsU2g1K9x8DB1cahGces

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

Puedo ver tres puntos interesantes aquí:

  1. scriptPubKeypara ambas direcciones contiene 09763cb05dcea0f98f53b0f08651f92c5d2d2f38parte, que es, afaik, clave pública actual. El primer byte difiere, lo que tiene sentido, ya que es un prefijo, 00 para legado y 05 para segwit respectivamente.

con respecto a la salida para 1s2iywx94HudryMHsU2g1K9x8DB1cahGc:

  1. pubkeyfalta la propiedad, lo cual es extraño, porque generalmente se incluye para direcciones heredadas

  2. isMineLa propiedad es igual a falso, lo que significa que la billetera no reconoce esta relación de dirección con la billetera PK.

Entonces, ¿alguien puede proporcionarnos alguna información y decirnos si (¿y cómo?) podemos acceder a esos fondos, o si los hemos perdido para siempre?

PD

Cuando uso la decodificación base58 en ambos 32Z3eXSPgxcHj2fnQy8d6dg66eVtZfxrBMy 1s2iywx94HudryMHsU2g1K9x8DB1cahGcobtengo

0509763CB05DCEA0F98F53B0F08651F92C5D2D2F385CCEC0F4y

0009763CB05DCEA0F98F53B0F08651F92C5D2D2F3861372301respectivamente.

Nuevamente, puede ver claramente los mismos bytes, por lo que las direcciones definitivamente están relacionadas.

Respuestas (1)

Me temo que tiene un error en su software de minería y sus monedas se han ido.

En lugar de enviar a la dirección P2SH, se creó un bloque con un script de salida P2PKH, reinterpretando el hash del script de la dirección P2SH como un hash de clave pública. Esto sucede en algún lugar del software roto que no es compatible con P2SH y, además, tampoco verifica el byte de la versión de la dirección.

Si este es el caso, es irrecuperable y esas monedas se pierden para siempre. No puede encontrar una clave pública cuyo hash coincida con ese script.