「账户模型 Account Model」它用于记录、存储和执行链上交易。以太坊使用的就是此种模型,而比特币使用的是另外一种模型 ———UTXO 模型。
帐户模型的工作原理#
账户模型使用账户内余额作为交易的会计计量单位,而 UTXO 模型使用交易中未花费的加密货币部分作为会计衡量标准。
账户模型可以看作是传统银行的数字版本,数字资产被记录为账户内的余额,就像传统的银行账户一样。当交易发生时,系统会根据用户的交易指令,触发节点改变账户余额。然后由系统计算每个账户中余额的变化并记录余额的最新状态。
以太坊网络中的账户模型#
在以太坊中,有两种类型的账户:外部所有账户(EOA)和合约账户 (CA)。
外部所有账户 (EOA, Externally Owned Account)
指由私钥控制的用户帐户。用户可以在 MetaMask 钱包等中创建此类账户。每个 「EOA」 都有一个私钥和一个地址,它可以直接发起交易。
合约账户 (CA,Contract Account)
指由智能合约代码控制的账户。与 EOA 不同,合约账户没有私钥,它拥有一个智能合约代码。该账户由其智能合约代码运行。代码在合约账户创建时记录在链上,并由 EVM 执行。
账户模型的特点#
在账户模型中,交易的结果取决于余额状态。账户余额必须大于交易输出。因此,交易顺序验证和余额验证对于使用帐户模型的网络非常重要。账户模型中的节点在收到交易指令时会检查发送者的余额状态(看它是否大于或等于转移的输出量)。