Cointime

扫码下载App
iOS & Android

深度解析FOAKS当中的多项式承诺协议Brakedown

撰文:康水跃,Fox Tech CEO;孟铉济,Fox Tech 首席科学家

在许多依赖多项式承诺的零知识证明系统当中,使用了不同的承诺协议。根据 a16z 的 Justin Thaler 在 2022 年 8 月文章「Measuring SNARK performance: Frontends, backends, and the future」的评估,Brakedown 虽然有较大的 Proof Size,但是无疑是当下最快的多项式承诺协议。

FRI、KZG、Bulletproof 是更为常见的多项式承诺协议,但速度是它们的瓶颈。zkSync 采用的 Plonky、Polygon zkEVM 采用的 Plonky2、Scroll 采用的 Ultra-Plonk 等算法都是基于 KZG 的多项式承诺。Prover 涉及到大量的 FFT 计算和 MSM 运算生成多项式和承诺,这两者都会带来大量的计算负担。 虽然 MSM 有运行多线程加速的潜力,但需要大量内存,即使在高并行下也很慢,而大型 FFT 则严重依赖算法运行时数据的频繁洗牌,难以通过分布式加速跨计算集群加载。

正是由于有了更为快速的多项式承诺协议 Brakedown,才使这类运算的复杂度大幅降低。

FOAKS 即 Fast Objective Argument of Knowledges,是由 Fox Tech 提出的一种基于 Brakedown 的零知识证明系统框架。FOAKS 在 Orion 的基础上进一步减少 FFT 运算,目标是最终消除 FFT。此外,FOAKS 还设计出一种全新的非常精妙的证明递归方式来减少证明大小。FOAKS 框架的优势在于在实现线性证明时间的基础上有着较小的证明大小,非常适合应用于 zkRollup 场景当中。

下文我们将详细介绍 FOAKS 所使用的多项式承诺协议 Brakedown。

在密码学当中,承诺(Commitment)协议由证明者(Prover)对某一个秘密值进行承诺,生成一个公开的承诺值,这个承诺值具有绑定性(Binding)和隐藏性(Hiding),之后提交者需要打开此承诺并将消息发送到验证者,以验证承诺与消息之间的对应关系。这一点,使得承诺协议和哈希函数的作用有许多共通之处,但是承诺协议往往依赖于公钥密码学领域的数学结构。而多项式承诺(Polynomial Commitment)是一类对于多项式的承诺方案,也就是说被承诺值是多项式。而同时多项式承诺协议当中还包含了在给定的点取值并给出证明的算法,这就使得多项式承诺协议本身成为一类重要的密码学协议,是许多零知识证明系统的核心部分。

而在最新的密码学领域的研究当中,由于发现了张量积(Tensor Product)和多项式取值之间的联系,所以诞生了一系列与此相关的多项式承诺协议,Brakedown 是其中的代表性协议。

在详细介绍 Brakedown 的协议细节之前,需要先了解一些基础知识。我们需要先了解线性码(Linear Code)、抗碰撞哈希函数(Hash Function)、默克尔树(Merkle Tree)、张量积(Tensor Product)的运算以及多项式取值的张量积表示。

首先是线性码(Linear Code)。一个消息长度为 k,码字长度为 n 的线性码是一个线性子空间

C∈Fn,使得存在一个从消息到码字的单射,称为编码,记作 EC:Fk→C。任意的对于码字的线性组合仍然是一个码字。两个码字 u,v 的距离即他们的汉明距离,记作△(u,v)。

最短距离为 d=minu,v△(u,v)。这样的码记作[n,k,d]线性码,用 d /n 表示码的相对距离。

其次是抗碰撞哈希函数(Hash Function)与默克尔树(Merkle Tree)。

使用 H:{0,1}2λ→{0,1}λ表示一个哈希函数。默克尔树是一种特殊的数据结构,可以实现对于 2d个消息的承诺,生成一个哈希值 h,在打开任何消息时候需要 d+1 个哈希值。

默克尔树可以被表示为一个深度为 d 的二叉树,其中 L 个消息元素 m1,m2,...,ml分别对应树的叶子。树的每一个内部节点都由它的两个子节点进行哈希计算得出。打开消息 mi时,需要公开从 mi到根节点的路径。

用以下记号来表示:

  1. h←Merkle.Commit(m1,...,ml)
  2. (mi,πi)←Merkle.Open(m,i)
  3. {0,1}←Merkle.Verify(πi,mi,h)

