本文介绍了基于除子(divisor)的椭圆曲线内积证明(ECIP)技术,该技术由 Liam Eagen 提出,用于 Monero 的 FCMP++ 升级。zkSecurity 对其进行了安全审计,并发布了详细笔记,涵盖从代数几何到具体约束的完整形式化处理。核心技巧是利用有理函数与除子的一一对应关系,通过对数导数技巧将验证简化为线性关系,使得任意长度的多标量乘法(MSM)仅需 7 个乘法约束即可验证。该技术将大幅提升 Monero 的成员证明效率,使其能够包含所有可能的交易。
![]()
应 MAGIC Grants 的请求,我们被要求审查 Liam Eagen 在 其 2022 年 eprint 中介绍的基于除数的协议的安全性,该协议用于证明椭圆曲线内积(ECIP)。其动机是即将对门罗币进行的升级,该升级将采用此技术;而数十亿资金悬于一线,你自然希望万无一失。我们的贡献包括:一个新的提取证明、对所证明关系更精确的定义,以及对协议与非交互式证明组合的正式处理。我们的讨论涵盖了从代数几何到必须检查的具体约束的完整链条。
预期的应用是即将在门罗币中实现的完整链成员证明(FCMP++),它将 ECIP 与 Curve Trees 相结合,以获得比在证明系统内部验证标准 Merkle 树更高效的集合成员证明。这将使门罗币能够扩展其成员证明,以包含每一笔可能的交易。Curve Trees 要求:
使用在椭圆曲线基域上的电路进行证明。证明标量乘法的常规方法涉及在电路内模拟群运算,例如证明电路内标准双倍加操作的执行。而 Eagen 的技术则利用了非确定性和交互性:证明者不计算群运算,而是构造一个证明(witness),提交它,然后验证者采样随机挑战来验证证明的有效性。下面是一个小小的预告。
我们认为原始论文的价值被低估了;其核心观察非常精巧。关键洞察在于,椭圆曲线 $E$ 上的有理函数与 主除数(principal divisors)之间存在一一对应关系(相差非零标量):主除数是点乘以整数重数的形式化和,次数为零,且在 $E$ 上求和为单位元。具体来说,$P_1,\ldots,P_n\in E$ 满足 $\sum_i P_i = O$(按重数计数),当且仅当存在有理函数 $f\in F(E)$ 其除数为:
$$\operatorname{div}(f) = \sum_i (P_i) - n(O)$$
有用的方向:求和的一个证明(witness)是一个有理函数,它在 $P_i$ 处有指定的零点,并在无穷远处有 $n$ 阶匹配极点。因此,证明者不是要在电路内模拟群律,而是提交 $f$ 的系数,验证者检查 $f$ 恰好具有该除数。取对数导数进一步简化:检查变成了证明者的秘密系数与从随机挑战点导出的公共向量之间的内积,而不是在每个 $P_i$ 处评估 $f$。如果直接实现,这相对于简单的群律模拟方法节省不了什么,然而,通过将 Haböck 的对数导数技巧 应用于该表达式,一切都变成了公共挑战值与除数多项式 $f(X,Y)\in F[E]$ 之间的线性组合。最终结果是,任意长度的 MSM 可以在 7 个乘法约束 内验证。所有这些在我们的 报告 中都有更详细的介绍。
凭借广泛的实践/学术专业知识,zkSecurity 帮助客户自信地审查、开发和使用最先进的密码学技术。包括提供超越原始论文的额外形式化,帮助你从论文走向实践,而无需担心安全性或证明上的漏洞。无论你是需要对自己的工作多加审慎,还是计划集成到解决方案中的工作,我们都乐意讨论如何提供帮助。
zkSecurity 为密码系统提供审计、研究和开发服务,包括零知识证明、MPC、FHE、共识协议等。
- 原文链接: blog.zksecurity.xyz/post...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!
作者暂未设置收款二维码