http://www.7klian.com

零常识证明 R1CS导入导出

      “version”:”1.0″,
      “optimized”:true
      “witnesses”:5,
  “A”: [[0,”2″],[-1,”6″],[5,”4″],….],
}

2. zkInterface

  8343172040488935114927077578242952867610624″, …]

一个约束由A/B/C三个数组构成。每个数组中的元素是一个二元组:输入的index以及输入的系数。输入的index是负数的话,代表的是果真输入;输入的index是整数的话,代表的是隐私输入。

}

总结:
https://www.sikoba.com/docs/SKOR_GD_R1CS_Format.pdf
输入分成两种,一种是果真(public input)输入,一种是隐私(private input)输入。inputs代表果真输入,witnesses代表隐私输入。

玩过zkSNARK的小同伴都知道,R1CS是今朝描写电路的一种语言。今朝实现zkSNARK电路的框架有libsnark(C++),bellman (Rust),ZoKrates(DSL),Circom(js)等等。有的时候,需要将一个框架中生成的电路,导入其他框架。网络上研究了一下,发明两个有意思的项目。
} }
  “witnesses”: [“1″,”1”,,”243202698575991946913848952725080
“r1cs”:{
今朝有一些零常识证明证明的框架,框架中的电路都由R1CS描写电路。J-R1CS提出了一种R1CS电路导出的名目。zkInterface更进一步,提供了多种框架下的电路的转换。

1)电路的属性描写
今朝,zkInterface已经实现了如下的导入
导出本领:

  “inputs”:[“0″,”1″,”0″,”1″,”3″,”8”, …],
  “C”: [[0,”3″],[-1,”2″],[-2,”7″],[3,”4″],[4,”1″]…]
https://github.com/QED-it/zkinterface
      “instances”:3,
1. J-R1CS
{
      “extension_degree”:1,
2)输入描写
 {
      “constraints”:2000,
一个电路的R1CS主要由三部门构成:
  “B”: [[0,”5″],[-6,”3″],[3,”4″],….],
  }
3)约束描写
描写了J-R1CS的版本,,椭圆曲线的属性,电路的果真/隐私输入的个数以及R1CS的约束个数。
{
{

      “field_characteristic”:”133581199851807797997178235848527563401″,
J-R1CS提出了一个导出RICS的名目尺度。用一个json文件表述一个电路需要的所有信息。

zkInterface更进一步,提供了多种框架下的电路的转换。zkInterface作为“中间”接口,可以将”Frontend”的电路名目,导出到”Backend”的证明框架中。

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