图 1:默克尔树(Merkle Tree)

我们还需要了解张量积(Tensor Product)的运算是怎么做的。数学上,张量是向量和矩阵向高维空间的扩展,是很重要的研究对象,详细的讨论张量超出本文的研究范畴,这里只介绍向量和矩阵的张量积运算。

图 2:向量和矩阵的张量积运算

紧接着,我们需要知道多项式取值的张量积表示。

[GLS+]当中提到,多项式的取值可以被表示成张量积的形式。在这里我们考虑多线性多项式的承诺。

具体来讲,给定一个多项式,他在向量 x0,x1,...,xlogN-1的取值可以写成:

根据多线性的定义,每一个变量的次数是 0 或 1,因此,这里有 N 个单项式和系数,以及 logN 个变量。令

,其中 i0i1...ilogN-1是 i 的二进制表示。令 w 表示多项式系数,

。同样的,定义

于是有 X=r0⊗r1。

从而,多项式取值可以被表示成张量积的形式:ϕ(x0,x1,...,xlogN-1)=

最后,我们来看 FOAKS、Orion[XZS22]当中使用的 Brakedown 的过程。

首先,PC.Commit 将多项式系数 w 划分成 k×k 的矩阵形式,并将其编码(参考「预备知识」中的线性码),记作 C2。之后对于 C2的每一列 C2[:,i]进行承诺建立一个默克尔树,然后再对于每一个列形成的默克尔树树根建立另一个默克尔树,作为最终的承诺。

在取值证明的计算中,需要证明两点,一是近似性(Proximity),二是一致性(Consistency)。近似性保证了承诺的矩阵确实和编码后的一个码字足够接近。一致性保证 y=

近似性检验:近似性检验由两步组成。首先,验证者发送一个随机向量 0 给证明者,证明者计算 Y0与 C1的内积,也就是以 Y0的分量为系数对 C1的行计算线性组合。由于线性码的性质,Cy0是 Yy0的码字。之后,证明者证明 Cy0确实是从被承诺的码字计算出的。为了证明这一点,验证者随机选取 t 列,证明者打开对应的列并提供默克尔树证明。验证者检查这些列和 Y0的内积和 Cy0当中对应位置相等。[BCG20]当中证明如果使用的线性码有常数的相对距离,那么被承诺的矩阵就以压倒性的概率与一个码字接近(压倒性的概率是指,命题的否命题成立的概率是可忽略的)。

一致性检验:一致性检验和近似性检验的流程完全类似。不同之处在于,不使用随机向量 Y0而是直接使用 r0来完成线性组合的部分。类似的,c1也是消息 y1的一个线性码,并且有

ϕ(x)=。[BCG20]当中证明,通过一致性检验,如果被承诺的矩阵与一个码字接近,则以压倒性概率成立 y=ϕ(x)。

以伪代码形式,我们给出 Brakedown 协议的流程:

Public input:The evaluation point X,parsed as a tensor product X=r0⊗r1;

Private input:The polynomial ϕ ,the coefficient of is denoted by w.

Let C be the [n,k,d]-limear code,EC:FkFn be the encoding function,N=k×k. If N is not a perfect square,we can pad it to the next perfect square. We use a python style notationmat[:,i] to select the i-th column of a matrix mat。

  1. function PC. Commit(ϕ):
  2. Parse w as a k×k matrix. The prover locally computes the tensor code encoding C1,C2 ,C1 is a k×n matrix,C2 is a n×n matrix.
  3. for i∈ [n] do
  4. Compute the Merkle tree root Roott=Merkle.Commit(C2[:,i])
  5. Compute a Merkle tree root R=Merkle.Commit([Root0,......Rootn-1]),and output R as the commitment.
  6. function PC. Prover(ϕ, X, R)
  7. The prover receives a random vector Y0∈Fk from the verifier
  8. Proximity
  9. Consistency
  10. Prover sends C1,y1,C0,y0 to the verifier.
  11. Verifier randomly samples t[n] as an array Î and send it to prover
  12. for idx∈Î do
  13. Prover sends C1 [:,idx] and the Merkle tree proof of Rootidx for C2 [:,idx] under R to verifier
  14. function PC. VERIFY_EVAL(πX,X,y=ϕ(X),R)
  15. Proximity: ∀idx∈Î,CY0[idx]==and EC(Yy0)==CY0
  16. Consistency:∀idx∈Î,C1[idx]==and EC(Y1)==C1
  17. y==
  18. ∀idx∈Î, EC(C1[:,idx]) is consistent with ROOTidx, and ROOTidx’s Merkle tree proof is valid.
  19. Output accept if all conditions above holds. Otherwise output reject.

