前言:从一锅鸡汤说起
当读者刚开始接触零知识证明的概念时,面临第一关就是如何搞懂突如其来的大量名词,比如离散对数问题、双线性对还有Groth16、PLONK、RedShift等。不妨我们借用“烹饪”这个生活场景来类比其中的层次关系。
如果把“密码学”比做“烹饪”,那么上个系列中对双线性对的学习就类似于学习炖汤前先简单了解的高压锅的工作原理,而zkSNARK则相当于在说明如何用高压锅炖出美味鸡汤。
由此可见,双线性对是类似基础工具的角色:就像高压锅既可以炖鸡汤也可以炖排骨汤,双线性对既可以用于零知识证明也可以用于构造签名等密码学算法。而Groth16、PLONK、RedShift等,它们同属于zkSNARK,属于同一层次,如果沿用上述类比,那大概就是对应用高压锅做汤的风味选择了。Groth16算法是JensGroth提出的一种zkSNARK算法,相关论文不仅对已有算法进行改进,而且讨论了基于配对的非交互式零知识论证的证明大小问题。Groth16因其精简的证明大小和高效的验证效率,在ZCash等项目中多有应用,是最经典的零知识证明算法之一。
稳定币crvUSD科普创新清算机制LLAMMA,可在抵押品价格下跌时逐步替换为稳定币:1月17日消息,Curve官方科普其稳定币crvUSD创新的清算机制LLAMMA,解释了LLAMMA通过AMM的特性进行针对债务人更友善的清算方式,让抵押品在价格下跌时逐渐转移成稳定币,让原本要清偿的债务有一定程度的稳定币可以偿还,同时在价格回稳时再逐渐把稳定币换回抵押品,而不是直接的触发清算导致债务人的亏损。
此前报道,2022年11月23日,去中心化交易平台CurveFinance开发者发布Curve即将推出的去中心化Stablecoin“crvUSD”的官方代码和白皮书。[2023/1/17 11:17:13]
上一个系列中我们完整介绍了零知识证明中用到的椭圆曲线和双线性配对相关的基础知识。本系列通过动手算的方式,以Groth16算法为例,循序渐进地介绍zkSNARK的基本原理。
本篇是“动手算Groth16”的上篇,主要介绍如何从程序转化为电路和描述算数电路的一种约束系统R1CS。下篇会介绍如何从R1CS转化为多项式相关的约束问题,并且详细给出完整的Groth16从头到尾的手算步骤。
火币推出《一分钟读懂DeFi》系列科普视频:据官方消息,8月24日,火币推出《一分钟读懂DeFi》系列科普视频,并与微博财经合作冠名播出,布道DeFi认知,助力行业发展《一分钟读懂DeFi》是由火币成长学院打造的业内首个系统全面讲解DeFi的系列科普动画,继推出《区块链100问》后的再续佳作。《一分钟读懂DeFi》系列动画对DeFi的发展进行系统梳理,适合想要由浅入深、全面系统了解区块链DeFi的人们轻松了解DeFi。目前视频已由火币网官方微博发布。[2020/8/24]
程序与电路
初始接触通用零知识证明算法时,读者可能最容易感到疑惑的地方就是各种资料中频繁提到的“电路”一词。这里的“电路”是指什么?它又如何等价地对同一个问题进行描述呢?回答这些问题最简单的方式就是使用具体的一个算法例子进行说明。比如我们有下面一段程序代码,如何将其转化为等价的电路呢?
动态 | 浙江卫视节目科普支付宝区块链防伪溯源产品:昨日,在浙江卫视播出的科普综艺栏目《智造将来》现场,支付宝首次展示了支付宝区块链防伪溯源产品,以接地气的方式公开向大众展示区块链在生活中的应用。[2019/3/4]
▲需要被转化为电路的代码
这里需要注意到程序中值被存储在变量中,而电路中的值是用电路门之间的连线表示的。这其中有个关键的不同是:变量的值是会随着时间变化的,而电路中连线的值是固定不能改变的。因此首先我们通过引入一些中间量的方式表示随循环而不断变化的各阶段的变量值,中间量命名为tmp1,tmp2...这样的形式:
▲引入辅助的中间量
最后我们可以转化为只有加法门和乘法门的算数电路:
声音 | 中科院姚建铨:要加快推进区块链与物联网融合的科普 培训:据新华网消息,日前,在区块链与物联网融合发展峰会上,中国科学院院士姚建铨说,关注区块链技术里面的大数据,跟区块链技术结合起来进行测量和检测,能更好地提升激光清洗技术。姚建铨建议,无锡今后要加快推进区块链与物联网融合的科普、培训,正确引导广大人民群众对技术的认知;同时,建立专业、权威,但又普适、成套的理论体系和标准,以此切入区块链的实际应用。[2018/9/18]
▲电路示意图
这里除去输入和输出外,其他的圆圈代表了电路中的门:可以是乘法门或者加法门。而门和门之间的连线对应了程序中的中间变量在某个时刻的值。
如果站在更高的角度思考,其实可以发现有很多结构都能实现“运算”功能,比如说神经元组成的人脑,比如冯·诺伊曼结构的计算机,甚至更早的机械计算器和当今的人工神经网络。算数电路也是这样的一种能够完成一定运算的结构,而且基于这种结构我们能够完成对计算输入和过程的“零知识证明”。因此通用零知识证明算法普遍引入了“电路”这个运算结构并且会研究,如何更好的将高级语言描述的问题转化为等价的算法电路。
财政部副部长朱光耀:数字经济还处在发展的过程中,要以科普、推动的态度来推进数字经济发展:今日,在中国发展高层论坛2018年会上,财政部副部长朱光耀表示:“数字经济还处在发展的过程中,要以科普、推动的态度来推进数字经济发展。也要关注数字经济的其他影响,包括税收征管、反监管措施等要跟上。”[2018/3/25]
上面例子中约束较多,会给后续的“动手算”产生较多的计算量压力,因此在下文中我们以一个新的例子重新展示这个转化的过程。本系列后续文章都会以这个新的例子为主线进行叙述,从而真实展示证明和验证的具体计算过程。新例子的程序代码如下:
这里涉及到4个连线以及两个等式关系。这两个等式关系用更规范的方式重写一下可以帮助读者看地更清晰:
观察这两个式子的特点,可以发现两个等式关系其实都可以写作A×B=C的形式,其中A、B和C都是变量的“加权组合”。这并非巧合,而是我们有意为之。通过这种形式我们避免了对加法门的约束产生额外开销,而是在对乘法门进行约束的同时零开销的对加法关系进行约束,这是groth16的特点之一。在Groth16算法中,加法门和乘法门的地位并不是等价的,我们更关心乘法门。
下面对a,b,c,d四个变量赋予编号,以便下一步的处理,按照groth16的习惯我们将输出排列在输入之前:
可以看到除了连线a、b、c和d,还有一个特殊的连线“1”,“1”其实可以看作是一个特殊的公共输入,他的存在让我们在算法中能更容易地处理常量。“1”的值总是1。
从电路到R1CS
本部分之前先回顾一下向量的内积概念,向量的内积是从两个同维向量得到一个标量的运算,其几何意义对应了“投影”这个概念。比方说两个二维向量的乘法:
·=2×4+3×1=11
回过头看刚才的结果,因为A×B=C这个形式的存在,我们其实能够进一步的对这些等式关系进行抽象。抽象的目的是为了方便编程处理和下一步的讨论。以式子(2)为例,我们其实可以认为他是如下的形式:
根据上面介绍的向量内积,可以发现这里的A,B,C其实都是向量内积的形式:
这里的s其实就是全部的连线的值,如果证明者P是真的计算过这个电路的,则P能够获知s的值,否则P无法得知s的值。我们将这个s称为witness。因此通过上面的向量a,b,c我们就能够对s进行一定的约束,即s应该满足:
这就构成了一个一阶约束,这样的一个约束对应了电路中的一个乘法门。如果我们将所有的约束联立起来,就得到一个一阶约束系统。通过R1CS我们可以更方便的形式化描述一个零知识证明问题,从而为我们后续解决该问题提供了条件。
下篇我们会介绍如何将R1CS描述转换为多项式描述,并且通过完整的计算过程展示groth16算法的相关内容,敬请关注。
标签:ROTGRO区块链EFISafedog ProtocolAsyagro区块链证据保全怎么操作流程Mooni DeFi
11月30日,在线上直播活动上,DelandLabsWitter表示,IC是更好的web3.0和元宇宙的开发平台。首先是性能,它的查询请求大约在200毫秒左右,更新请求大概在两秒左右,数据已经非常接近于互联网体验了.
1900/1/1 0:00:00DeFi之道讯,12月5日,经济学家PeterSchiff再次回应萨尔瓦多总统NayibBukele称:“年轻人,仅仅因为你赢了,并不意味你得很好。你很幸运,但用纳税人的钱是错误的.
1900/1/1 0:00:00来源:数字法币研究社 “全球已经进入数字化高速融合发展的阶段,数字技术的作用已经被全社会广泛认同,并在金融业得到了迅猛的发展,与之前电子化、信息化、网络化相比,现已经发展到数字化和智慧化时代.
1900/1/1 0:00:00时间来到了2021年的末尾,回顾区块链世界过去一年的发展,用精彩纷呈来形容也不足为过,从DeFi的热潮到NFT席卷全球,再到现在火爆出圈的GameFi,似乎区块链技术正在逐渐“退却”,开始留下一些被大众熟知的应用或者区块链概念.
1900/1/1 0:00:00前言:隐私计算赛道作为当下的风口赛道,无数企业纷纷涌入,抢跑占道。作为一家专注于区块链隐私计算赛道科普入门的垂直媒体,同时也是针对隐私计算兴趣者开放的“纯天然”、低门槛入口,我们汇总并分类了隐私计算行业内晦涩难懂的名词,编写了「隐私计.
1900/1/1 0:00:00作者:EphratLivni原标题:《ForRulesinTechnology,theChallengeistoBalanceCodeandLaw》编译:RichardLee,链捕手大概20年前.
1900/1/1 0:00:00