
理解流程前先明确适用范围
讨论区块链运行流程,需要区分交易如何表达、如何传播,以及网络如何接受记录。以太坊交易文档介绍签名指令、合约执行与交易生命周期;比特币开发者指南说明未花费交易输出、独立验证及工作量证明。两者可以帮助理解共同环节,但具体规则不能直接互套。
误区一:有交易哈希就代表成功
交易哈希用于标识交易,不能单独证明交易已被区块收录,更不能证明合约操作达到预期。签名、广播、收录与执行结果属于不同层次。

例如,界面显示“已提交”时,需要明确它表示请求已发送,还是已经取得链上执行结果。以太坊合约交易即使被收录,也仍需区分执行成功与失败;仅凭哈希无法完成这一判断。

误区二:出块者决定什么记录有效
比特币全节点按照共识规则独立验证区块。矿工产生区块,并不意味着其他节点必须接受其中所有内容;包含不符合规则的交易,不能靠完成工作量证明变成有效记录。
因此,理解运行流程时,应将“提出候选记录”和“检查记录是否有效”分开。出块机制与验证规则共同发挥作用,不能用其中一个替代另一个。
误区三:首次收录就是永久确定
比特币可能出现同一高度的竞争区块,节点在有效分支中依据累计工作量选择链。以太坊则有相应的最终性机制。首次收录与后续确认程度并非同一个状态。
常见问题是“区块高度能否唯一定位区块”。在存在竞争分支时,同一高度可能对应不同区块,因此还需要区块哈希来明确所指记录。
误区四:所有区块链都是账户余额加减
以太坊以账户状态描述余额及合约变化;比特币使用未花费交易输出,普通交易消耗已有输出并创建新输出。钱包显示的余额相似,不代表底层记账方式相同。
分析流程时,应先确定采用哪种模型,再理解输入、输出、账户和状态更新。“发送金额”是用户界面的表达,不能代替底层数据结构的解释。
误区五:读取合约也一定产生链上费用
在以太坊中,通过 eth_call 读取合约数据通常不需要支付链上交易费;但相关计算若作为链上交易执行的一部分,就会计入 gas 消耗。是否改变状态之外,还要看调用所处的执行环境。
gas 上限也不等于实际消耗量。理解费用时,应区分计算资源用量、每单位资源的价格以及费用上限,避免把一个参数直接当成最终账单。