区块链技术迅猛发展,各种公链如雨后春笋层出不穷,但是数据记录方式只有两种,一种是BitCoin为首的UTXO模型,另一种就是以Ethereum为首Account(账户)模型。下面就聊一聊两种模型是什么及其优缺点。

一、UTXO模型

UTXO是Unspent Transaction Output的缩写,是比特币发明人「中本聪」的天才设计。本质上,UTXO就是流水账。

BTC交易模型

在比特币网路中,区块中保存著每一笔链上的交易,交易中包含的信心就包含著这笔交易的输入及其输出,要求输入必须大于等于输出,超出的部分会作为矿工的挖矿费用。

当要进行一笔转账交易时,会遍历所有的交易得到所有的输出,然后继续循环遍历,前面的到的输出,是否已经被作为输入被消费。最后得到的没有被花费的输出就是UTXO,累加所有的UTXO就是该地址的余额。

这种模型有很多的优点:

  1. 计算的交易是通过链下完成的,不会增加链上的负担。
  2. UTXO 模型是无状态的,更容易并发处理。
  3. 具有更好的隐私性。

但是缺点也很明显,因为存储了所有的交易,所以就会显得很庞杂,无法实现一些比较复杂的逻辑,可编程性差。同时因为Input较多,导致见证脚本增多,会比较消耗CPU和存储空间。

二、ACCOUNT模型

为了简化存储,实现图灵完备,Ethereum创建了一个更为通用的协议,引入了Account模型。Account模型保存了世界状态,区块里面只存储著交易的状态,不在存储庞大的交易。

Ethereum交易状态模型

以太坊网路中,区块中存储著的是交易后的状态。状态->交易->状态的模型结构。这种简便的存储方式会具有更好的编程性,可以把合约以代码的形式保存在Account中,因此以太坊是真正的图灵完备。这种模型还有一个很大的优点就是批量交易成本更低,可以极大的降低成本。

存储状态的方式使所有的交易之间没有了依赖性,需要额外解决重放的问题。

三、总结

UTXO模型是中本聪创造出来的,具有划时代的意义,是区块链1.0时代的重要组成部分。Account模型具有可编程性,灵活的优势,可以在此模型上部署智能合约,是区块链2.0时代的基础。

推荐阅读:

相关文章