
并发提交与并行执行
并发交易通常指多笔交易在重叠的时间范围内被提交或处理。并行执行则强调计算任务实际同时运行。网络可以同时接收多笔请求,但这不能直接证明它们的状态更新可以同时完成。
理解相关术语,关键是分清三个环节:请求何时进入网络、执行时是否存在依赖、结果何时得到确认。交易同时到达,并不意味着执行顺序可以任意交换。
账户模型中的 nonce
以太坊交易文档将交易描述为账户发起的、经过密码学签名的指令,用于更新网络状态。交易字段中的 nonce 是发送账户递增的交易计数,帮助确定该账户交易的顺序。
在这种账户交易规则下,同一发送账户的多笔交易受到 nonce 顺序约束。不同账户拥有各自的序号,但仍可能访问同一个合约状态。因此,发送方不同不能单独作为交易彼此独立的判断依据。
UTXO、输入与双花冲突
比特币开发者交易指南介绍了另一种结构:交易输入引用此前交易的输出,尚未花费的输出称为 UTXO。引用通过交易标识 txid 和输出索引定位具体输出。
在 UTXO 模型下,两笔交易若尝试花费同一个输出,就产生双花冲突,不能在同一条有效链上都成功花费它。如果后一笔交易使用前一笔创建的输出,两者则存在依赖。不同输入有助于区分资源,但不直接证明某种客户端已经实现并行执行。
状态冲突与确定顺序
状态是账本在某一时刻记录的信息,例如账户余额或可花费输出。依赖表示一项操作需要另一项操作的结果;冲突表示多项操作对同一资源提出无法同时满足、或受顺序影响的更新。
例如,两笔操作都要消耗同一份可用资源时,分别检查它们可能都符合条件,合并处理却必须解决资源竞争。因此,讨论并发能力时,需要同时说明资源识别、依赖处理和结果一致性的条件。
常见问题:待处理是否意味着成功
待处理表示交易尚在等待后续处理。交易哈希用于标识交易,不能独自证明交易已被纳入区块或执行成功。以太坊交易文档区分了广播、进入交易池、区块收录及后续最终确定等阶段。
交易被收录后,仍需区分执行结果与所在区块的确认状态。账户 nonce 与 UTXO 是不同模型下理解顺序和冲突的工具,不能直接互换,也不能据此推断某条链的实时吞吐量或并行性能。