1. 每日区块链首页
  2. 学院
  3. 独家课堂

UTXO模型(比特币) VS 余额模型(以太坊)?

何为存储记录模型?

专员简单的来说一下,其实就是在整个区块链中,token的流转或者某一个地址的余额是按怎么样的模式以及结构记录在链上的。虽说,现在的白皮书也很少提到这些东西,但是在专员觉得,Token的记录方式也是无比重要的,在整个区块链的构成中。

现阶段,整个区块链的存储记录模式可以分为两大类:

1) 以比特币为首的UTXO模型。

2) 以以太坊为首的账户余额模型。

这两种模型各有优劣,但是就专员所知道的来说,现阶段有智能合约以及虚拟存在的区块链,一般都是账户余额模型,因为就专员的所知,在技术角度来看,很难在UTXO模型中加入智能合约。因此,为了区块链的落地以及扩展性方面的要求,现在市面上普遍的公链都是账户余额模型。

从自己的角度简单跟大家来聊一下,这两种模式的区别?

UTXO,UTXO的全称是Unspent Transaction Output,翻译成中文,其实就是未消费的交易输出。

举个例子,在现实的生活中,我们手上的现金其实就是未消费的交易输出,就像下图所示,每次我们产生一笔交易,我们会拿出一部分“现金”(就是一些未消费的交易输出),紧接着我们会有部分找零,因此在比特币中每一笔交易都会有输入输出。紧接着所有没有消耗的“现金“,都会完全同步的保存在各个节点中,用户钱包在查询余额时,其实就是根据用户私钥对应地址与相关联的未使用交易的列表,并且在钱包中计算这些未使用的UTXO总和,这也就是比特币钱包的最最基本的原理。

问题来了

可能会涉及一些UTXO的合并等等,不然可能找零会越来越多,严重拖慢区块链的运行速度。

小结

因此其实专员觉得,其实比特币所使用的UTXO模型,更加贴近现实生活中现金交易的模式,之前专员也听说央行在开发我们自己的数字货币,并将数字货币定性为“M0“,何为M0,其实就是现金。专员也猜测,会不会央行也会使用UTXO的模型来记录数字货币,因为UTXO更有现金的特性?当然这也仅仅只是猜测,UTXO模式与现在金融的存储模式是有很大的区别的。但是,其实是这样的,UTXO也有他本身的问题存在,UTXO的效率问题也是比较明显的,一笔交易可能会涉及多个UTXO的,需要对每个UTXO进行签名,UTXO的查询等等也是效率比较低的。UTXO模型(比特币) VS 余额模型(以太坊)?

以太坊则采用了账户余额模型

其实账户余额模式就是比较简单,举个例子,就是现在我们在银行里存钱或许曲线都是账户模型的,在银行甚至在支付宝,就是你创建的就是一个个账户,每次一笔就是,在你的账户对应的数字中加上或减去某一个数字,在对方的账户减去或加上某个数字。
在以太坊中,有一个名字叫世界状态(World State)

    对应的有个StateDB,StateDB比较复杂,里面还设计到一些默克尔树等等,专员有机会以后会跟大家介绍的。

不过这次,大家可以简单把他理解成一个Key/Value的存储,一个Address对应一个余额,每次钱包查余额,不需要像比特币那复杂去计算UTXO的综合等等,他只需要取出地址对应的余额即可,基本上跟银行查余额是一个模式。

因此可以很直接的概括出来,账户/余额模型的好处,就是简单加高效,并且在账户余额模型中,可以很方便的将虚拟机模块嵌入进去。

因此,当然其实也有其他的公链有提出其他的模式,例如比原链的BUTXO模型等等,但是实际上都是大同小异离不开专员说的上述的两种模型。

文末

但是,专员觉得,无论是UTXO或者账户余额模型都能够很好的解决区块链世界中的交易安全的问题,并且解决一些潜在的攻击的可能性,但是每种技术都各有利弊,公链的开发团队也是在设计的时候回权衡各种存储的模型,选出一种适合的模型技术。专员也期待着,会有更牛逼的大神提出更加优秀的存储模型,帮助区块链有更好的发展。

原创文章,作者:区块链研究员,如若转载,请注明出处:http://www.dayqkl.com/33591.html

发表评论

登录后才能评论

评论列表(1条)

QR code