LON:引介 | 零知识证明算法之REDSHIFT

写在前面

伴随着区块链的技术发展,零知识证明技术先后在隐私和Layer2扩容领域得到越来越多的应用,技术也在持续的迭代更新。从需要不同的TrustSetup的ZKP,到需要一次TrustSetup同时支持更新的ZKP,再到不需要TrustSetup的ZKP,ZKP算法逐渐走向去中心化,从依赖经典NP问题,到不依赖任何数学难题,ZKP算法逐渐走向抗量子化;我们当然希望,一个不需要TrustSetup同时也不依赖任何数学难题、具有抗量子性的ZKP算法也具有较好的效率和较低的复杂度,它就是REDSHIFT。

REDSHIFT

《REDSHIFT:TransparentSNARKsfromListPolynomialCommitmentIOPs》,从名字可以可出,它是基于List多项式承诺且具有透明性的SNARK算法。算法本身和PLONK有大部分的相似之处,唯一不同的是多项式承诺的原语不同。下面先简单的通过一张表格来展示REDSHIFT和PLONK算法的异同之处,具体如下:

火币App上线RWA专题:据火币App首页显示,RWA专题已在火币App首页-推荐版块上线。火币的RWA专题集合了市场对于RWA(Real World Assets,即真实世界资产)的各种讨论和观点,一些观点认为RWA将引发下一轮牛市。火币对RWA专题的关注和梳理旨在帮助用户和部分创业者深度学习新赛道,调整投资和创业视角。[2023/7/18 11:01:19]

算法名称/算法步骤算术化简洁证明QAP成立特点

PLONKStatement->Circuit->QAPKateCommitmentGeneralCRS

REDSHIFTStatement->Circuit->QAPFRICommitmentNoTrustSetup

南非金融服务提供商监察办公室现已受理比特币投诉:金色财经报道,金融服务提供商监察办公室(FAIS)本周宣布已对加密行业拥有管辖权。FAIS监察办公室表示,该办公室可以调查针对提供加密货币建议的现有注册金融服务提供商的投诉。这些供应商需要遵守该准则的所有要求,例如材料披露、进行需求分析以及推荐适合个人需求和情况的产品。

此前,金融部门行为监管局(FSCA)在10月份宣布数字资产现在属于金融产品类别。此外,FAIS仅能处理去年10月19日之后发生的事件的投诉,即 FSCA 宣布比特币为金融产品的那一天。[2023/1/29 11:34:51]

因此,只要对PLONK算法有深入了解的读者,相信再理解REDSHIFT算法,将是一件相对简单的事。笔者在此之前,已经对PLONK算法进行了深入的剖析;文章零知识证明算法之PLONK---电路详细的分析了PLONK算法里,关于电路部分的详细设计,包括表格里的《Statement->Circuit->QAP》过程,并且还详细描述了PLONK算法里,关于“PermutationCheck”的原理及意义介绍;文章零知识证明算法之PLONK---协议对PLONK的协议细节进行了剖析,其中多项式承诺在里面发挥了重要的作用:保持确保算法的简洁性和隐私性

美SEC主席:加密市场存在\"中心化\",交易所拥有不成比例的权利:10月25日消息,美国证券交易委员会主席Gary Gensler周一在证券业和金融市场协会举办的会议上发表演讲时加密货币行业进行了再次抨击,批评了集中式加密货币交易所在行业所拥有的不成比例的权力。Gensler表示:“我们甚至看到了加密市场的中心化,这是建立在去中心化理念之上的,这个领域实际上在市场中间的中介机构中非常集中。”(Decrypt)[2022/10/25 16:37:38]

我们知道,零知识证明算法的第一步,就是算术化,即把prover要证明的问题转化为多项式等式的形式;如若多项式等式成立,则代表着原问题关系成立。想要证明一个多项式等式关系是否成立比较简单,根据Schwartz–Zippel定理可推知,两个最高阶为n的多项式,其交点最多为n个;换句话说,如果在一个很大的域内随机选取一个点,如果多项式的值相等,那说明两个多项式相同。因此,verifier只要随机选取一个点,prover提供多项式在这个点的取值,然后由verifier判断多项式等式是否成立即可,这种方式保证了隐私性。

消息人士:巴西众议院将加密法案投票推迟到10月总统选举之后:7月14日消息,消息人士透露,巴西众议院将加密法案的投票推迟到10月总统选举之后,而议员们本打算在下周国会休会前审议该加密货币法案。

就其法案本身而言,众议院尚未就最终文本达成共识,因为负责在下议院提交该法案的国会议员Expedito Netto(PSD-RO)从参议院的原始法案中删除了两项条款。第一个被删除的条款要求交易所将其资产与客户的资产分开,而第二个要求交易所已经在巴西拥有EIN才能申请许可证。但当地交流协会ABCripto要求众议院保留这两项条款。(CoinDesk)[2022/7/14 2:12:30]

然而,上述方式存在一定的疑问,”如何保证prover提供的确实是多项式在某一点的值,而不是自己为了能保证验证通过而特意选取的一个值,这个值并不是由多项式计算而来?“,为了解决这一问题,在经典snark算法里,利用了KCA算法来保证,具体的原理可参见V神的zk-snarks系列;在plonk算法里,引入了多项式承诺的概念,具体的原理可在”零知识证明算法之PLONK---协议“里提到,简单来说,算法实现了就是在不暴露多项式的情况下,使得verifier相信多项式在某一点的取值的确是prover声称的值。两种算法都可以解决上述问题,但是通信复杂度上,多项式承诺要更小,因此也更简洁。

协议

下面将详细介绍REDSHIFT算法的协议部分,如前面所述,该算法与PLONK算法有很大的相似之处,因此本篇只针对不同的部分做详细介绍;相似的部分将会标注出来方便读者理解,具体如下图所示:

REDSHIFT协议

协议的1-6步骤在PLONK的算法设计里都有体现,这里着重分析一下后续的第7步骤。

在PLONK算法里,prover为了使verifier相信多项式等式关系的成立,由verifier随机选取了一个点,然后prover提供各种多项式的commitment,由于使用的Katecommitment算法需要一次TrustSetup并依赖于离散对数难题,因此作为PLONK算法里的子协议,PLONK算法自然也需要TrustSetup且依赖于离散对数难题;

在REDSHIFT协议里,多项式的commitment是基于默克尔树的。若prover想证明多项式在某一个或某些点的值,证明方只需要根据这些值插值出具体的多项式,然后和原始的多项式做商并且证明得到商也是个多项式即可。当然为了保护隐私,需要对原始多项式做隐匿处理,类似于上图协议中的第一步。在实际设计中,为了方面FRI协议的运行,往往设计原始多项式的阶d=2^n+k(其中k=log(n))。可能读者一直在疑惑前面一直提到的FRI协议具体是怎么运行的,幸运的是,笔者早就对FRI的具体原理做了解读,可以参考链接:

1.理解零知识证明算法之Zk-stark;

2.理解零知识证明算法之Zk-stark--Arithmetization

3.深入理解零知识证明算法之Zk-stark--LowDegreeTesting

4.深入理解零知识证明算法之Zk-stark--FRI协议

结尾

老样子,欢迎读者的指正,谢谢。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

[0:62ms0-1:41ms