Creé el siguiente Tx no estándar en la red 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"
}
]
}
La salida de interés, es: "OP_SHA256 931d236179670b00348f87bea4199fe18297f0ef26da02c7542bd54d5b7836d8 OP_EQUAL"
.
hash 'secreto' =adfladsfhuifo8ry8fh4u4et4e5tsg415et458s43etg41s35e4g3541r35g143sg54s385g41s535e1g435s4g;.:;,[@snrltgnjslenjrgklsnleignilsnklgnslnglk
sha256(secret)
=931d236179670b00348f87bea4199fe18297f0ef26da02c7542bd54d5b7836d8
La página de BTC Wiki Script (a saber, la sección Puzzle Tx ) proporciona una discusión de alto nivel (de DOUBLE SHA256, tenga en cuenta que esto es solo SHA256, es decir 0xa8
. Esta discusión de BTCtalk proporciona el formato de Tx sin formato secreto antes mencionado, etc.
estoy tratando de redimir010000000113a8a4171e5394b98ad10115a24c6b12cd33265b75cb77db724081e681c9526b0000000000ffffffff01204e000000000000864c846164666c61647366687569666f38727938666834753465743465357473673431356574343538733433657467343173333565346733353431723335673134337367353473333835673431733533356531673433357334673b2e3a3b2c5b40736e726c74676e6a736c656e6a72676b6c736e6c6569676e696c736e6b6c676e736c6e676c6b00000000
{
"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"
}
}
]
}
Entonces, se ve bien, ¿verdad?
Bueno, firmar (con signrawtransaction
) devuelve datos hexadecimales con una bandera falsa para completar. Además, tanto las cadenas hexadecimales firmadas como las no firmadas devuelven este error:
16: mandatory-script-verify-flag-failed (Operation not valid with the current stack size) (code -26)
¿Alguien tiene alguna idea de cuál puede ser el problema y, quizás más útil para todos los demás, suponiendo que P2SH no sea una opción , cómo se canjean estos resultados?
Entonces, se ve bien, ¿verdad?
No. No se ve bien. Tienes que poner tu 'secreto' en scriptSig. Y su scriptPubkey debe canjearse a una de sus direcciones (por ejemplo, a msimoNvz23QXyiRofLtGSCsVdkdsNJn4SU). No debe intentar firmar esta transacción; canjearla no requiere la firma ecdsa
algo como esto: (lo siento, lo hice "a mano", por lo que puede ser incorrecto)
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
mago de ozzie