Estoy tratando de entender cómo obtener la dirección p2SH al decodificar un script de salida.
r.push_back(Pair("p2sh", CBitcoinAddress(CScriptID(script)).ToString()));
Por lo que entiendo, CScriptID es el hash160 del script.
Entonces, una P2SH scriptPubKey se ve así:
OP_HASH160 <20 byte script hash> OP_EQUAL
Serializado, en hexadecimal, que se parece a:
17a9140000000000000000000000000000000000000087
^ ScriptPubkey len
^ OP_HASH160
^ Data element len
^ Data element
^ OP_EQUAL
donde los ceros pueden ser cualquier byte.
¿Cómo se transforma eso en una dirección que comienza con 3? Lo transformas de la misma manera que lo harías con una dirección de Bitcoin normal , pero con un byte de versión diferente. En lugar de 00
, usarías 05
.
Consulte también la especificación de la dirección P2SH .
Alberto
Alberto
Nick ODell
Alberto
Nick ODell
OP_HASH160 <hash> OP_EQUAL
y parece multisig desnudo<something> OP_CHECKMULTISIGVERIFY
Nick ODell