摘要

FROST-GKR 把置换槽位、轮次和状态分量作为同一个布尔乘积域的坐标。一个次数为 9 的全局 zerocheck 同时证明全部 Poseidon2b 轮次,再由一个次数为 2 的移位视图归约把派生声明归约回已承诺的三列见证。在 59 次置换的基准工作负载中,约束 sumcheck 从 472 个降至 2 个,原始代数交互记录从 287,712 字节降至 5,568 字节,证明者加速 10.69 倍,验证者加速 14.80 倍。端点关系使同一套轨迹结构可以表示链、树、海绵结构和 Parano1d 状态计算。

同一个置换,一遍又一遍地证明

基于哈希的证明系统会反复证明同一个密码学置换。输入不断变化,但 S-box、轮常量和线性变换始终相同。传统的逐层算术化没有利用这种规律,每次 Poseidon2b 执行都有自己的列和自己的代数归约链。

对 Parano1d 而言,这是一个架构问题。钱包授权、Merkle 认证、状态计算、交互记录和递归验证都会使用 Poseidon2b。如果每次调用都对应一套独立的代数电路,哈希层的规模就会随协议图增长,最终主导整个证明的成本。

FROST-GKR 的基准工作负载把这道结构性瓶颈变成了具体数字。它包含 59 次宽度为 4 的 Poseidon2b 执行。作为对照的乘积链构造每次执行需要 8 个约束 sumcheck,合计 472 个。FROST-GKR 重新提出问题:能否只描述一次置换,把执行编号变成数据的另一个坐标?

答案是一条全局承诺轨迹。执行槽位、轮次和状态分量成为同一个布尔乘积域的坐标。两次结构性 sumcheck 最终留下 4 项点值声明,随后再归并为每个承诺列各一项终端声明。

架构层面的结果

在基准工作负载中,FROST-GKR 消除了 472 个约束 sumcheck 中的 470 个。更重要的是,它把重复置换验证变成了一个可复用的线性时间后端。正是这一变化使更大的 Parano1d 证明架构具备可行性:增加一种新的哈希拓扑,不再意味着增加一份内部 Poseidon2b 证明。

执行编号是轨迹坐标,而不是再创建一套电路的理由。

全部计算归入三列

B 为有效置换数,L = 2s ≥ B 为补齐后的槽位数。Poseidon2b 有 4 个状态分量和 66 个非线性轮。FROST-GKR 预留 128 个轮次位置,因此一个轨迹单元由下列坐标索引:

(slot, round, lane) ∈ {0,1}s × {0,1}7 × {0,1}2

完整定义域有 n = s + 9 个变量和 N = 2n = 512L 个单元。需要承诺的见证仅包含三列多线性表:

  • state 包含进入每一轮的状态以及终端状态行;
  • s_in 包含每个有效 x^7 S-box 的输入;
  • s_out 包含相应的 S-box 输出。

公开选择器标记有效槽位、有效轮次和应用 S-box 的状态分量。实现根据固定轮次安排导出选择器 sigma。计算 sumcheck 时可以在内存中生成这张表,但它不是第四列见证,也没有单独的承诺。因此,同样三列见证既能表示全部 4 个分量都经过非线性层的全轮,也能表示只有第 0 个分量经过非线性层的部分轮。在 Parano1d 中,证明者必须在采样关系挑战值之前承诺这三列。独立对比程序在相同的终端多线性声明处停止,并直接检查这些声明。

FROST 名称的含义

FROST 是 Frobenius Reduction over Shifted Tables 的缩写。名称的两部分分别对应构造中不可缺少的两个环节。

在二元域上,Frobenius 平方是线性的:

(a + b)2 = a2 + b2

Poseidon2b 的直接 S-box 可以写成 x³ = x²·xx⁷ = x⁴·x³x⁴ 由平方得到,因此只需要两次一般域乘法。证明保留直接的七次关系,不必把每个 S-box 分解成一串辅助电路层。

移位表解决另一个关键问题。轮方程同时读取第 r 轮状态和第 r + 1 轮状态。七位二进制轮次索引的递增不是多线性变量的仿射变换,因此移位表的求值不能直接视为原始列在变换点上的打开。FROST-GKR 会显式证明这项联系。

两次归约如何证明全部计算

1. 一个全局关系

一个次数为 9 的全局 zerocheck 约束每个有效 Poseidon2b 单元。它同时覆盖 x^7 关系、轮常量、全轮与部分轮线性层以及相邻状态之间的联系。Sumcheck 逐个消去布尔变量。其轮数为 n,因此增加置换槽位只会通过对数规模的槽位维度影响协议深度。

这次归约的终端包含一个 state 的直接求值,以及 11 个轮次移位视图或状态分量投影视图的求值。这些视图正好表达全局关系使用的连接关系。

