Cointime

扫码下载App
iOS & Android

一文了解零知识证明当中的Sum-check Protocol

作者:Fox Tech CEO 康水跃,Fox Tech 首席科学家 孟铉济

随着比特币、区块链、智能合约等概念的铺开,越来越多的人关注到Web3领域的蓬勃发展。而在技术方面,也有许多开发者关注到支撑区块链底层的密码学协议。在这之中,零知识证明协议以其独特的特性大放异彩,无论是在实现隐私保护,还是在实现Layer2性能扩容的zkrollup项目当中,都发挥着关键的作用。

零知识证明是一类算法的统称,到目前为止,研究者发明了包括Plonk、Groth16、zkStark、Virgo、Orion、Foaks等等在内的许多种协议。不同的协议适用于不同的计算场景,复杂度和效率也各有不同,例如Foaks就以线性的证明时间和较小的证明长度为优势。

上述的每一种协议,协议目标是相同的,就是证明者(Prover)希望在不向验证者(Verifier)透露任何关于自己的秘密的信息的情况下让验证者相信自己拥有秘密。sum-check protocol是很多协议的组件,最早在[LFKN92]当中被提出。很多计算问题可以被转化成sum-check protocol能处理的问题,从而生成证明。包括Foaks在内的不少协议的底层协议都基于sum-check protocol,在其上进行调整来实现。

在Fox Tech所采用的Foaks证明系统当中,该协议同样发挥着重要的作用。具体来讲,为了实现对于某一操作码opcode正确性的证明,需要先将其转化为算术电路,之后转换为矩阵,最终生成多项式,对多项式应用证明系统当中的算法,在最后压缩证明的部分当中,同样将证明者(Prover)和验证者(Verifier)之间的交互过程转换为计算某个和式,也就是sum-check protocol的过程。

图1: Sum-check Protocol所在环节

Sum-check Protocol

1.协议目标

协议的目标非常简单且容易理解。

假设我们有一个定义在有限域F上的v元多项式,记作g。协议的目标是计算和式:

H :=b10,1b20,1...bv0,1g(b1, ... ,bv)

和在zkRollup当中考虑的“外包计算”的场景类似,在应用当中,上述式子的计算量会非常大,我们希望将这个式子的计算交给证明者(Prover),之后证明者向验证者(Verifier)证明自己的计算结果是正确的。

2. 协议假设

首先,需要明确在这个协议当中验证者的能力。我们假设验证者拥有可以计算函数g的预言(Oracle)。也就是说,对于验证者而言,确定某个输入r1, ... ,rv之后,计算g(r1, ... ,rv)是容易的。但是计算完整的结果H是困难的。

事实上,在现实应用当中,预言(Oracle)不会存在,但是可以通过某种手段实现,例如我们可以让证明者帮助验证者计算这个值,并用更多的技巧附加正确性的证明。

第二点,关于协议的目标,事实上sum-check协议可以对于任意的集合B计算bBmg(b),但是不失一般性的,我们假设B={0,1}。

3. 协议过程

协议一共包含v轮。在每一轮当中会处理g中的一个变量。

第1轮:

证明者发送多项式g1(X1),并声明g1(X1)=(x2,...,xv)0,1v-1g(X1,x2, ... ,xv)。

如果证明者是诚实的,应当成立H=g1(0)+g1(1)。验证者验证,若通过则选择随机数r1发送给证明者。注意到,根据协议的假设,证明者可以完成上述验证。

我们用degi(p)来表示多元多项式p当中,第i个变量的次数。g1(X1)的次数为deg1(g),所以我们知道g1可以用deg1(g)+1个域元素表出。

第j(j>1)轮:

证明者发送多项式gj(Xj),并声明gj(Xj)=(xj+1,...,xv)0,1v-jg(r1, ... ,rj-1,Xj,xj+1, ... ,xv)。

如果证明者是诚实的,应当成立gj-1(rj-1)=gj(0)+gj(1)。验证者验证,若通过则选择随机数rj发送给证明者。

第v轮:

证明者发送多项式gv(Xv),并声明gv(Xv)=g(r1, ... ,rv-1,Xv)。

如果证明者是诚实的,应当成立gv(rv)=g(r1, ... ,rv-1,rv)。验证者验证,若通过则可以相信H=g1(0)+g1(1)。

