# 承诺

> 每个已承诺列都用 Mercury 打开，这是一种基于 KZG、打开大小恒定的多线性承诺。它的成本、一个分片如何把所有列批量合成一次打开，以及递归如何延迟配对。

远地虚拟机承诺的每一列都是一个多线性多项式，即布尔超立方体上 `2^n` 个求值构成的表。每一列都用 **Mercury**（Eagen 与 Gabizon，ePrint 2025/385）承诺和打开，最后以 BDFG20（Boneh、Drake、Fisch 与 Gabizon，ePrint 2020/081）的批量 KZG 打开收尾。规范确定了这些论文没有确定的部分，并增加了两样东西：同一点上多列的批处理，以及由递归树折叠的延迟形式。

## 承诺

Mercury 承诺恰好就是把求值表当作系数读取时的 KZG 承诺：在仪式的 `τ` 的前 `n` 个幂次上做一次多标量乘法，得到一个 G1 点，64 字节。它背后没有第二套方案。由此得出两条性质，系统的其余部分两者都会用到：

- **它是线性的。** `Σ ρ^i·f_i` 的承诺就是 `Σ ρ^i·cm_i`，正因如此，多列才能共享一次打开。
- **零系数不增加任何东西。** 用全零行扩展的列保持原有承诺，所以通用查找（lookup）表的三个承诺适用于每一个容得下这张表的高度，它们是仪式的常量。

各列按其整数宽度承诺：比特列、字节列、半字列或字列都走一次以 `u32` 为标量的 MSM，按 32 位而不是 254 位重新编码，这让承诺执行轨迹保持低成本。

## 打开

Mercury 把 `s = 2t` 个变量的打开点 `u` 分成两半，用挑战 `α` 折叠多项式，用一个对称化的见证证明剩下的两个内积，最后在三个点上做一次批量 KZG 打开。对任意大小，证明都是**八个 G1 点和六个域元素：704 字节**。由此产生一项要求：变量数必须是偶数，这就是为什么可选的每个高度都是 2 的偶数次幂。

验证者做 `O(t)` 次域运算、规模分别为十个点和两个点的 MSM，以及**一次包含两对的配对检查**。它检查的两个关系都写成 `e(A, [1]_2) = e(B, [x]_2)` 的形式，所以两个 G2 参数都是设置中的常量，验证者完全不做 G2 运算。也正是这种形状，让递归可以推迟配对，而不必计算它。

## 一个分片的所有列，一次打开

GKR 过程结束时，分片的每个已承诺列都在同一点 `u` 上有一个断言。所以不需要任何合并断言的求和校验（sumcheck）：打开直接把它们全部批量处理。挑战 `ρ` 在每个承诺和每个声称值之后抽取，以 `ρ^i` 为第 `i` 列加权；证明者对 `Σ ρ^i·f_i` 打开一次，验证者通过一次 `k` 点 MSM 构造 `Σ ρ^i·cm_i`。虚假断言幸存的概率至多为 `(k − 1)/|Fr|`。

批中的列来自三处，按固定顺序排列，而这个顺序本身也是被证明内容的一部分：内存列的承诺来自陈述，见证列的来自分片证明，设置列的来自验证密钥。正是从密钥中取得设置承诺，才使这次打开绑定了程序身份所承诺的解码表和映像。

## 延迟验证

延迟检查执行除配对之外的一切，并把关系中的各项保存为十二个 `(side, scalar, point)` 条目。递归正是这样使用它的：树的每个节点用自身的算术计算一个分片的十二个标量，用新抽取的挑战为它们加权，并把它们累加进一对持续更新的点 `(A, B)`。整棵树中每个分片的打开都折叠为一个断言 `e(A, [1]_2) = e(B, [x]_2)`，最终只由以太坊上的合约检查。[递归与结算](https://apogee.gweb3networks.com/docs/architecture/recursion)展示了折叠过程。

## 实测数据

在一台 18 核的 Apple M5 Pro 上：

| 操作 | 时间 |
| --- | --- |
| 承诺一个 `2^22` 的列 | 1.30 s |
| 打开一个 `2^22` 的列 | 2.89 s |
| 16 个 `2^20` 的列，作为一批打开 | 1.01 s，验证耗时 4.8 ms |
| 同样 16 列逐个打开 | 9.79 s，验证耗时 62 ms |

## 安全性

在代数群模型中、q-DLOG 假设下，知识可靠性成立；前提是 Fiat–Shamir 基于 Poseidon2 transcript 并在随机预言机模型中分析，且 SRS 的 `τ` 无人知晓。统计项，即对各挑战应用 Schwartz–Zippel 得到的项，对所用的每个实例都保持在 `2^−220` 以下，所以安全级别就是 BN254 的安全级别，约 100 位。没有任何部分具备隐藏性，也没有任何部分经过盲化：远地虚拟机 v1.0.0 不是零知识的。

SRS 是 PSE 的 perpetual powers of tau 的第 80 次贡献，只要有一位贡献者是诚实的，它就是可靠的。它的文件会被解码，每个点都要检查是否位于其曲线上、是否属于正确的子群；但没有任何东西能证明一个文件就出自该仪式，所以验证者要把 SRS 摘要与通过自己的渠道获得的仪式 SRS 摘要相比较。

规范见 [Mercury](https://apogee.gweb3networks.com/docs/auditors/spec/mercury)、[结构化参考串](https://apogee.gweb3networks.com/docs/auditors/spec/srs)。
