Aptos 和 Sui 都源自 Diem/Libra 项目,都用 Move 语言,都主打高吞吐。但它们在怎么实现并行这个问题上选择了不同的路。

Sui 换了数据模型(对象模型),Aptos 保留了账户模型但改变了执行引擎。这两条路的对比很有意思,因为它回答了一个问题:不改变数据模型,能不能实现并行。

Block-STM 的工作原理

Block-STM 的核心是乐观并行 + 冲突检测重执行。

流程如下:

第一步,乐观并行执行。 一个区块里的所有交易被分配序号,然后同时开始执行,不管它们之间有没有依赖。软件事务内存(STM)机制为每笔交易的读写建立记录。

第二步,验证并检测冲突。 执行完成后,检查每笔交易的读写集。如果两笔交易读写了同一个位置,就存在冲突。

第三步,重新执行冲突交易。 冲突的交易按照分配的顺序号重新执行,直到所有交易的结果与串行执行的结果一致。

这个方案的精妙之处在于乐观——它赌大多数交易之间没有冲突,所以并行执行能带来收益。只有冲突的交易才需要重跑。

与 Sui 对象模型的路径对比

| 维度 | Sui(对象模型) | Aptos(Block-STM) |

|---|---|---|

| 数据模型 | 对象,需明确所有权 | 账户,与传统区块链一致 |

| 并行方式 | 结构性并行(按对象划分) | 乐观并行(执行后检测冲突) |

| 免共识路径 | 有(单所有者对象交易) | 无(所有交易都排序) |

| 开发者负担 | 需设计对象所有权 | 与写普通智能合约类似 |

| 冲突处理 | 从设计上避免 | 运行时检测并重跑 |

| 可组合性 | 受所有权约束 | 与账户模型一致,更自由 |

Aptos 路线的核心优势是兼容性。开发者写合约的方式和以太坊类似(虽然语言是 Move),不需要理解对象所有权模型。这意味着生态迁移的认知成本更低。

Sui 路线的核心优势是理论上的并行上限更高。因为它从数据结构上消除了冲突的可能,而不是靠运行时检测。免共识路径对某些场景是结构性优势。

但 Aptos 的路线有一个 Sui 没有的问题:冲突检测和重执行本身有开销。如果区块里冲突很多,Block-STM 的性能可能还不如串行执行。这个开销在大负载下会更明显。

Block-STM 的实际效果边界

效果最好的场景:交易之间依赖关系少、读写集不重叠。比如批量转账(不同账户之间的)、独立的 NFT 操作。

效果受限制的场景:

高度竞争的共享状态。 如果大量交易都在修改同一个热门合约(比如一个热门 DEX 的池子),冲突率会很高,Block-STM 会反复重跑,收益被吃掉。

顺序依赖强的场景。 有些业务逻辑天然要求顺序执行(比如一个 NFT 系列的按顺序铸造),这时候并行无从谈起。

Gas 价格与执行开销。 Block-STM 需要额外的资源来维护读写集记录和检测冲突。这会增加节点运行的资源消耗。

度量的问题。Aptos 展示的 TPS 数字通常在合成负载下测得(大量独立转账)。在真实 DeFi 负载下,因为冲突集中,并行收益会明显降低。评估这类公链时,要区分"宣传的 TPS"和"实际应用下的 TPS"。

Move 语言在 Aptos 里的角色

与 Sui 一样,Aptos 用 Move。但 Aptos 的 Move 用法更接近 Diem 的原始设计,保留了全局存储 + 模块的结构:

  • 模块(Module)类似于智能合约,包含函数和结构定义
  • 资源存储在账户的全局存储下,通过 「move_to」/「move_from」 操作
  • 资源类型保证资产不能被复制或丢弃

这个设计保留了 Move 的安全优势(资产是语言层面的一等公民),同时结构上更接近传统智能合约的开发习惯。

Aptos 的另一个特色是模块升级策略。Move 模块支持声明式的升级兼容性检查(比如新版本是否改变了函数签名),这在合约安全和可升级性之间提供了一个更精细的控制。

需要关注的风险

风险一:并行执行的正确性依赖实现质量。 乐观并行 + 重执行机制如果实现有 bug,可能导致状态不一致。这类 bug 的影响是系统性的,而非局部的。

风险二:节点资源需求较高。 高吞吐意味着高硬件要求。如果验证者的准入门槛过高,去中心化程度会受影响。

风险三:生态的真实需求。 大量交易量中,多少来自激励驱动的刷量?这个比例决定了"高 TPS"是真实需求还是人造数字。

风险四:Move 生态的审计资源。 Move 更安全,但生态中的审计师、形式化验证工具、最佳实践都还在积累。安全语言的收益需要配套的生态才能完全兑现。

风险五:与 Sui 的竞争关系。 两条 Move 公链在争夺同一批开发者和用户。资源分散可能让两条链的生态都不够厚。

怎么读 Aptos 的数据

看交易类型构成。 把交易按类型拆开:转账、NFT 操作、DeFi 交互、治理投票。如果大部分是低复杂度的操作,高 TPS 的说服力就要打折。

看实际应用的活跃度。 不是看有多少项目部署,而是看这些项目是否有持续的用户和真实的资金流。

看验证者集合。 数量、质押集中度、地理分布。

看平均交易费用与网络拥堵情况。 如果费用长期很低、没有拥堵,说明网络容量相对于需求有余量(也可能说明需求不足);如果频繁拥堵,说明容量是瓶颈。

看冲突率相关的指标。 一些研究机构会分析区块内的冲突程度,这能直接反映并行执行的实际效率。

这两条路的启示

Aptos 和 Sui 的对比很有教育意义,因为它展示了同一个目标(并行执行)的两种实现路径:

  • 结构性方案(Sui):改变数据模型,从设计上消除冲突。上限高,但改变成本大、需要生态适配
  • 运行时方案(Aptos):保留现有模型,运行时检测冲突。兼容性好,但有检测开销、且在高冲突场景下收益衰减

这两种思路在工程上会反复出现。 结构性方案通常能拿到更高的理论上限,但要付出生态迁移的成本;运行时方案兼容性好,但天花板受限于现状。

哪个更优取决于具体的约束:如果你在从零构建一个新系统,结构性方案值得考虑;如果你需要兼容大量存量,运行时方案更务实。

对公链来说,这个选择还牵扯到生态——技术的优越性只有被生态接纳才能兑现。这也是为什么"技术更好的链"不一定能赢。

常见问题

Block-STM 是怎么实现并行的?

乐观并行:区块内所有交易同时开始执行,执行后检查读写集冲突,冲突的交易按序重执行,直到结果与串行执行一致。赌的是大多数交易之间没有冲突。

Sui 和 Aptos 的并行方案哪个更好?

取决于场景。Sui 从数据结构上消除冲突,理论上限更高且部分交易可免共识;Aptos 保留账户模型,兼容性好但需运行时检测冲突,高冲突场景下收益衰减。

为什么公链宣传的 TPS 通常高于实际?

因为测试多采用合成负载(大量独立转账),冲突少。真实 DeFi 负载下交易高度集中于共享状态,冲突率高,并行收益明显降低。评估时应区分两者。

Aptos 使用 Move 语言有什么好处?

Move 把资产作为语言层面的 resource 类型,不能复制或凭空创建,在语言层面杜绝双重支付、重复铸造类漏洞,安全性优于靠合约代码维护所有权的模型。

免责声明:本文内容仅为信息分享与行业研究之用,不构成任何投资建议、要约或要约邀请。数字资产价格波动剧烈,投资决策请独立判断并自行承担风险。