- 在区块链的账号数据模型里,一种方法称为UTXO(未使用交易输出)模型,另一种是账户/余额模型。
- UTXO模型由比特币使用,而以太坊,fabric使用账户/余额模型.
UTXO模型
- UTXO的英文全称为Unspent Transaction Output,(未消费的交易输出)。
- UTXO理解为交易过程中的一个数据结构,包含交易数据和执行脚本(Pubkey scripts),是某地址已经收到的但是尚未花费出去的加密数字货币
- UTXO模型中,交易处理的基本单位是一个交易记录,任何一个交易的输入都是某一个交易的输出。
- 某一个账户中的余额并不是由一个数字表示的,而是由当前区块链网络中所有跟当前账户有关的 UTXO 组成的,多个未消掉的UXTO
why UTXO
- 比特币是去中心化的设计,所以没有一个或者几个中心机构来对账、清洁算,它需要有自己的一套清洁算系统。而这套系统就是UTXO支付模型
- 整个交易、结算的过程都是由UTXO来完成的,其完全不借助第三方,也几乎不会发生算错的情况。
UTXO特点
- 每个UTXO都是独一无二的,就好像带有编码的钞票一样(对应现实生活人民币找零)
- 相比钞票来说,UTXO更灵活,并没有固定面额的限制,任意数额都可以
- UTXO是不能分割的,只能被消耗掉
- 在交易前后,UTXO的数量可能增多,也可能减少
- 每笔交易的输入和输出都是有关系的,可以通过UTXO不停往前追溯,直到挖矿
账户余额模型
- 目前各大银行使用的,支付宝使用的,一个中心话结算,A转账给B,A减多少,B加多少,在一个事务里完成。
####二者对比
- UTXO模型的好处是:
1 | 可扩展性 - 由于可以同时处理多个UTXO,因此可以实现并行事务并鼓励可伸缩性创新。 |
- 账户/余额模型的好处是:
1
2简单性 - 以太坊选择了一种更直观的模式,以便为复杂智能合约的开发人员带来益处,尤其是那些需要国家信息或涉及多方的开发人员。 一个例子是一个智能合约,跟踪各国根据它们执行不同的任务。 UTXO的无状态模型会迫使交易包含状态信息,这不必要地使合约的设计复杂化。
效率 - 除了简单之外,账户/余额模型更加高效,因为每笔交易只需要验证发送账户是否有足够的余额来支付交易。