首页 > 互联网 > 第六问:区块链账户模型

第六问:区块链账户模型

区块链中最主要就是两种账户模型:UTXO(Unspent Transaction Output:未花费的交易输出)模型和 账户(Account)模型。 前者的代表是比特币,后者的代表是以太坊。


UTXO模型:


UTXO模型

UTXO: 字面上的解释叫【未花费的交易输出】,通俗一点来解释, 小明接到了一笔向他的转账交易,里面带有一定数量的比特币, 但是小明接到这笔交易后什么都没有干(没有针对这笔交易的花费),那么这笔交易就称之为一个UTXO。


BTC没有一个像我们现实生活中银行卡或支付宝那种账户的概念,也就是说在某个BTC地址下,没有一个账本记录了这个地址中有多少余额, 它统计某个地址下有多少比特币,是通过统计针对这个地址的一个个UTXO而得来的。


比特币交易满足两个条件:

1. 交易输出要满足是未花费的状态,这个由区块链上的矿工来验证,这也是BTC预防双花的方法;

2. 输出和输入要一致

小明有一笔5个BTC的UTXO, 他要向小红转1个BTC,对应有两笔交易, 一笔1个BTC给小红(小红获得一个UTXO), 另一笔4个BTC的交易作为找零还给自己(小明又获得一个4BTC的UTXO)。 当然,实际交易中是要包含给矿工的手续费的,简便起见,我忽略手续费这一项。


Account模型:


Account模型

Account模型可以用银行卡或是支付宝来进行类比,它显式的记录了一个用户账户下有多少资产。比如上图中可以直观的看到原来14c5f8ba下有1024个ETH, 当它发起了一笔面向bb75a980的10个ETH的转账交易后,它的账户余额就变成了1014个ETH。


总结:

两种账户模型都有其自身的优势和缺点,Account 模型通过访问账户就可以直观清晰了解账户状态,所以在可编程性,灵活性等方面比较有优势;而UTXO十多年的运行也证明了它的安全性,并且UTXO的无状态性,可以同时处理多个UTXO,能实现并发处理事务。 两种并不存在高下之分,区块链系统的开发需要结合自身业务特点来选用哪种模型。

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/hlw/237275.html