交易什么?
1.因为区块链是一种去中心化的技术,不像有中心化的银行这种机构来维护每个人的余额,如果每个节点维护自己的余额,显然是不靠谱的
2.因为交易记录是真实的,且都有付款方的签名,可以保证可信性,所以区块链实际交易的是交易记录
3.以比特币为例:转入称为input、转出称为output,每次别人转入的交易记录只能被使用一次,每次转出必须和转入对等,也就是output=input,可以转给自己作为找零操作
怎么维护交易记录和余额(以比特币为例)?
1.引入一个概念UTXO(Unspent Transaction Ouput)即我们没有消费的交易记录,区块链中记录了每条记录,非常庞大,但每个节点可以自己维护一个UTXO集合
2.维护TXO就是维护余额,维护UTXO就是维护交易记录
3.举例:A->D、B->D、C->D,这时这些交易记录都会存在UTXO集合中,如果D->E,只需看下交易记录是否在UTXO中,如果交易成功,这时UTXO中的之前的交易记录都会失效