
2.2.3 模型对比
上文对现阶段广泛采用的两种账户体系进行了介绍,本节将对混合模型进行介绍,随后进行模型之间的对比。
1. 混合模型
有些区块链项目提出将UTXO模型与账户余额模型进行结合。以量子链(Qtum)为例,其在负责智能合约执行的虚拟机层与负责转账操作的UTXO层之间加设了一层账户抽象层(Account Abstract Layer,AAL),通过AAL对UTXO账户与智能合约账户进行适配和转换,实现UTXO模型与账户余额模型的优势互补[5]。
2. 优劣对比
表2-1给出了UTXO模型与账户余额模型在建模对象、适用场景、隐私性与并行度这几个角度的优劣对比。
表2-1 账户体系优劣对比

1)建模对象
UTXO模型首先构建“代币”的概念,再为代币赋予所有权,用户可以自由、直接地操作其拥有的代币。因此,UTXO模型是以资产为基础进行建模的;而在账户余额模型中,用户的余额背后并不存在真实的代币进行支撑,用户只能对账户进行操作。因此,账户余额模型是以账户为基础进行建模的。
2)适用场景
UTXO模型中并不存在“账户当前状态”的概念,所有状态都以UTXO的形式保存在交易中,我们称UTXO模型是无状态(Stateless)的。因此,难以基于UTXO模型构建转账、货币发行等数字货币领域之外的复杂应用(如智能合约);而在账户余额模型中,外部账户拥有账户余额等状态数据,智能合约账户拥有智能合约变量等状态数据,我们称账户余额模型是有状态(Stateful)的。因此,基于账户余额模型可以进行丰富的编程应用。
3)隐私性
在UTXO模型中,如果用户为每笔收到的交易都使用新的地址,那么这些交易将很难关联到该用户上,提高了用户的隐私性。不过由于区块链应用往往需要追踪某一用户的各种状态,因此这种隐私性可能只在电子货币领域有用武之地;而在账户余额模型中,账户的各种状态与账户地址直接关联,其隐私性相对较弱。
4)并行度
在UTXO模型中,交易的输出都是不可分割的独立UTXO,因此比特币持有者可以选择不同的UTXO构建交易,这些交易是互不影响、可并行执行的;而在账户余额模型中,账户余额是一个全局的世界状态,因此若多条交易涉及同一个账户的改变,那么这些交易将无法并行执行。