比特币与以太坊的状态机模型

比特币的状态机模型:UTXO-based State Transition Model

在先前的文章已经介绍过,比特币赖以支撑支付体系的关键是 Transactions(更具体来说,其实是 UTXOs),每一笔交易/转账,实际上只是改变了 UTXO 的状态,例如从 unspent 标记为 spent、创建新的 UTXO 等等。因此,假设我们令第 nn 次交易后全体 UTXO 的集合记为 SnS_{n},那么在第 n+1n+1 笔交易发生后,全体 UTXO 的集合可以用数学语言描述

Apply(Sn,TXn+1)=Sn+1 \texttt{Apply}(S_n, \texttt{TX}_{n+1})=S_{n+1}

以太坊的状态机模型:Account-based State Transition Model

先前我们在比特币的原理里面提到,区块链上的“账户”本质是 a collection of UTXOs. 但是为了方便用户,仍然在此基础上抽象出“账户”,以太坊的账户包括

  • 账户地址
  • 账户余额
  • 账户拥有的 UTXOs 数量(Nonce)
  • 额外信息(如有)

类似的,每一笔交易都会改变账户余额,于是乎账户的状态被改变。

Apply(Sn,TXn+1)=Sn+1 \texttt{Apply}(S_n, \texttt{TX}_{n+1})=S_{n+1}