
一、先区分计算的任务
理解区块链计算方案,可以先问三个问题:哪些数据有效,程序如何改变数据,节点如何接受一致的历史。这分别对应验证规则、执行规则和共识规则。三者相互配合,但不能把执行合约等同于完成共识,也不能把区块链计算一概理解为挖矿。
二、比特币:账本验证与历史选择
比特币开发者文档描述了 UTXO、哈希链接、默克尔树和工作量证明:交易使用未花费输出,区块通过前序区块头哈希连接;默克尔根汇总交易,支持包含性验证;节点独立验证区块,并在有效分支中依据累计工作量选择链。

这些概念回答的是不同问题。UTXO 用于判断某笔输出是否仍可使用,默克尔证明用于检查交易是否被某个区块收录,工作量证明则参与历史分支的选择。证明“被收录”不等于单独证明交易满足全部有效性规则。

三、以太坊:状态机与虚拟机
以太坊 EVM 文档将执行描述为确定性的状态转换:在相同有效状态、交易及执行上下文下,按相同规则计算新状态。合约字节码由栈式虚拟机执行,操作码定义具体动作,Gas 衡量资源消耗;执行中还区分内存、瞬态存储和持久存储。
理解这些机制,可将方案拆成输入、执行过程和输出状态。虚拟机明确程序如何运行,资源计量约束运行成本,存储类型则决定数据保留多久。需要跨交易保存的数据,不能只放在交易结束后清除的临时空间中。
四、适用条件:按需求理解机制
若讨论重点是支付记录,应关注可花费条件、重复花费防护和历史验证;若需要表达合约逻辑,还应理解字节码执行、状态更新与资源限制。比特币的 UTXO 模型和以太坊的账户状态模型不能直接互换,EVM 的具体机制也不能推广为所有区块链的共同配置。
五、常见问题与技术边界
哈希是否让数据绝对不可修改?不是。哈希链接使修改能够被检测,而让修改后的历史获得网络接受,还受到共识规则等条件约束。
执行结果一致是否代表业务正确?不是。确定性解决相同条件下能否重复得到相同结果,不保证合约逻辑符合业务意图。理解计算方案时,应分别检查数据表示、执行语义、资源约束和共识条件,避免用某一个机制替代整套安全判断。