图2: The Foaks Sum-check protocol

  • Completeness: 若证明者拥有有效的Witness,则验证者会以不低于(1-negl(n))的概率接受证明;
  • Soundness: 若证明者没有有效的Witness,则验证者会以低于negl(n)的概率拒绝证明
  • Succinctness: Proof的Size必须远小于Witness的Size;
  • Zero-knowledge:验证者无法通过证明的交互过程获取任何关于witness的信息

#其中negl(n)为任意可忽略的函数

4. 协议复杂度

通过第3部分的论证,我们可以看到,协议一共由v轮组成,每一轮当中证明者需要给验证者发送一个degi(g)次的多项式,也就是deg1(g)+1个域元素,所以总体的通信复杂度是O(i=1vdegi(g))。关于计算复杂度方面,在每一轮验证都通过的情况下,证明者最多需要进行2v次对g取值的运算;验证者做的运算是对每一轮的gj进行取值以及在最后一轮对g取值。

下表具体展示了复杂度的结果,其中T代表访问一次预言(Oracle)也就是对g进行一次求值所需要的开销。

图3:Sum-check协议的复杂度

Sum-check Protocol的应用

在许多的零知识证明算法当中,sum-check protocol都在发挥着重要的作用。许多问题的证明,都依赖于将原始的问题转化为sum-check的形式,再完成后续的步骤。

例如,可以利用sum-check protocol来计算一个无向图中的三角形数量。

首先,我们使用邻接矩阵A表示无向图G,设E为其边集合,则Ai,j=1(i,j)E,也就是说若点i,j之间存在一条边则Ai,j=1否则为0。对于点i,j,k,三点构成三角形的条件是Ai,j=1,Ai,k=1,Aj,k=1。

接下来记矩阵A为一映射表,表示的映射为f:{0,1}log n{0,1}log n{0,1},其中logn为i,j的二进制长度。所以对于点i,j,k,三点构成三角形的条件进一步可以表示为f(i,j)f(i,k)f(j,k)=1。

所以,G中全部三角形的数量h可以表示为h=16i,j,k{0,1}log nf(i,j)f(i,k)f(j,k)。再定义三元多项式g(I,J,K)=f(i,j)f(i,k)f(j,k)。则有6h=i,j,k{0,1}log ng(i,j,k)。于是使用sum-check protocol计算H=i,j,k{0,1}log ng(i,j,k)即可。

此外,在许多证明系统当中,都采用了sum-check protocol作为底层逻辑进行构造。下图展示了根据在sum-check基础上进行不同改造得到的不同证明系统。

图5: Sum-check protocol在简洁证明方面的具体应用

结语

本文梳理了sum-check协议的具体流程,以及讨论了协议的复杂度,同时展示了其在许多证明系统当中的应用。

在web3领域不断拓展的当下,密码学作为区块链技术的底层构件,其作用显得越来越重要。随着zkrollup、隐私保护等等依赖零知识证明的应用和项目逐渐诞生,sum-check协议,作为诸多证明系统的重要组件,也正在被学界和产业界同时给予越来越多的关注。

参考文献

  1. [LFKN92] Carsten Lund, Lance Fortnow, Howard Karloff, and Noam Nisan. Algebraic methods for interactive proof systems. J. ACM, 39:859–868, October 1992.
  2. https://people.cs.georgetown.edu/jthaler/sumcheck.pdf
  3. https://zkproof.org/2020/03/16/sum-checkprotocol/
  4. https://eprint.iacr.org/2021/333.pdf
  5. 介绍sum-check的中文博客 https://blog.csdn.net/mutourend/article/details/111610754
评论

所有评论

