Raw-Transaction

隔離見證交易是什麼樣的?

  • May 17, 2018

我想了解隔離見證的工作原理,我認為原始交易數據將是一個很好的起點

如果這是目前交易的結構:

version | [inputcount] {[txid] [vin] [signature] [sequence]} | [outputcount] {value} {varint} {lockingscript} | [locktime]

隔離見證交易是什麼樣的?

來自比特幣核心的原語/transaction.h

/**
* Basic transaction serialization format:
* - int32_t nVersion
* - std::vector<CTxIn> vin
* - std::vector<CTxOut> vout
* - uint32_t nLockTime
*
* Extended transaction serialization format:
* - int32_t nVersion
* - unsigned char dummy = 0x00
* - unsigned char flags (!= 0)
* - std::vector<CTxIn> vin
* - std::vector<CTxOut> vout
* - if (flags & 1):
*   - CTxWitness wit;
* - uint32_t nLockTime
*/

換句話說,在 txin 計數之前,有一個0x00 0x01序列(否則會被解釋為一個 0 輸入和 1 輸出的交易,這是無效的),並且在鎖定時間之前,每個輸入都有一個見證記錄(txin count 不重複,它隱含地假設等於之前給出的 txin 計數)。

引用自:https://bitcoin.stackexchange.com/questions/49097