2. 把每个视图归约回承诺

第二个次数为 2 的 sumcheck 合并 11 个派生求值,并证明它们是原始三列的正确线性泛函。协议由此回到验证者新选点上的 states_ins_out 直接求值。

两次归约结束后,只剩 4 项点值声明:两项关于 state,一项关于 s_in,一项关于 s_out。随后,三个次数为 2 的批量求值论证为每个承诺列生成一项终端声明。多项式承诺方案打开的仍是最初三列。证明者选择的派生表不能取代已承诺的执行轨迹。

承诺3 列轨迹在挑战值产生前固定全部计算
n 轮,次数 9全局 zerocheck一次覆盖全部槽位、轮次和状态分量
n 轮,次数 2移位归约把全部派生视图归约回承诺
核心创新

通常的 GKR 沿电路层逐层下降。FROST-GKR 始终保留同一条已承诺执行轨迹,并把每一项全局关系都归约为该轨迹的打开。

置换引擎只证明一次,应用拓扑由端点描述

内部关系证明每个有效槽位都正确执行 Poseidon2b。state 列包含每个槽位的输入行和输出行。单独的端点关系定义这些执行在应用中的含义:

  • 固定一次独立哈希调用的输入与输出;
  • 对顺序链,把一个槽位的输出等同于下一个槽位的输入;
  • 对 Merkle 树,把子节点输出连接到父节点输入;
  • 对海绵结构或交互记录,连接吸收状态与挤出状态;
  • 把端点绑定到钱包授权、状态或递归验证器数据。

整个批次共享成本较高的置换语义。应用图变化时,只需要改变端点方程。因此,同一协议可以覆盖链、树和无关哈希,而不必为每种拓扑重建内部 Poseidon2b 证明。

具体收益

发布的复现实验把 FROST-GKR 与基准的逐置换乘积链构造进行比较。两者在同一个域和同一条交互记录通道上证明相同的 59 次 Poseidon2b 序列。计时前,测试程序会构造并验证两份诚实证明,直接检查终端多线性求值,并核对代数交互记录的精确大小。

472 → 2约束 sumcheck
51.67×代数交互记录缩小
10.69×归约证明者加速
指标逐置换乘积链FROST-GKR改进
约束 sumcheck4722减少 236.00 倍
约束 sumcheck 轮数4,24830减少 141.60 倍
全部 sumcheck 轮数4,26375减少 56.84 倍
原始代数交互记录287,712 字节5,568 字节缩小 51.67 倍
归约证明者中位时间1,605.931 毫秒150.218 毫秒加速 10.69 倍
归约验证者中位时间984.269 毫秒66.499 毫秒加速 14.80 倍
测量边界

字节数只统计代数归约中的原始域元素,不包含序列化框架、多项式承诺打开和 Merkle 认证路径。该对比隔离了 FROST-GKR 实际替换的证明系统部分。

为何计算数量增加后优势依然存在

当 Poseidon2b 的宽度和轮次安排固定时,证明者执行 O(N) 次域运算,已承诺的见证包含 3N 个元素。两次结构归约使用 2n 轮 sumcheck。补齐后的置换槽位数翻倍时,只会增加一个布尔变量和两轮归约,不会复制整个协议。

采用通用终端批处理时,完整代数交互记录在承诺打开和序列化之前包含 22n + 18 个域元素。验证者执行对数深度归约,无需重放每次置换的每一轮。

定理给出的结论

在使用具备求值绑定性质的多线性承诺,且交互式挑战值彼此独立采样时,内部代数错误上界为

εFROST ≤ (18n + 14) / |F|

对论文中 GF(2128) 上的 15 变量实例,该项小于 2−119,尚未计入端点关系和多项式承诺的可靠性误差。定理证明置换语义、完备性、拓扑组合,并列出两次归约的全部错误事件。

FROST-GKR 在 Parano1d 中的作用

FROST-GKR 源自 Parano1d 证明系统,至今仍是重复 Poseidon2b 计算所共用的归约方式。实际部署代码同样只承诺三列见证,证明者与验证者分别根据固定安排导出公开选择器。交易体哈希、Merkle 认证、定长域哈希和递归验证分别在各自轨迹上使用这项归约,并在起始状态与终止状态处绑定应用声明。FRI-Binius/BaseFold 在无需可信设置的前提下打开最终多线性声明。

随后把 9 个递归认证区域合并为一次有序遍历的工程工作,见《一次全局 Poseidon 遍历取代九次验证器遍历》

论文与可复现实验

FROST-GKR 论文给出完整轨迹关系、组合定理、完备性与交互式可靠性证明,以及精确的交互记录计算。独立复现实验仓库可以重现 59 次置换的同条件对比。

FROST-GKR 是 Parano1d Lab 的研究成果,也是 Parano1d 证明架构的实际部署组件。