Declaro que todavía soy un principiante. Necesito alguna aclaración. Estoy usando Testnet. Esta es la información sobre la dirección que usé para recibir fondos de un Faucet
bitcoin-cli validateaddress 2N7MaihNErbNH8XTkuZWtJYPzMQAWMPVKHd
{
"isvalid": true,
"address": "2N7MaihNErbNH8XTkuZWtJYPzMQAWMPVKHd",
"scriptPubKey": "a9149ac58ff47e27214b158b38da04bc8cbf72def14387",
"isscript": true,
"iswitness": false
}
bitcoin-cli decodescript a9149ac58ff47e27214b158b38da04bc8cbf72def14387
{
"asm": "OP_HASH160 9ac58ff47e27214b158b38da04bc8cbf72def143 OP_EQUAL",
"reqSigs": 1,
"type": "scripthash",
"addresses": [
"2N7MaihNErbNH8XTkuZWtJYPzMQAWMPVKHd"
]
}
¿Qué significan los datos? Interpreto que mi dirección recibirá UTXO bloqueado por scripts tipo P2SH, ¿correcto? "iswitness": falso significa que esta dirección no puede usar UTXO segWit?
En esta dirección recibí el siguiente resultado como entrada:
{
"value": 0.01944571,
"n": 1,
"scriptPubKey": {
"asm": "OP_HASH160 9ac58ff47e27214b158b38da04bc8cbf72def143 OP_EQUAL",
"hex": "a9149ac58ff47e27214b158b38da04bc8cbf72def14387",
"reqSigs": 1,
"type": "scripthash",
"addresses": [
"2N7MaihNErbNH8XTkuZWtJYPzMQAWMPVKHd"
]
}
La UTXO bloqueada es la siguiente:
"txid": "a61389ff9af670770182198a984a4c1785625c60795bd57645ecc78765b23679",
"vout": 1,
"address": "2N7MaihNErbNH8XTkuZWtJYPzMQAWMPVKHd",
"label": "",
"redeemScript": "0014778daf651b21684b572644b47d551fce0ff71c74",
"scriptPubKey": "a9149ac58ff47e27214b158b38da04bc8cbf72def14387",
"amount": 0.01944571,
"confirmations": 116,
"spendable": true,
"solvable": true,
"desc": "sh(wpkh([7de694b7/0'/0'/7']032c27921f2d15e7eca768c0e8a8b1aeb863328c74d6c194d41dde2888d4b0e75b))#6z7uwusp",
"Sh (wpkh ())" describe una salida P2SH-P2WPKH y la clave pública con la que está asociada.
El descriptor nos dice que el script hash (sh) incorpora salida wpkh (Testigo - Pública - Clave - Hash). En palabras simples, el RedeemScript debe coincidir con el HASH de esta clave pública, ¿correcto?
Cuando desbloqueo y uso este UTXO, mi entrada generará un campo txinwitness separado.
"scriptSig": {
"asm": "0014778daf651b21684b572644b47d551fce0ff71c74",
"hex": "160014778daf651b21684b572644b47d551fce0ff71c74"
},
"txinwitness": [
"3044022034a07f088dd88396cd378912a4ed6a156701b075f0facbbae810677048c390e602205df07e13bf4d56feece791a1b5e4d94bec9c93aae14bb87a1b4c6c54ae9bf2f701",
"032c27921f2d15e7eca768c0e8a8b1aeb863328c74d6c194d41dde2888d4b0e75b"
],
"sequence": 4294967295
No puedo entender el vínculo entre la información de mi dirección ("es un testigo": falso) y las formas en que recibí/gasté la UTXO.
Debido a que la dirección que está utilizando es una dirección P2SH-P2WPKH como menciona ( sh (wpkh ())
), obtiene el resultado
"escritura": cierto,
"es un testigo": falso
Está hablando solo del nivel superior (P2SH), porque es una dirección P2SH, independientemente de lo que codifique el script "dentro". No "ve" el P2WPKH subyacente cuando llama a validateaddress
. La única vez isscript
que iswitness
ambos son verdaderos es para las direcciones P2WSH. Puede ver el código que crea este RPC isscript
/ iswitness
salida aquí .
Cuando lo gastas, revelas el guión dentro del P2SH. Debido a que es un script P2WPKH, que es OP_0 <keyhash>
, ese script se evalúa como tal (usando los datos de clave/firma en el testigo).
melk
colisionador de mallas
melk
colisionador de mallas