UTXO与Account模型区别

未经本人同意,禁止转载

UTXO与Account对比

两者的不同

  • 比特币的UTXO(未使用交易模型)
  1. A挖矿获得了12BTC,这个余额与一个UTXO关联;
  2. A转账给B 1BTC,则先解锁12BTC的这个UTXO,然后以12BTC作为交易的输入,该交易将1BTC转到B的地址,同时用一个11BTC的新UTXO发回给A(且A是新的地址)
  3. 如果B获得了这1BTC,在此之前还获得了2BTC的转账收入,如果B需要花费剩余的3BTC,则需要解锁这两个UTXO才能花费这笔钱
  • 以太坊的Account(账户/余额模型)
  1. A本来有5ETH,通过挖矿获得了5ETH。
  2. A向B转账1ETH,系统先从A扣除1ETH,则剩余9ETH
  3. 系统给B增加1ETH,而B先前已经有2ETH,则此时B有3ETH

两者的抽象理解

  • BTC的UTXO模型:系统好比钱包,交易好比纸币;交易消费纸币,前提是获取/解锁UTXO,即拿到纸币。系统则通过交易收到不同的UTXO,即收到纸币。
  • ETH的Account模型:系统好比银行,交易好比ATM/银行卡;交易消费是从账户上加减余额,即银行卡上加减。系统则通过交易对不同的银行卡进行加减。

两者的好处

UTXO的好处:
  • 可扩展性:由于可以同时处理多个UTXO,因此可以实现并行事务并鼓励可伸缩性创新。
  • 隐私:甚至比特币也不是一个完全匿名的系统,但只要用户为每笔交易使用新地址,UTXO就可以提供更高级别的隐私。 如果需要增强隐私性,可以考虑更复杂的方案,例如环签名。
Account的好处:
  • 简单性:账户之间的相互关联变简单。以太坊选择了一种更直观的模式,以便为复杂智能合约的开发人员带来益处,尤其是那些需要国家信息或涉及多方的开发人员。
  • 效率:除了简单之外,账户/余额模型更加高效,因为每笔交易只需要验证发送账户是否有足够的余额来支付交易。
  • 体积更小,单个引用:以太坊中交易也比比特币中的更小(以太坊中100字节,比特币中200-250字节),因为每次交易只需要生成一次引用,一次签名,以及一个输出。因此Dapp追溯用于的状态信息引用次数更少,速度更快。

两者的缺点:

UTXO的缺点:
  • UTXO的无状态模型会迫使交易包含状态信息,这使合约的设计不必要地复杂化。
Account的缺点:
  • 账户/余额模型的一个缺点是暴露于双重支出攻击。
  • 解决方法:可以实施递增的随机数来抵消这种类型的攻击。在以太坊中,每个帐户都有一个公共可见的随机数nonce,每次进行交易时,随机数都会增加一个。这可以防止相同的事务被多次提交。(注意,这个随机数不同于以太坊的以太坊证明,这是一个随机值。)

Nonce,Number used once或Number once的缩写,在密码学中Nonce是一个只被使用一次的任意或非重复的随机数值,在加密技术中的初始向量和加密散列函数都发挥着重要作用,在各类验证协议的通信应用中确保验证信息不被重复使用以对抗重放攻击(Replay Attack)。

翻译来源

以太坊设计原理

你可能感兴趣的:(UTXO与Account模型区别)