当前位置: 主页 > 皇冠官方网 > 工程案例 » 皇冠官方网|R1CS导入导出
皇冠官方网
本文摘要:玩游戏过zkSNARK的小伙伴都告诉,网卓新闻网,R1CS是目前叙述电路的一种语言。
玩游戏过zkSNARK的小伙伴都告诉,网卓新闻网,R1CS是目前叙述电路的一种语言。目前构建zkSNARK电路的框架有libsnark(C++),bellman (Rust),ZoKrates(DSL),Circom(js)等等。
有的时候,必须将一个框架中分解的电路,引入其他框架。网络上研究了一下,找到两个有意思的项目。
1. J-R1CSJ-R1CS明确提出了一个给定RICS的格式标准。用一个json文件阐释一个电路必须的所有信息。https://www.sikoba.com/docs/SKOR_GD_R1CS_Format.pdf一个电路的R1CS主要由三部分构成:1)电路的属性叙述{"r1cs":{ "version":"1.0", "field_characteristic":"133581199851807797997178235848527563401", "extension_degree":1, "instances":3, "witnesses":5, "constraints":2000, "optimized":true} }叙述了J-R1CS的版本,椭圆曲线的属性,电路的公开发表/隐私输出的个数以及R1CS的约束个数。
2)输出叙述{ "inputs":["0","1","0","1","3","8", ...], "witnesses": ["1","1",,"243202698575991946913848952725080 8343172040488935114927077578242952867610624", ...]}输出分为两种,一种是公开发表(public input)输出,一种是隐私(private input)输出。inputs代表公开发表输出,witnesses代表隐私输出。3)约束叙述{{ "A": [[0,"2"],[-1,"6"],[5,"4"],....], "B": [[0,"5"],[-6,"3"],[3,"4"],....], "C": [[0,"3"],[-1,"2"],[-2,"7"],[3,"4"],[4,"1"]...] }}一个约束由A/B/C三个数组构成。
每个数组中的元素是一个二元组:输出的index以及输出的系数。输出的index是负数的话,代表的是公开发表输出;输出的index是整数的话,代表的是隐私输出。2. zkInterfacezkInterface更进一步,获取了多种框架下的电路的切换。
zkInterface作为“中间”模块,可以将"Frontend"的电路格式,给定到"Backend"的证明框架中。https://github.com/QED-it/zkinterface目前,zkInterface早已构建了如下的引入给定能力:总结:目前有一些零科学知识证明证明的框架,框架中的电路都由R1CS叙述电路。J-R1CS明确提出了一种R1CS电路给定的格式。
zkInterface更进一步,获取了多种框架下的电路的切换。
本文来源:皇冠官方网-www.casalillibelle.com