UTXO模型
UTXO模型(未花费的交易输出),一笔input对应output,每笔交易都会生成一个哈希值和索引,通过索引记录和哈希值来记录,我们来看详细内容
1 UTXO基本模块
Transaction
每笔交易都有三个属性,TxHash、Inputs和Outputs,交易哈希充当该笔交易的索引,具有唯一性;同时,每笔交易可能包含多个Input和Output。一笔交易的完成事实上是一次对一定数量的Input和Output的封装,并且给它们打上唯一的印记(交易哈希)。再引申而言,每个区块是对一定数量的交易的封装,同样的,区块也会给这些交易打上一个唯一的印记,也就是区块的哈希值,而区块链是对区块的集合,以链状的形式存在,要实现链的升级可以采用这种思想:对已完成的链的部分进行技术封装,扩展升级后实现更多生产目标
type Transaction struct {
//1 transaction hash
TxHash []byte
//2.input
//a slice to collect all TXInput
Vins []*TXInput
//3.output
//a slice to collect all TXOutput
Vouts []*TXOutput
}
Input & Output
**Input **实际上是对Output的记录,每当产生Output被花费时,Input就会记录它,具体精确到哪一笔交易中的第几笔Output