结语:多项式承诺是一类非常重要的密码学协议,被广泛的应用在许多密码学系统当中,尤其是零知识证明系统。本文详细介绍了多项式承诺 Brakedown 协议以及和其相关的数学知识,作为 FOAKS 很重要的底层组件,Brakedown 对 FOAKS 的实例化性能的提升起到了重要作用。

参考文献

[GLS+]:Alexander Golovnev, Jonathan Lee, Srinath Setty, Justin Thaler, and Riad S. Wahby. Brakedown: Linear-time and post-quantum snarks for r1cs. Cryptology ePrint Archive. https://ia.cr/2021/1043.

[XZS22]:Xie T, Zhang Y, Song D. Orion: Zero knowledge proof with linear prover time[C]//Advances in Cryptology–

CRYPTO 2022: 42nd Annual International Cryptology Conference, CRYPTO 2022, Santa Barbara, CA, USA, August 15–18, 2022, Proceedings, Part IV. Cham: Springer Nature Switzerland, 2022: 299-328.https://eprint.iacr.org/2022/1010

[BCG20]:Bootle, Jonathan, Alessandro Chiesa, and Jens Groth. "Linear-time arguments with sublinear verification from tensor codes." Theory of Cryptography: 18th International Conference, TCC 2020, Durham, NC, USA, November 16–19, 2020, Proceedings, Part II 18. Springer International Publishing, 2020.

Justin Thaler from A16zcrypto, Measuring SNARK performance: Frontends, backends, and the future

https://a16zcrypto.com/measuring-snark-performance-frontends-backends-and-the-future/

张量积的介绍:https://blog.csdn.net/chenxy_bwave/article/details/127288938

评论

所有评论

