Ситуация
Привет. Наша компания управляет пулом BTC. Мы некоторое время занимались майнингом BTC и использовали адрес segwit 32Z3eXSPgxcHj2fnQy8d6dg66eVtZfxrBM
в качестве адреса пула.
Но когда мы, наконец, нашли первый блок (на самом деле - два блока), по какой-то причине награда за блок была отправлена на другой адрес:1s2iywx94HudryMHsU2g1K9x8DB1cahGc
Вот ссылки на обе транзакции генерации с вознаграждениями: первую и вторую
Проблема
Мы не можем получить доступ к средствам 1s2iywx94HudryMHsU2g1K9x8DB1cahGc
— мы просто не можем видеть этот баланс на кошельке.
Вопрос
Как мы можем получить доступ к этим средствам на 1s2iywx94HudryMHsU2g1K9x8DB1cahGc
?
Больше информации
Используя команду клиента Bitcoin Core,validateaddress
мы можем проверить оба адреса:
Выход 32Z3eXSPgxcHj2fnQy8d6dg66eVtZfxrBM
для
{
"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"
}
Выход 1s2iywx94HudryMHsU2g1K9x8DB1cahGc
для
{
"isvalid": true,
"address": "1s2iywx94HudryMHsU2g1K9x8DB1cahGc",
"scriptPubKey": "76a91409763cb05dcea0f98f53b0f08651f92c5d2d2f3888ac",
"ismine": false,
"iswatchonly": false,
"isscript": false,
"iswitness": false
}
Здесь я вижу три интересных момента:
scriptPubKey
для обоих адресов содержит 09763cb05dcea0f98f53b0f08651f92c5d2d2f38
часть, которая фактически является открытым ключом. Первый байт отличается, что имеет смысл, так как это префикс, 00 для устаревшего и 05 для segwit соответственно.относительно вывода для 1s2iywx94HudryMHsU2g1K9x8DB1cahGc
:
pubkey
свойство отсутствует, что странно, потому что обычно оно включается для устаревших адресов
isMine
свойство равно false, что означает, что кошелек не распознает отношение этого адреса к PK кошелька.
Итак, может ли кто-нибудь дать некоторое представление и сказать нам, можем ли мы (и как?) получить доступ к этим средствам, или мы потеряли их навсегда?
PS
Когда я использую декодирование base58 на обоих, 32Z3eXSPgxcHj2fnQy8d6dg66eVtZfxrBM
и 1s2iywx94HudryMHsU2g1K9x8DB1cahGc
я получаю
0509763CB05DCEA0F98F53B0F08651F92C5D2D2F385CCEC0F4
и
0009763CB05DCEA0F98F53B0F08651F92C5D2D2F3861372301
соответственно.
Опять же, вы можете четко видеть одни и те же байты, поэтому адреса определенно связаны.
Боюсь, у вас ошибка в программном обеспечении для майнинга, и ваши монеты пропали.
Вместо отправки на адрес P2SH был создан блок с выходным скриптом P2PKH, который переинтерпретировал хэш скрипта из адреса P2SH как хэш открытого ключа. Это происходит где-то в сломанном программном обеспечении, которое не поддерживает P2SH и, кроме того, также не может проверить байт версии адреса.
Если это так, это невозвратно, и эти монеты потеряны навсегда. Вы не можете найти открытый ключ, хэш которого соответствует этому сценарию.