推荐阅读

  • Cointime 5月3日要闻速递

    1. 华夏虚拟资产ETF资产管理规模突破10亿港元,博时和嘉实AUM均已超5亿港元

  • Paribu钱包地址转出超4万亿枚PEPE,价值约3100万美元

    据Whale Alert监测,Paribu钱包地址于今日17:20左右通过以太坊区块链转出4,049,371,347,309枚PEPE,价值约合31,091,073美元,所有代币均转入到一个“0xa23c”开头的地址。

  • 荷兰财政调查局逮捕涉嫌ZKasino诈骗案的26岁嫌疑人,并扣押其1100万欧元资产

    荷兰财政情报调查局(FIOD)在其官网宣布,于4月29日逮捕了一名涉嫌欺诈、挪用资金和洗钱的26岁男子,涉案平台为ZKasino。该平台涉嫌骗取全球受害者超过3,000万美元的加密货币投资。

  • 华夏虚拟资产ETF资产管理规模突破10亿港元,博时和嘉实AUM均已超5亿港元

    截至5月3日,港交所最新虚拟资产ETF资产管理规模数据显示:

  • TON生态TVL突破1.7亿美元续创历史新高

    据DeFiLlama最新数据显示,TON生态TVL已突破1.7亿美元,当前触及1.7623亿美元,续创历史新高,过去24小时涨幅8.72%。

  • 6支香港虚拟资产现货ETF今日成交额超4891万港元

    港交所官网数据显示,6 支香港首批发行的虚拟资产现货 ETF 今日成交额合计超 4891 万港元,其中:华夏比特币 ETF(3042.HK)今日成交额为 1290 万港元;华夏以太币 ETF(3046.HK)今日成交额为 297 万港元;嘉实比特币现货 ETF(3439.HK)今日成交额为 2043 万港元;嘉实以太币现货 ETF(3179.HK)今日成交额为 135 万港元;博时 HashKey 比特币 ETF(3008.HK)今日成交额为 1008 万港元;博时 HashKey 以太币 ETF(3009.HK)今日成交额为 118 万港元。

  • FRIEND跌破3美元,生态TVL降至3000万美元区间

    据DexScreener数据显示,friend.tech代币交易价格已跌破3美元,现报2.31美元,当前流通量约为1450万枚,另据DeFiLlama数据显示,friend.tech生态TVL已降至3000万美元区间,过去7天跌幅13.6%。friend.tech于去年8月在以太坊Layer 2网络Base上推出,生态TVL曾一度突破5000万美元,当前为Base链上第九大协议。

  • Jack Dorsey的Block公司计划购买更多比特币

    Jack Dorsey的支付公司 Block已经开始实施美元平均成本(DCA)计划,以增加其已经相当可观的比特币(BTC)储备。Block公司于4月份开始使用每月比特币相关毛利润的10%购买额外的比特币,并计划在2024年剩余时间内每月都这样做。 根据第一季度的财报,Block 公司的比特币毛利润为 8000 万美元。如果这一利润水平持续到今年下半年,那么根据这一计划,该公司的资产负债表将再增加价值 2400 万美元的比特币。 Block 公司已经持有大量比特币,在 2020 年 10 月购买了 4709 枚比特币,在 2021 年初又购买了 3318 枚代币。按照今天约 5.9 万美元的价格计算,这些比特币现在价值约 47 亿美元。

  • Mirror母公司获Electric Capital 1000万美元投资以开发新产品,a16z crypto等提供捐款

    Mirror母公司Reflective Technologies Inc.透露,该公司从Electric Capital处筹集了1000万美元,a16z crypto、Union Square Ventures和Variant也提供了额外捐款,用于开发新产品Kiosk。目前Kiosk仍在开发和寻找创始团队中,将使用Farcaster来增强社交社区内基于区块链的交易。

  • 西班牙Web3视频游戏初创公司GFAL获得320万美元种子融资

    西班牙巴塞罗那的Web3视频游戏初创公司GFAL获得320万美元的种子轮融资,由Supercell Ltd和Mitch Lasky领投,Heinrich Zetlmayer、Bonduc Bioscience SL、BCNBCNLVC、David Fernandez、Bonsai Partners、Nekko Consulting和Inveready等机构参与。该公司打算利用这笔资金扩大核心团队并加速生产计划。GFAL由首席执行官Manel Sort领导,是一家利用从人工智能到Web3的技术开发和发布游戏的初创公司,旨在通过沉浸式游戏玩法让玩家享受游戏乐趣。该公司的2024年计划将建立在其游戏Elemental Raiders于2023年3月在移动端进行的软启动基础上。Manel Sort在评论中表示:“我们非常感激Supercell、Mitch和Heinrich对GFAL的信任。与Trip和Ilkka一起开展项目,与他们分享了在Digital Chocolate度过的许多激动人心和成功的岁月,这是一个梦想成真,我迫不及待地想向世界展示我们正在构建的高水平游戏。”