推荐阅读

  • 比特币二层网络ZKM完成500万美元Pre-A融资

    比特币二层网络 ZKM 宣布完成 500 万美元 Pre-A 融资,OKX Ventures 领投,Amber、Metis Foundation、Crypto.com 和其他公司参投。ZKM 是一个基于零知识证明的网络,旨在统一区块链,在以太坊上创建一个结算层。

  • 5月7日晚间要闻速递

    1. BTC突破64000美元

  • Dayton公司Niobium获得550万美元的种子轮融资,将用于开发FHE加速的商业应用程序。

    总部位于俄亥俄州代顿的定制硅提供商Niobium获得了550万美元的种子轮融资,由Fusion Fund领投,Morgan Creek Capital、Rev1 Ventures、Ohio Innovation Fund和Hale Capital也参与了投资。此次融资中,Niobium增加了新的董事会成员Shane Wall,他是Fusion Fund合伙人、CXO Network总裁、惠普公司前首席技术官和全球惠普实验室负责人。该公司计划利用这笔资金开发FHE加速的商业应用,包括医疗和制药研究、金融欺诈检测、区块链公共账本、数字广告等领域,这些领域需要在保持完全隐私的同时共享和分析数据。Niobium开发定制硬件解决方案,提供专用硬件,能够将完全同态加密(FHE)推进商业应用。该技术使数据在计算过程中保持加密状态,实现了一种新型的多方机器学习和统计分析应用,具有数学上的隐私保证。该公司在俄亥俄州哥伦布、俄勒冈州波特兰和加利福尼亚州旧金山设有办事处。Niobium的CEO和总裁Kevin Yoder表示:“获得这笔融资证明了我们在Niobium所做的开创性工作,并推动我们进入将FHE加速器芯片推向市场的下一个关键阶段。我们通过先进的加密技术重新定义数据隐私和安全的愿景现在更接近现实。这项投资使我们能够快速探索需要绝对数据隐私的应用,为各行各业开启了保密计算的新可能性。我们感谢我们的投资者分享我们对更安全和私密的数字未来的愿景。”

  • Botanix Labs宣布完成1150万美元融资,Polychain Capital等参投

    Botanix Labs宣布筹集了1150万美元的资金,Polychain Capital、Placeholder Capital、Valor Equity Partners和ABCDE等机构参投。其他投资方包括Andrew Kang、Fiskantes、Dan Held、The Crypto Dog、Charlie Spears、Altcoin Sherpa、Dovey Wan、Jebus、Icebergy、Crypto ISO、Davis、Walt Smith和BRC-20代币标准的创造者Domo。

  • Galaxis完成1000万美元融资,Chainlink、Rarestone Capital等参投

    新加坡Web3平台Galaxis宣布,在其代币发行前已完成1000万美元融资。此轮融资的参与方包括Chainlink、ENS、Rarestone Capital、Taisu Ventures以及ENS联合创始人Nick Johnson等。Galaxis自称是一个“后炒作时代的NFT实用平台”,此前曾为DJ SteveAoki、演员ValKilmer等名人推出NFT系列。该平台已售出超过22.5万枚NFT,在二级市场产生逾3.2万枚ETH(约1亿美元)的销售额,目前正准备进行大规模分发。

  • 香港金管局成立Ensemble项目架构工作小组 初期聚焦代币化资产交易

    香港金融管理局5月7日宣布成立Ensemble项目架构工作小组,与业界共同建立标准和提出建议,支持香港代币化市场发展。工作小组将推动制定业内标准,以支援批发层面央行数码货币(wCBDC)、代币化货币和代币化资产之间的互通性。工作小组会就特定议题提出建议,初期会聚焦为代币化资产交易建立机制,透过wCBDC畅顺地进行代币化存款的银行同业结算。工作小组亦会协助设计和构建计划于今年年中推出的Ensemble项目沙盒,进一步研究及测试代币化用例。

  • 澳大利亚税务局将强制加密货币交易所提供120万交易者的个人和交易细节

    澳大利亚税务局将强制加密货币交易所提供120万交易者的个人和交易细节,以打击试图逃避纳税义务的人。据报道,监管机构要求加密货币交易所提供高达120万个账户的个人数据和交易细节。澳大利亚金融评论报告称,“作为四月份宣布的监视行动的一部分,税务局表示,其最新的数据收集协议将要求指定的加密货币交易所提供交易者的姓名、地址、生日和交易细节,以帮助其审计遵守销售资本利得税的义务。”税务局表示,这些数据将有助于识别未报告加密货币相关活动的交易者,包括将加密资产兑换成货币或用于支付货物和服务的交易。澳大利亚加强对加密货币行业的打击自FTX破产以来更加明显。税务局去年明确表示,其对加密产品的资本利得税也适用于包装代币或代币与去中心化借贷协议的交互。

  • 专注于零知识证明的区块链Gevulot完成600万美元种子轮融资,Variant领投

    专注于零知识证明的区块链Gevulot完成600万美元种子轮融资,Variant领投,RockawayX、Volt Capital 和 Stake Facilities 以及 Polygon Labs 首席执行官 Marc Boiron 和 Manta Network 创始人 Shumo Chu 等个人支持者参与。 Gevulot 没有透露其估值。 Gevulot 计划将资金分配给其L1区块链的推出,该区块链使开发人员能够利用ZK 证明并将计算任务委托给先进的硬件运营商网络。

  • 中科大首次实现以器件无关量子随机数产生器,消除非交互式零知识证明安全隐患

    中国科学技术大学潘建伟院士等研究者首次实现一套以器件无关量子随机数产生器作为熵源,以后量子密码作为身份认证的随机数信标公共服务,将其应用到零知识证明领域中,消除了非交互式零知识证明中实现真随机数的困难所带来的安全隐患,提高了非交互式零知识证明的安全性。非交互式零知识证明广泛应用于数字签名、区块链和身份认证等领域,由于真随机数生成器难以实现,通常会使用确定性的伪随机数算法来替代。 据了解,此次研究工作首次将量子非局域性、量子安全算法和零知识证明3个不同的领域结合起来,大幅提升了零知识证明的安全性,其中构建的面向公众的随机数服务在密码学、彩票业和社会公益等领域有着重要的应用潜力。

  • 零知识加密公司Toposware融资500万美元,Polygon联创参投

    零知识加密技术公司Toposware宣布完成500万美元的战略种子延期融资,投资者包括Evolution Equity Partners、Triatomic Capital、K2 Access Fund和Polygon联合创始人Sandeep Nailwal。 新闻稿称,最新一轮融资的目的是吸引主要风险投资公司和行业领导者加入,他们在制定全球标准、扩大无处不在的产品以扩大市场份额以及调整目标市场领域的准入和效用方面拥有直接经验。