Groth16和Spartan是什么关系?
网站安全 admin 发布时间:2023-11-27 19:35:06 浏览: 次
1.Spartan 和 Testudo 都是与Groth16一样,都是一个zkSnark的证明系统,只是他们更加高效。
Spartan中关于data-parallel的逻辑在代码中也写的很清楚。在做第三次Sumcheck和最终GKR的时候有个并行处理(for循环处)。
Groth16也好,Spartan也好都是一个证明系统,只是里面的算法不同,都是已经把Setup,Prove,Verify这3个主要算法都是封装好了。
Zebra也是调用这些方法而已。
2.您的论文,简称Vote,是一个投票系统,关于可验证这个属性的时候用到了zkSnark的证明系统。其他属性比如去中心化,隐私性跟Spartan就没有什么关系了。
如果Vote想要借鉴Zebra的方案,那么直接采用Zebra的方案测试就行。只是把Spartan里面的几个重要的参数确定好即可。
let num_constraints = 1 << 3;
let num_witness = 1 << 2;
let num_inputs = 6;
let num_copies = 4;
这几个参数应该跟Statement有关,但是我还不知道如何根据陈述来确定这些参数。您的论文里面的Statement=(CTi,SNi),是一个密文。
3.关于聚合,因为整个的prove,verify过程都已经交给zkSnark系统,因此还需要我们聚合什么?Proof,Witness,Statement?
您的论文里面有聚合的过程,是把每个投票者的投票信息进行聚合,也就是密文聚合。从密文就是陈述的角度来看我们只要根据陈述确定Spartan
的那几个参数,然后跑一遍Spartan就可以了。
相关推荐
-
无相关信息