关于区块链账户模型记录

  • 在区块链的账号数据模型里,一种方法称为UTXO(未使用交易输出)模型,另一种是账户/余额模型。
  • UTXO模型由比特币使用,而以太坊,fabric使用账户/余额模型.

UTXO模型

  • UTXO的英文全称为Unspent Transaction Output,(未消费的交易输出)。
  • UTXO理解为交易过程中的一个数据结构,包含交易数据和执行脚本(Pubkey scripts),是某地址已经收到的但是尚未花费出去的加密数字货币
  • UTXO模型中,交易处理的基本单位是一个交易记录,任何一个交易的输入都是某一个交易的输出。
  • 某一个账户中的余额并不是由一个数字表示的,而是由当前区块链网络中所有跟当前账户有关的 UTXO 组成的,多个未消掉的UXTO
why UTXO
  • 比特币是去中心化的设计,所以没有一个或者几个中心机构来对账、清洁算,它需要有自己的一套清洁算系统。而这套系统就是UTXO支付模型
  • 整个交易、结算的过程都是由UTXO来完成的,其完全不借助第三方,也几乎不会发生算错的情况。

UTXO特点

  • 每个UTXO都是独一无二的,就好像带有编码的钞票一样(对应现实生活人民币找零)
  • 相比钞票来说,UTXO更灵活,并没有固定面额的限制,任意数额都可以
  • UTXO是不能分割的,只能被消耗掉
  • 在交易前后,UTXO的数量可能增多,也可能减少
  • 每笔交易的输入和输出都是有关系的,可以通过UTXO不停往前追溯,直到挖矿

账户余额模型

  • 目前各大银行使用的,支付宝使用的,一个中心话结算,A转账给B,A减多少,B加多少,在一个事务里完成。

####二者对比

  • UTXO模型的好处是:
1
2
可扩展性 - 由于可以同时处理多个UTXO,因此可以实现并行事务并鼓励可伸缩性创新。
隐私 - 甚至比特币也不是一个完全匿名的系统,但只要用户为每笔交易使用新地址,UTXO就可以提供更高级别的隐私。 如果需要增强隐私性,可以考虑更复杂的方案,例如环签名。
  • 账户/余额模型的好处是:
    1
    2
    简单性 - 以太坊选择了一种更直观的模式,以便为复杂智能合约的开发人员带来益处,尤其是那些需要国家信息或涉及多方的开发人员。 一个例子是一个智能合约,跟踪各国根据它们执行不同的任务。 UTXO的无状态模型会迫使交易包含状态信息,这不必要地使合约的设计复杂化。
    效率 - 除了简单之外,账户/余额模型更加高效,因为每笔交易只需要验证发送账户是否有足够的余额来支付交易。