UTXO
为什么要使用UTXO?
UTXO诞生于比特币,和现实世界的RMB一样,从央行诞生的那一刻起,他流转无数人的账户,但他的价值面额始终和原来一样,这样以币为中心,而不是以人为中心,资产便于监管和统计。Bytom 就是用于资产的发布和管理的,所以,UTXO的这种以资产为中心的设计模式,是很适合Bytom上面的资产管理。
UTXO有哪些优点
- 在版本控制方面的考虑,svn 是中心化的数据库保持一份账本,这和区块链的设计自然是相违背的,git 是去中心化的数据库,但会保存太多冗余数据,对于分布式性能肯定是要大打折扣。UTXO数据库是抛弃了历史包袱的git, 只存储了最后一个版本。简易实用。
- UTXO 具有天然的匿名效果,一个账户所对应的未花费交易是难以发现的,如门罗币就是采用混币的方式实现隐私的。
- 在性能方面,由于UTXO是独立的数据记录, 那么就存在极大的并行性可以提升区块链交易验证速度。
怎么使用UTXO?
image相比比特币的UTXO, bytom的UTXO多了三个字段
1. assertid, 因为bytom是一个多资产发布与管理的平台,所以使用该字段来唯一确定各种资产。
2. accountid, 这是便于各账户对utxo的索引和管理,bytom 相比bitcoin,引入了账户模型,后面会介绍。
3. program, 拥有该utxo的账户可以用Ivy语言编写自己想要的程序放在该字段,以便在交易时,图灵完备的BVM会执行该程序。
为了数据易于管理,易于编程, 比原链引入以太坊的世界状态的概念,每一种资产都维持一个全局世界状态,该全局世界状态具有快速可查找,不可更改,简单易提供证明的特性。它的具体实现会参考以太坊的PAT树(一种扩展的基数树),比特币的merkle树,以及cosmos的IAVL树(一种不可更改的平衡二叉树)。每一种资产的所有outputs在一个全局的UTXO数据库中会有一个索引计数(每一个output的计数不能超过1,保持并行计算时,一个output最多能被一个BVM实例所使用,确保了数据一致性)。BVM是比原链实现的智能合约虚拟机模型, 每一笔交易的的执行,都会实例化一个BVM实例,只有在BVM实例中,各资产的世界状态才能在保持有效性,一致性的前提下更新状态。BVM可以并行创造多个”合约沙盒”实例, 在沙盒中合约的运行不受外界影响。
比原链创造的初衷是解决数字资产登记流转的问题, 对于公有链项目,保持简洁,保持高效,保持专注,就是保障安全, 新的扩展型UTXO模型正是基于这种场景实现的融合和改进。
网友评论