区块链账户模型

一、UTXO 模型

1.概念:

  未花费的交易输出

2.特点:

  无状态,它记录的是交易事件,而不记录最终状态

3.优点:

  • 节点只做验证记录交易,不做交易结果计算,也没有额外的状态存储。
  • 交易的 Input 始终是链接在某个 UTXO 后面,交易无法被重放,并且交易的先后顺序和依赖关系容易被验证,交易是否被消费也容易被举证。
  • UTXO 模型是无状态的,更容易并发处理。
  • 对于 P2SH 类型的交易,具有更好的隐私性。

4.缺点:

  • 无法实现一些比较复杂的逻辑,可编程性差。对于复杂逻辑,或者需要状态保存的合约,实现难度大,且状态空间利用率比较低。
  • 当 Input 较多时,见证脚本也会增多。而签名本身是比较消耗 CPU 和存储空间的。

5.适用场景:

 简单交易,更具隐私,以及跨链处理上。

二、ACCOUNT 模型

1.概念:
Account 模型保存了世界状态,即状态机,交易状态完全保存在状态机里。每个节点收到block后,按照共识机制,改写自己的状态机来完成账户余额的处理。

2.特点:可编程
3.优点:

  • 具有更好的可编程性。合约以代码形式保存在 Account 中,并且 Account 拥有自身状态。
  • 处理批量交易 Account 模型可以通过合约的方式降低签名验证,存储等消耗成本。

4.缺点:

  • Account 模型交易之间没有依赖性,需要解决重放问题。Ethereum是采用的是唯一的Nonce值的方法,每个交易Tx中有一个Nonce字段,对于每个用户来说,这个Nonce都不能重复,从而避免了重放攻击。
  • 实现闪电网络/雷电网络,Plasma中继跨链等协议证明会更复杂。

5.适用场景:

  可编程,更灵活的合约设计。

 

你可能感兴趣的:(区块链)