写在前面
伴随着区块链的技术发展,零知识证明(ZKP,ZeroKnowledger
Proof)技术先后在隐私和Layer2扩容领域得到越来越多的应用,技术也在持续的迭代更新。从需要不同的TrustSetup的
ZKP,到需要一次TrustSetup同时支持更新的ZKP,再到不需要TrustSetup的
ZKP,ZKP算法逐渐走向去中心化,从依赖经典NP问题,到不依赖任何数学难题,ZKP算法逐渐走向抗量子化。
我们当然希望,一个不需要TrustSetup同时也不依赖任何数学难题、具有抗量子性的ZKP算法也具有较好的效率和较低的复杂度,它就是REDSHIFT。
REDSHIFT
《REDSHIFT:TransparentSNARKsfromListPolynomial
Onyx Digital Assets负责人:将基于区块链发行更广泛的资产,包括私募基金的代币化:金色财经报道,Onyx Digital Assets 负责人 Tyrone Lobban 在接受采访时表示,随着平台的发展,接下来的重点将转向货币市场基金等传统上难以融资的资产的代币化,并将其用于抵押目的。更进一步,Lobban 预计将基于区块链发行更广泛的资产,包括私募基金的代币化。
我们认为代币化是传统金融的杀手级应用,如果你想想私人市场,私人信贷、私人股本和私人房地产,它们的规模几乎是公开市场的两倍,但流动性要低很多数量级,所以存在巨大的差距。
据悉,摩根大通一直在使用 Onyx 数字资产平台进行短期贷款交易,迄今为止交易量近 7000 亿美元,该平台是以太坊的许可版本。[2023/4/27 14:31:07]
CommitmentIOPs》,从名字可以可出,它是基于List多项式承诺且具有透明性的SNARK算法。算法本身和PLONK
Celsius债权人委员会:客户可在4月28日前对任何债务人提出索赔证明:金色财经报道,Celsius债权人委员会在社交平台表示,在最近的客户索赔裁决中,Glenn法官表示,客户可以只针对Celsius Network LLC提出加密货币的合同索赔,但Glenn法官的决定并不妨碍客户对所有债务人提出非合同索赔,如欺诈、疏忽性失实陈述或其他法定或普通法索赔。鉴于这一法院裁决,债务人现在已重新开放截止日期。客户可以在4月28日前根据该裁决对任何债务人提出索赔证明。[2023/3/27 13:28:33]
有大部分的相似之处,唯一不同的是多项式承诺的原语不同。下面先简单的通过一张表格来展示REDSHIFT和PLONK
算法的异同之处,具体如下:
因此,只要对PLONK算法有深入了解的读者,相信再理解REDSHIFT算法,将是一件相对简单的事。ZKSwap团队在此之前已经对PLONK算法进行了深入的剖析,我们在文章《零知识证明算法之PLONK---电路》详细的分析了
Bitget新增支持在ArbitrumOne上的USDT、USDC和ETH存取款:12月20日消息,加密货币交易所Bitget宣布新增支持在ArbitrumOne网络上的USDT、USDC和ETH存取款服务。[2022/12/20 21:56:43]
PLONK算法里,关于电路部分的详细设计,包括表格里的《Statement->Circuit->
QAP》过程,并且还详细描述了PLONK算法里,关于“PermutationCheck”的原理及意义介绍,文章零知识证明算法之PLONK
---协议对PLONK的协议细节进行了剖析,其中多项式承诺在里面发挥了重要的作用:保持确保算法的简洁性和隐私性。
我们知道,零知识证明算法的第一步,就是算术化,即把prover
Snoop Dogg儿子与Tezos基金会合作,推出100万美元加密基金“Champ Medici Arts Fund”:12月2日消息,说唱明星Snoop Dogg儿子Cordell Broadus宣布和Tezos基金会达成合作,双方合作成立一支100万美元的加密基金“Champ Medici Arts Fund”,为Tezos区块链上的新兴艺术家提供支持,尤其针对少数群体。
据悉,该基金将于2023年1月2日正式启动,目前已经公布了首个支持对象Rush Philanthropic Arts Foundation,该机构主要帮助艺术家采用NFT。(雅虎财经)[2022/12/2 21:17:25]
要证明的问题转化为多项式等式的形式。如若多项式等式成立,则代表着原问题关系成立,想要证明一个多项式等式关系是否成立比较简单,根据
Schwartz–Zippel定理可推知,两个最高阶为n的多项式,其交点最多为n个。
换句话说,如果在一个很大的域内随机选取一个点,如果多项式的值相等,那说明两个多项式相同。因此,verifier只要随机选取一个点,prover提供多项式在这个点的取值,然后由verifier判断多项式等式是否成立即可,这种方式保证了隐私性。
然而,上述方式存在一定的疑问,“如何保证prover
提供的确实是多项式在某一点的值,而不是自己为了能保证验证通过而特意选取的一个值,这个值并不是由多项式计算而来?”为了解决这一问题,在经典
snark算法里,利用了KCA算法来保证,具体的原理可参见V神的zk-snarks系列。在PLONK
算法里,引入了多项式承诺的概念,具体的原理可在“零知识证明算法之PLONK---
协议”里提到。
简单来说,算法实现了就是在不暴露多项式的情况下,使得verifier相信多项式在某一点的取值的确是prover声称的值。两种算法都可以解决上述问题,但是通信复杂度上,多项式承诺要更小,因此也更简洁。
协议
下面将详细介绍REDSHIFT算法的协议部分,如前面所述,该算法与PLONK算法有很大的相似之处,因此本篇只针对不同的部分做详细介绍;相似的部分将会标注出来方便读者理解,具体如下图所示:
协议的1-6步骤在PLONK的算法设计里都有体现,这里着重分析一下后续的第7步骤。
在PLONK算法里,prover为了使verifier相信多项式等式关系的成立,由
verifier随机选取了一个点,然后prover提供各种多项式(包括setuppoly、constriant
ploy、witnesspoly)的commitment,由于使用的Katecommitment算法需要一次TrustSetup
并依赖于离散对数难题,因此作为PLONK算法里的子协议,PLONK算法自然也需要TrustSetup且依赖于离散对数难题。
在REDSHIFT协议里,多项式的commitment
是基于默克尔树的。若prover
想证明多项式在某一个或某些点的值,证明方只需要根据这些值插值出具体的多项式,然后和原始的多项式做商并且证明得到商也是个多项式即可。
当然为了保护隐私,需要对原始多项式做隐匿处理,类似于上图协议中的第一步。在实际设计中,为了方便
FRI协议的运行,往往设计原始多项式的阶d=2^n+k(其中k=log(n))。可能读者一直在疑惑前面一直提到的FRI
协议具体是怎么运行的,ZKSwap曾对FRI的具体原理进行过解读,感兴趣的可以通过ZKSwap官网阅读以下文章:
《理解零知识证明算法之Zk-stark》
《理解零知识证明算法之Zk-stark--Arithmetization》
《深入理解零知识证明算法之Zk-stark--LowDegreeTesting》
《深入理解零知识证明算法之Zk-stark--FRI协议》
来源:金色财经
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。