
状态模型:账户与 UTXO 描述什么
区块链计算首先需要明确处理的对象。以太坊的状态包含账户、余额和合约存储;比特币的 UTXO 指尚未被花费的交易输出,普通交易通过引用旧输出并产生新输出来更新可用资金记录。两者分别体现了围绕账户状态和围绕未花费输出组织数据的方式。
理解这些术语时,可以先问“系统保存什么”。账户模型便于从账户及其数据的角度观察变化;UTXO 模型则需要追踪具体输出。钱包显示的余额可以是多个 UTXO 金额的汇总,不能据此认为底层一定保存着一个可直接修改的余额字段。

状态机与确定性:变化如何得到一致结果
状态机描述系统按照规则从旧状态走向新状态。以太坊 EVM 定义合约代码执行及相关状态变化的规则。确定性意味着,在相同初始状态、交易顺序和执行上下文下,遵循相同规则的执行应得到一致结果。

因此,“同一段代码”本身不足以保证每次结果相同:账户数据、调用参数或可访问的区块信息发生变化,计算结果也可能变化。状态机强调的是变化规则可重复验证,而不是所有调用都返回固定答案。
栈与操作码:程序如何逐步运行
栈是一种后进先出的数据结构;操作码是执行具体动作的基本指令。EVM 和比特币脚本都采用基于栈的执行方式,但程序用途和能力边界不同。比特币脚本主要检查输出的花费条件,且不提供通用循环;EVM 执行智能合约字节码。
“都使用栈”只说明两者处理操作数的方式存在相似之处,不能推导出它们具有相同的编程能力。分析计算模式时,应把数据结构、指令能力和状态访问范围分别理解。
存储与 Gas:数据保留多久、执行消耗什么
在 EVM 中,memory 服务于当前执行帧的临时计算;瞬态存储可在同一交易内按所属合约的上下文跨内部调用使用,交易结束后清除;持久存储属于链上状态。Gas 用于计量执行所需的资源。
这些概念回答不同问题:存储类型决定数据的生命周期与可见范围,Gas 体现执行的资源消耗。判断一项计算需要什么机制,可以先看结果是否要留给未来交易,再看执行需要哪些操作。
适用范围与常见疑问
“比特币脚本无状态”不代表比特币网络没有状态:网络仍需记录哪些输出尚未花费。同样,UTXO 属于数据组织模型,栈属于程序执行结构,两者可以同时存在,不能当作互斥分类。
以上术语分别适用于对应系统及其执行上下文。阅读其他区块链的技术说明时,需要进一步核对其状态结构、指令规则与资源限制,不能仅凭“支持智能合约”便认定它与 EVM 的计算行为一致。