区块、交易与账本

账户模型

账户模型是区块链的一种记账方式:账本为每个账户保存一个滚动余额,一笔交易只是从发送方的余额里扣减、再加到接收方的余额上。它的运作几乎和我们熟悉的银行对账单一模一样:每个账户对应一个数字,每笔付款都把这些数字往上或往下挪一挪。以太坊是采用这种方式最知名的区块链,它正是比特币所用的 UTXO 模型之外的另一种选择。

由于每个账户是一个可变的单一余额,而非一堆离散的币,交易写起来、想起来都更简单:发送十个单位,发送方的数字减十、接收方的数字加十,没有多余的找零要退回。为了防止有人重放或重排付款,每个账户还带有一个稳步递增的计数器,给它的交易编号,因此这些交易必须严格按顺序处理。这种整洁、带状态的设计,与智能合约天然契合——智能合约本身也是账户,持有一个余额和一段持久的内存。

其权衡恰好与 UTXO 方式互为镜像。账户模型更直观,对可编程的应用也更便利,但更新共享的余额会让交易更难完全并行地验证,并且需要小心维护其顺序不致含糊。两种模型并无绝对优劣;它们是对同一个记账问题给出的两套自洽答案,而一条区块链在二者间的取舍,塑造了它的钱包、手续费与应用是如何构建的。