微观地看,每一个区块链中的交易都是一个状态转换函数,以太坊白皮书就用“以太坊状态转换函数”(Ethereum state transition function)来讨论在区块链上一个交易的进行过程。几乎所有的区块链都是采用这一设计,每一个新区块和它之前的所有区块一起形成了一个新的状态,如此重复、持续下去。在确认之后,之前的状态就不可篡改,即不可随意更改。UTXO(未使用的交易输出)是与这种状态的设计相对应的。
参考资料:《区块链:技术驱动金融》中相应的讨论,及文章“比特币和以太坊的记账方式——UTXO 和账户余额”(黄世亮/文)。
3) 当交易被区块链确认后,Alice 的 UTXO 就变成了 0。而在Bob的地址中就多了一个 UTXO,数量是 12.5。这里简化了交易过程,只讨论了将上一个交易的输出全部转帐的情况。如果试图转出上一个交易的输出的一部分比特币,则要进行略复杂的处理。
按照比特币系统的设计,比特币交易还要遵循一个原则:每一次交易的输入值都必须全部花掉,不能只花掉部分。比如,我要转出比特币给你的钱包地址中只有 8 个比特币,那么很简单,我发起一个交易,把这 8 个比特币转到你的钱包地址中,我签名确认这个交易。但假如我的钱包地址中有 25 个比特币,那我发起的交易就不是转给你 8 个比特币,然后自己的钱包地址中还剩下 17 个比特币。这时,我发起的交易是:从我的钱包地址中转 8 个比特币给你,同时转 17 个比特币给我的同一地址。
新闻热点
疑难解答