Innanzitutto ti consiglio caldamente di leggerti questi:
https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch06.asciidochttps://github.com/bitcoinbook/bitcoinbook/blob/develop/ch07.asciidochttp://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.htmlPartiamo dalla tua transazione in formato hex:
https://blockchain.info/tx/7edb32d4ffd7a385b763c7a8e56b6358bcd729e747290624e18acdbe6209fc45?format=hex0100000001c8cc2b56525e734ff63a13bc6ad06a9e5664df8c67632253a8e36017aee3ee4000000 0009000483045022100ad0851c69dd756b45190b5a8e97cb4ac3c2b0fa2f2aae23aed6ca97ab33b f88302200b248593abc1259512793e7dea61036c601775ebb23640a0120b0dba2c34b7900145514 1042f90074d7a5bf30c72cf3a8dfd1381bdbd30407010e878f3a11269d5f74a58788505cdca22ea 6eab7cfb40dc0e07aba200424ab0d79122a653ad0c7ec9896bdf51aefeffffff0120f40e0000000 0001976a9141d30342095961d951d306845ef98ac08474b36a088aca7270400
https://blockchain.info/it/decode-tx :
{
"lock_time":272295,
"size":229,
"inputs":[
{
"prev_out":{
"index":0,
"hash":"40eee3ae1760e3a8532263678cdf64569e6ad06abc133af64f735e52562bccc8"
},
"script":"00483045022100ad0851c69dd756b45190b5a8e97cb4ac3c2b0fa2f2aae23aed6ca97ab33bf88302200b248593abc1259512793e7dea61036c601775ebb23640a0120b0dba2c34b79001455141042f90074d7a5bf30c72cf3a8dfd1381bdbd30407010e878f3a11269d5f74a58788505cdca22ea6eab7cfb40dc0e07aba200424ab0d79122a653ad0c7ec9896bdf51ae"
}
],
"version":1,
"vin_sz":1,
"hash":"7edb32d4ffd7a385b763c7a8e56b6358bcd729e747290624e18acdbe6209fc45",
"vout_sz":1,
"out":[
{
"script_string":"OP_DUP OP_HASH160 1d30342095961d951d306845ef98ac08474b36a0 OP_EQUALVERIFY OP_CHECKSIG",
"address":"13fLLox43yXYvfoZadXpGbkTUXkW8bhqut",
"value":980000,
"script":"76a9141d30342095961d951d306845ef98ac08474b36a088ac"
}
]
}
Guardiamo solo allo script di input:
"script":"00483045022100ad0851c69dd756b45190b5a8e97cb4ac3c2b0fa2f2aae23aed6ca97ab33bf88302200b248593abc1259512793e7dea61036c601775ebb23640a0120b0dba2c34b79001455141042f90074d7a5bf30c72cf3a8dfd1381bdbd30407010e878f3a11269d5f74a58788505cdca22ea6eab7cfb40dc0e07aba200424ab0d79122a653ad0c7ec9896bdf51ae"
lo decodifichiamo con
http://chainquery.com/bitcoin-api/decodescript :
{
"result": {
"asm": "0 3045022100ad0851c69dd756b45190b5a8e97cb4ac3c2b0fa2f2aae23aed6ca97ab33bf88302200b248593abc1259512793e7dea61036c601775ebb23640a0120b0dba2c34b79001 5141042f90074d7a5bf30c72cf3a8dfd1381bdbd30407010e878f3a11269d5f74a58788505cdca22ea6eab7cfb40dc0e07aba200424ab0d79122a653ad0c7ec9896bdf51ae",
"type": "nonstandard",
"p2sh": "3PDibfe9au3sruD1ZmwbMh7fMsYG9aL9nr"
},
"error": null,
"id": null
}
Osserviamo che ci sono due blocchi di istruzioni: la prima parte
3045022100ad0851c69dd756b45190b5a8e97cb4ac3c2b0fa2f2aae23aed6ca97ab33bf88302200b248593abc1259512793e7dea61036c601775ebb23640a0120b0dba2c34b79001
è una firma (sequence 30, length 45, integer 02, length 21, X = ad0851c69dd756b45190b5a8e97cb4ac3c2b0fa2f2aae23aed6ca97ab33bf883, … vedi tabella "pushdata47" di qualche risposta fa)
Selezioniamo la seconda parte, che è uno script :
5141042f90074d7a5bf30c72cf3a8dfd1381bdbd30407010e878f3a11269d5f74a58788505cdca22ea6eab7cfb40dc0e07aba200424ab0d79122a653ad0c7ec9896bdf51ae
e quindi la decodifichiamo a sua volta
http://chainquery.com/bitcoin-api/decodescript :
{
"result": {
"asm": "1 042f90074d7a5bf30c72cf3a8dfd1381bdbd30407010e878f3a11269d5f74a58788505cdca22ea6eab7cfb40dc0e07aba200424ab0d79122a653ad0c7ec9896bdf 1 OP_CHECKMULTISIG",
"reqSigs": 1,
"type": "multisig",
"addresses": [
"1Fz5s6qVFwP3MDGeNav4ESQXFMpm8ELzUw"
],
"p2sh": "3P14159f73E4gFr7JterCCQh9QjiTjiZrG"
},
"error": null,
"id": null
}
da qui si vede che è uno script multisig 1 su 1 della forma:
1 <pubKey> 1 OP_CHECKMULTISIG
dove la pubKey è
042f90074d7a5bf30c72cf3a8dfd1381bdbd30407010e878f3a11269d5f74a58788505cdca22ea6
eab7cfb40dc0e07aba200424ab0d79122a653ad0c7ec9896bdf
Riassumendo:
nella transazione precedente abbiamo lo script di output della forma
HASH160 PUSHDATA(20) e9c3dd0c07aac76179ebc76a6c78d4d67c6c160a EQUAL
che contiene l'hash di uno script a questo stadio ancora sconosciuto alla rete;
nella transazione attuale, nello script di input abbiamo:
la firma
+ lo script in chiaro che corrisponde a quello il cui hash è contenuto nell'output della precedente tx:
<1 pubKey 1 OP_CHECKMULTISIG>
Dunque si procede così:
<1 pubKey 1 OP_CHECKMULTISIG> HASH160 <e9c3dd0c07aac76179ebc76a6c78d4d67c6c160a> EQUAL
Se l'hash160 dello script inserito nell'input coincide con l'hash fornito dalla transazione precedente, allora viene eseguito il controllo finale sulla firma:
0 signature 1 pubKey 1 OP_CHECKMULTISIG
si realizza così la verifica e si autorizza lo sblocco dei fondi collegati all'UTXO.