← 最新论文
💻 computer science

Formal Verification of Imperative First-Class Functions in Move

本文提出对 Move 证明器的扩展,通过引入行为谓词、状态标签以及利用 Move 静态内存分离以实现高效验证和自动规范推断的 SMT 编码策略,从而支持对 Move 语言中命令式一等函数的形式化验证。

原作者: Wolfgang Grieskamp, Teng Zhang, Vineeth Kashyap, Jake Silverman

发布于 2026-05-14
📖 1 分钟阅读☕ 轻松阅读

原作者: Wolfgang Grieskamp, Teng Zhang, Vineeth Kashyap, Jake Silverman

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

以下是用简单语言和创意类比对该论文的解读。

宏观图景:“智能合约”工厂

想象 Aptos 是一座高安全性的工厂,它使用一种名为 Move 的特殊语言来构建数字资产(如货币或票据)。为了确保这些资产不被窃取或损坏,工厂使用一个名为 Move 证明器(MVP) 的机器人检查员。这个机器人会读取蓝图(代码),并在工厂实际运行之前,通过数学方法证明一切都能正确运行。

长期以来,这个机器人擅长检查简单的指令。但最近,工厂增加了一个新的、棘手的特性:一等函数(First-Class Functions)

把这些新函数想象成 魔法棒

  • 旧方式: 你必须亲自握住魔法棒才能施法。机器人确切地知道你在施什么法。
  • 新方式: 你可以把魔法棒放进盒子里,把盒子交给朋友,把盒子存入保险库,或者传递给一台不知道里面是什么的机器。这台机器只知道“我需要挥动一根魔法棒”,但在最后一刻之前,它并不知道是哪一根魔法棒。

这被称为 动态分发(Dynamic Dispatch)。它非常强大,但却让机器人检查员陷入了困境,因为它无法预知未来,也就不知道具体会施放哪种法术。

问题:“黑盒”困境

论文解释了作者如何升级机器人检查员(MVP),使其能够处理这些魔法棒而不惊慌失措。

以前,如果一个函数是一个“黑盒”(即持有函数的变量),机器人就必须猜测或同时检查每一种可能性,这导致数学计算爆炸,机器人速度变慢。

作者引入了两种新工具来解决这个问题:

1. 行为谓词:“保修卡”

机器人不再查看魔法棒内部是如何工作的,而是查看附在魔法棒上的 保修卡

  • 旧方式: “在你使用这根 calculate_price 魔法棒之前,我需要确切知道它是如何工作的,直到每一行代码。”
  • 新方式: “我不关心魔法棒内部是如何工作的。我只需要阅读它的保修卡。卡片上写着:‘如果你给我 5 枚硬币,我会还给你 3 枚硬币,并且我永远不会损坏。’"

论文将这些称为 行为谓词(Behavioral Predicates)。它们就像一份合同,描述了:

  • 前置条件: 在你挥动魔法棒之前必须为真的情况。
  • 后置条件: 在你挥动它之后将为真的情况。
  • 中止条件: 魔法棒可能会爆炸(失败)的情况。

这使得机器人能够检查魔法棒的 承诺,而无需知道其内部的 秘密配方

2. 状态标签:“时间戳相机”

有时,一系列事件会发生。想象一条工厂流水线,一个机器人给汽车喷漆,然后另一个机器人安装车轮。

如果你想证明汽车是安全的,你需要知道喷漆之后、但安装车轮之前汽车的状态。

作者引入了 状态标签(State Labels)。把它们想象成放置在流程特定点的 时间戳相机

  • 相机 A(开始): 汽车是裸露的金属。
  • 相机 B(中间): 汽车已经喷漆。
  • 相机 C(结束): 车轮已安装。

机器人现在可以说:“我知道喷漆发生在相机 A 和相机 B 之间,而车轮是在相机 B 和相机 C 之间安装的。”这有助于机器人推理复杂的事件序列,而不会搞混在任何给定时刻世界看起来是什么样子。

机器人实际如何工作(“交换机”)

论文描述了机器人如何将这些想法转化为计算机可以解决的数学(SMT 逻辑)。

想象机器人有一个 交换机

  1. 场景 A(已知魔法棒): 如果机器人看到一个特定的、已知的魔法棒(例如 product 函数),它将开关拨到“直接模式”。它忽略保修卡,直接检查该特定魔法棒的实际代码。
  2. 场景 B(未知魔法棒): 如果机器人看到一个通用的盒子(变量),它将开关拨到“抽象模式”。它完全忽略代码,仅依赖保修卡(行为谓词)来证明系统是安全的。

这非常高效,因为机器人不必尝试打开每一个可能的盒子。它只打开它知道的那些,而对于其余的,它信任合同。

“自动检查员”(规范推断)

这篇论文最酷的部分之一是,机器人现在可以 自己编写保修卡

通常,人类必须手动编写这些卡片,这很繁琐。作者升级了机器人,使其能够查看代码,弄清楚保修卡 应该 说什么,并为你写出来。

  • 输入: 一段带有魔法棒的杂乱代码。
  • 机器人动作: “我看到这段代码检查了费用是否存在。我将编写一张保修卡,上面写着:‘如果费用缺失,这根魔法棒就会爆炸。’"
  • 结果: 机器人检查自己的工作。如果代码与卡片匹配,则通过。

论文通过 自动做市商(AMM) 示例展示了这一点。这是一个交易资产的系统。机器人证明,即使定价规则(魔法棒)可以由用户更改,只要新的魔法棒遵循其保修卡上写的规则,系统就永远不会崩溃或损失资金。

成就总结

该论文声称解决了智能合约验证中的一个主要难题:

  1. 它使“魔法棒”(函数)能够安全地使用,允许它们被存储、传递和动态更改。
  2. 它创造了一种新语言(行为谓词 + 状态标签),让机器人能够谈论这些魔法棒,而无需查看其内部。
  3. 它通过使用“交换机”方法(在查看代码和查看合同之间切换),使机器人更快、更聪明。
  4. 它通过让机器人自动生成必要的合同,实现了文书工作的自动化。

简而言之,他们教会了机器人检查员如何信任陌生人的承诺(合同),而无需知道陌生人的秘密,从而使工厂更安全、更灵活。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →