Validation - Vérification du format de transaction donné (JSON) sans accès à la blockchain à l'aide de scripts donnés et PrevOut dans l'entrée

{ "version": 1, "locktime": 0, "vin": [
{
"txid": "1d8f38f6a5fbc7951568f64f3b9320a4ebd1053dce4641a5c5526d3cd7a805e1",
"vout": 0,
"prevout": {
"scriptpubkey": "76a914293aa0e106ce67e0a538f79eba12be042012376488ac",
"scriptpubkey_asm": "OP_DUP OP_HASH160 OP_PUSHBYTES_20 293aa0e106ce67e0a538f79eba12be0420123764 OP_EQUALVERIFY OP_CHECKSIG",
"scriptpubkey_type": "p2pkh",
"scriptpubkey_address": "14kzwSXGFcnmxypPuSGsXw2AJ6QYHMvAmW",
"value": 43640
},
"scriptsig": "47304402205112f96bf7423703c221976603307f0e33913d39efc3344d68376fd2b8c0bd20022003ea588c06fa1a3e262e07ed6bf01a36f78741fe7bc6a91ff43c38a0a14e43fe012103bf68f1ce783df58a2459d549d5c655a1edc0f0cf4d79421fe978d358d79ee42a",
"scriptsig_asm": "OP_PUSHBYTES_71 304402205112f96bf7423703c221976603307f0e33913d39efc3344d68376fd2b8c0bd20022003ea588c06fa1a3e262e07ed6bf01a36f78741fe7bc6a91ff43c38a0a14e43fe01 OP_PUSHBYTES_33 03bf68f1ce783df58a2459d549d5c655a1edc0f0cf4d79421fe978d358d79ee42a",
"witness": null,
"is_coinbase": false,
"sequence": 4294967295,
"inner_redeemscript_asm": null
},
{
"txid": "6f7d353fb1c3af2694b54e268e9207ea59d1b699f56fc38fb0b4f410c1b6f36b",
"vout": 1,
"prevout": {
"scriptpubkey": "76a9146012eb3f170e34c880d4d8f2e191e51940d23ad688ac",
"scriptpubkey_asm": "OP_DUP OP_HASH160 OP_PUSHBYTES_20 6012eb3f170e34c880d4d8f2e191e51940d23ad6 OP_EQUALVERIFY OP_CHECKSIG",
"scriptpubkey_type": "p2pkh",
"scriptpubkey_address": "19kzXviUHUMLqbc3GgTN8jSC8iSoaYnGDw",
"value": 221273
},
"scriptsig": "483045022100ccd24f74db54fc839996bf375d5a022fd7a7dbbab061f1dbe807e34ea2e365bc02206bf0f95a1018eee9ac868de517ff185a28d507cbc92972597a37604b5232ba34012103526b9a0a4ddcd0fc1cf7f0b5f4d202bc587ff44b7c253c68000b9e49a9434442",
"scriptsig_asm": "OP_PUSHBYTES_72 3045022100ccd24f74db54fc839996bf375d5a022fd7a7dbbab061f1dbe807e34ea2e365bc02206bf0f95a1018eee9ac868de517ff185a28d507cbc92972597a37604b5232ba3401 OP_PUSHBYTES_33 03526b9a0a4ddcd0fc1cf7f0b5f4d202bc587ff44b7c253c68000b9e49a9434442",
"witness": null,
"is_coinbase": false,
"sequence": 4294967295,
"inner_redeemscript_asm": null
}
]"vout": [
{
"scriptpubkey": "a914e00f79d486ff476db46eb6e188a5d31b5429a91387",
"scriptpubkey_asm": "OP_HASH160 OP_PUSHBYTES_20 e00f79d486ff476db46eb6e188a5d31b5429a913 OP_EQUAL",
"scriptpubkey_type": "p2sh",
"scriptpubkey_address": "3N7jpoF34rPZp6WmcBmNxwpKAZZQCqDgbo",
"value": 252238
},
{
"scriptpubkey": "76a91441e4631b03326762604016821070aa95d7b15fde88ac",
"scriptpubkey_asm": "OP_DUP OP_HASH160 OP_PUSHBYTES_20 41e4631b03326762604016821070aa95d7b15fde OP_EQUALVERIFY OP_CHECKSIG",
"scriptpubkey_type": "p2pkh",
"scriptpubkey_address": "171QX5w3Jvi5udAim7MyWhDRgeETfqZsTz",
"value": 771
}
]
}

Dans ce type de format de transaction, et nous n'avons pas accès à la blockchain précédente, quelles sont les étapes pour vérifier les entrées et sorties de la transaction. Supposons que les PrevOut dans les entrées soient corrects et qu'ils existent dans la blockchain.