知识库
返回
Nervos·
1 mins
840 views
UTXO 模型 vs. 账户模型
cover

alt_text

UTXO 模型(左) vs. 账户模型(右)可以想像成现金交易与银行转账的区别

UTXO 模型和账户模型,是区块链世界里最流行的两种记账方式。这两种模型在区块链如何处理和记录交易方面,有着根本性的不同。

一言以蔽之,UTXO 模型的工作方式类似于现金交易,而账户模型的工作方式类似于银行账户的处理方式。

UTXO 模型的工作方式

UTXO 的工作方式类似于现金,其中每个 UTXO 就像一张用户可以消费的独特纸币。在 UTXO 模型的区块链中,每个用户都可以通过添加他们拥有的加密货币来跟踪其余额。

举个例子,假设名叫 Bob 的人去一家快餐店买一个 10 美元的汉堡。然而,他只有一张 20 美元的钞票,这意味着当他为汉堡付款后,餐厅必须给他一张 10 美元的钞票作为找零。

在基于 UTXO 的区块链中,20 美元的钞票和 10 美元的零钱将表示为两个单独的 UTXO。因此,在 Bob 的例子中,他的加密货币账户余额只是他拥有的 UTXO 的总和,就像他的实体钱包只是他放入钱包的所有不同面额的钞票的总和一样。

所以,在比特币等基于 UTXO 的区块链中,没有身份的概念,只有关联到不同钱包地址的 UTXO 或者说 “未花费的代币”。这里的关键点是,比特币协议不追踪用户的余额,而是追踪 UTXO 以及这些 UTXO 分别属于哪些地址。

关于 UTXO 模型的更多介绍,欢迎查阅《UTXO 模型的介绍》。

账户模型的工作方式

账户模型是目前被更多区块链所使用的一种记账方式。账户模型最初来源于以太坊区块链,如今被很多其他区块链项目用来记录交易和状态变化。

账户模型的记账方式类似于银行账户,转账记录则表现为银行账户中转账人和收款人的余额变化。举个例子,当 Alice 向 Bob 转账 10 美元时,银行会从 Alice 的账户余额中扣掉 10 美元,同时在 Bob 的账户余额中添加 10 美元。

基于账户模型的区块链也是如此,不同点在于记录用户余额的分布式账本由许多节点(全节点)来维护。这里的关键点是,基于账户模型的区块链不跟踪代币,而是跟踪用户账户的余额变化。在这个模型中,存在身份的概念,用户通常与区块链账户或地址相关联。

alt_text

UTXO 模型和账户模型的主要区别

在比较 UTXO 模型和账户模型的优缺点时,需要注意它们之间的几个不同点,这些不同点恰恰体现了这两个模型的特色。

比如,在 UTXO 模型中,加密货币钱包通常会为用户的每笔交易生成新地址,这使得第三方很难追踪或者说将交易和某个个体联系在一起。UTXO 模型的这个特性提供了比账户模型更高的隐私级别,因为在账户模型中,更容易通过透明的账户余额将账户和某个个体关联起来。

此外,UTXO 模型天然地支持并行交易处理,即同时处理许多笔区块链交易,从而提高效率和吞吐量。这与账户模型形成了鲜明的对比,后者只能按顺序处理交易,或者一个接一个地线性处理交易。

交易并行处理在交易量大的情况下特别有用,因为它让网络每秒能够容纳更多的交易,满足不断增长的需求。此外,它还有助于缩短交易的确认时间,加快响应速度,提升效率,以及提高资源的利用率。

另一方面,基于账户模型的区块链通常被认为比基于 UTXO 模型的区块链更具可编程性,或者说更适合智能合约。这是因为基于账户模型的区块链是有状态的,可以让用户的账户和智能合约之间进行更复杂的交互,开发人员也更容易创建可编程逻辑和构建复杂的去中心化应用。换句话说,账户模型通常更易于开发人员使用,因为交易类似于账户之间的直接转账或对智能合约的函数调用,更接近于传统的编程范式。

总结

总而言之,UTXO 模型和账户模型之间的差异,源于它们管理交易和状态的方式方法有所不同。UTXO 模型提供了更强的隐私性,且可以并行处理交易,其重点是追踪 UTXO。账户模型则通过维护账户和余额的全局状态来简化交易,让开发人员更容易开发,更适合智能合约和复杂的应用程序。

在构建或参与区块链生态系统时,了解这些模型之间的细微差异,对开发人员、用户和利益相关者做出明智的决策至关重要。

end