Погашение хэша OP_SHA256 OP_EQUAL (Testnet) Tx

Я создал следующий нестандартный Tx в сети Testnet3: 6b52c981e6814072db77cb755b2633cd126b4ca21501d18ab994531e17a4a813

{
hash: "6b52c981e6814072db77cb755b2633cd126b4ca21501d18ab994531e17a4a813",
ver: 1,
vin_sz: 1,
vout_sz: 1,
lock_time: 0,
size: 234,
in: [
{
prev_out: {
hash: "a61a8bd4aaab2aa935f2e62672a783ca936821c94e021caed747d3ff8b658ff7",
n: 0
},
scriptSig: "3045022100b4b97d5f21efa866ffc25ae4e20b4427adbeffca0fb8ea5d90ef261e1050c43e022077d1e734b077630b3634f91b2d60eb267f4a4e3e25ad9a0f56825363eee0fdc001 04dcc0cf808a5313ee50185575a850738011730247273aa3e11f400f7904e01fda86383ff0e8ed2ba201cb6cfb974d6148199ffc635d92b92b834ec04885bb9a71"
}
],
out: [
{
value: "0.00080000",
scriptPubKey: "OP_SHA256 931d236179670b00348f87bea4199fe18297f0ef26da02c7542bd54d5b7836d8 OP_EQUAL"
}
]
}

Интересующий результат: "OP_SHA256 931d236179670b00348f87bea4199fe18297f0ef26da02c7542bd54d5b7836d8 OP_EQUAL".

хэш "секрет" =adfladsfhuifo8ry8fh4u4et4e5tsg415et458s43etg41s35e4g3541r35g143sg54s385g41s535e1g435s4g;.:;,[@snrltgnjslenjrgklsnleignilsnklgnslnglk

sha256(secret)"="931d236179670b00348f87bea4199fe18297f0ef26da02c7542bd54d5b7836d8

Страница BTC Wiki Script (а именно, раздел Puzzle Tx ) содержит обсуждение высокого уровня (DOUBLE SHA256, обратите внимание, что это всего лишь SHA256, т.е. 0xa8Это обсуждение BTCtalk предоставляет вышеупомянутый секрет, необработанный формат Tx и т. д.


я пытаюсь искупить010000000113a8a4171e5394b98ad10115a24c6b12cd33265b75cb77db724081e681c9526b0000000000ffffffff01204e000000000000864c846164666c61647366687569666f38727938666834753465743465357473673431356574343538733433657467343173333565346733353431723335673134337367353473333835673431733533356531673433357334673b2e3a3b2c5b40736e726c74676e6a736c656e6a72676b6c736e6c6569676e696c736e6b6c676e736c6e676c6b00000000

{
"txid" : "717b0d0db10f79d38553d2aeda3994768fda306fa5331d055fb3cf00818a6d7e",
"version" : 1,
"locktime" : 0,
"vin" : [
{
"txid" : "6b52c981e6814072db77cb755b2633cd126b4ca21501d18ab994531e17a4a813",
"vout" : 0,
"scriptSig" : {
"asm" : "",
"hex" : ""
},
"sequence" : 4294967295
}
],
"vout" : [
{
"value" : 0.00020000,
"n" : 0,
"scriptPubKey" : {
"asm" : "6164666c61647366687569666f38727938666834753465743465357473673431356574343538733433657467343173333565346733353431723335673134337367353473333835673431733533356531673433357334673b2e3a3b2c5b40736e726c74676e6a736c656e6a72676b6c736e6c6569676e696c736e6b6c676e736c6e676c6b",
"hex" : "4c846164666c61647366687569666f38727938666834753465743465357473673431356574343538733433657467343173333565346733353431723335673134337367353473333835673431733533356531673433357334673b2e3a3b2c5b40736e726c74676e6a736c656e6a72676b6c736e6c6569676e696c736e6b6c676e736c6e676c6b",
"type" : "nonstandard"
}
}
]
}

Итак, это выглядит нормально, верно?

Что ж, подпись (с signrawtransaction) возвращает шестнадцатеричные данные с ложным флагом для завершения. Кроме того, как знаковые, так и беззнаковые шестнадцатеричные строки возвращают эту ошибку:

  • 16: mandatory-script-verify-flag-failed (Operation not valid with the current stack size) (code -26)

Кто-нибудь понял, в чем может быть проблема, и, возможно, более полезно для всех остальных, предполагая, что P2SH не вариант , как можно выкупить эти результаты?

Ответы (1)

Итак, это выглядит нормально, верно?

Нет. Это не выглядит хорошо. Вы должны поместить свой «секрет» в scriptSig. А ваш scriptPubkey нужно выкупить на один из ваших адресов (например на msimoNvz23QXyiRofLtGSCsVdkdsNJn4SU). Вы не должны пытаться подписать эту транзакцию — для ее погашения не требуется подпись ecdsa.

примерно так: (извините, делал "руками", так что может быть не корректно)

01000000
01 
13a8a4171e5394b98ad10115a24c6b12cd33265b75cb77db724081e681c9526b
00000000

86    // length of script
4c84  // push 0x84 following bytes
6164666c61647366687569666f38727938666834753465743465357473673431356574343538733433657467343173333565346733353431723335673134337367353473333835673431733533356531673433357334673b2e3a3b2c5b40736e726c74676e6a736c656e6a72676b6c736e6c6569676e696c736e6b6c676e736c6e676c6b
ffffffff

01                 // one output
204e000000000000   // value in hex
19                 // length
76 A9 14 85ddbd9c2f9733dc3860b9e1ffcdc0da2633004b 88 AC // redeem to msimoNvz23QXyiRofLtGSCsVdkdsNJn4SU

00000000
Конечно! В этом есть смысл. Путаница возникла изначально, потому что подпись не требовалась, но, оглядываясь назад, я вижу, что искупление связано с подписью, что имеет смысл. И очевидно, что Tx - это беспорядок, учитывая, что выходы / входы либо полностью отсутствуют, либо переставлены местами. Я попробую это в течение часа.