TXID
Revision as of 15:19, 9 January 2020 by AlexMackay (talk | contribs)
A Transaction ID or TXID is a double SHA256 hash of the serialised transaction. TXIDs are not part of the the transaction, as the hash cannot be generated until the transaction is complete. A TXID and VOUT index are used to reference UTXOs when they are added to a transaction as an input.
Data
transaction: "inputs": [ { "prevout_hash": "b8ed28aa87b92328e26a20553ac49fcb21e1f68daeb6cf7bcf4536e40503ffa8", "prevout_n": 0, "scriptSig": "4830450221008824eee04a2fbe62d2c3ee330eb2523b2c0188240714bb1d893aced1c454fa9a02202d32dbccc2af1c4b830795f2fa8cd569a06ee70cb9d836bbd510f0b45a47711b4121028580686976c0e6a7e44a78387913e2d7508ff2344d5f48669ba111dcd04170a8", "sequence": 4294967294, "signatures": [ "30450221008824eee04a2fbe62d2c3ee330eb2523b2c0188240714bb1d893aced1c454fa9a02202d32dbccc2af1c4b830795f2fa8cd569a06ee70cb9d836bbd510f0b45a47711b41" ], "type": "p2pkh", "x_pubkeys": [ "028580686976c0e6a7e44a78387913e2d7508ff2344d5f48669ba111dcd04170a8" ] } ], "lockTime": 598793, "outputs": [ { "scriptPubKey": "76a9146b0a9ed05da7223a1fe57e1a4d307556f7d6200788ac", "value": 1800 }, { "scriptPubKey": "76a914b993e512cb186f3f1c3f556a09716a1580eb99a188ac", "value": 90000 } ], "version": 1 } serialized tx: 0100000001a8ff0305e43645cf7bcfb6ae8df6e121cb9fc43a55206ae22823b987aa28edb8000000006b4830450221008824eee04a2fbe62d2c3ee330eb2523b2c0188240714bb1d893aced1c454fa9a02202d32dbccc2af1c4b830795f2fa8cd569a06ee70cb9d836bbd510f0b45a47711b4121028580686976c0e6a7e44a78387913e2d7508ff2344d5f48669ba111dcd04170a8feffffff0208070000000000001976a9146b0a9ed05da7223a1fe57e1a4d307556f7d6200788ac905f0100000000001976a914b993e512cb186f3f1c3f556a09716a1580eb99a188ac09230900 transaction id: d8c5c42cbd1df7e48acab76fe05f2c9e612a20996fd37f4ffd4dc251385b6ba3
Explanation
The double SHA256 hash can be used to enable users to know that a corresponding party has a copy of the full TX by requesting the intermediate hash, which can only be generated by hashing the full transaction. This 'proof of possession' is present across Bitcoin and enables complex functionality and checking of resources when Bitcoin is being used in a fully peer to peer environment.