零常识证明的开拓(所有的软件开拓)常见的安详风险:内存污染,逻辑上的裂痕。加密的对象,没有时间的挑战都感受有隐患。新的加密的实现存在新的风险。
在这个流程图上,清晰的给出了“电路”,“R1CS”以及“QAP”的干系。一个NP问题,先拍平(Flatten)组成电路(若干个乘秘诀/加秘诀组成)。在电路的基本上,结构约束,也就是R1CS。有了一个个的约束,就可以把NP问题,抽象成QAP问题。有了QAP问题的描写,Groth16的算法就可以初始化,生成以及验证证明白。
1. zk-SNARK总体流程
原文链接如下:
最近翻到一篇19年底360安详宣布的一篇有关零常识证明安详的文章。这篇文章是Zhiniang Peng在PacSec2019大会讲话的总结。文章框架性地先容零常识证明zk-SNARK的常识,并给出了一些安详提示和思考。
设计阶段(Design) – NP问题,也就是业务的设计。
而且,从举办隐私生意业务的生意业务地点,金额,生意业务时间以及用户习惯,也可以揣度出一些有用信息。
零常识证明 – bellman源码阐明
zk-SNARK一直被诟病,就是因为需要Trusted Setup。这个初始配置涉及到工钱因素,固然可以回收MPC多方计较增强安详性,可是始终不是绝对安详。
信息泄露
整个流程从工程的角度,又可以“切分”成几个大块:
结构证明 – 提供私有/果真信息,生成证明。
开拓实现的风险
翻译QAP(Translation) – 抽象并转化成QAP问题。
验证 – 回收果真信息,验证证明。
零常识证明 – libsnark源代码阐明
其他问题
文章开头讲了讲 NIZK/zk-SNARK的根基观念,给出了zk-SNARK的事情流程图:
文章举例,Zcash中的Faerie Gold进攻。在Zcash生成commitment的时候,发送方有意回收同样的随机数(rho)发送多笔生意业务。接管者只能消费个中的一笔生意业务。Groth16颁发在2016年,2017年就大局限应用。没有获得充实的时间验证。Zcash之前有些零常识证明相关的裂痕,都是很晚才发布。文章罗列了一些之前发布的裂痕,感乐趣的小同伴可以看看。
文章最后给出了如何利用ZKP结构协议来举办数据的生意业务。对这部门感乐趣的小同伴,可以本身查察原文。
初始配置的风险
文章给出了本身的一些安详思考,并罗列了一些其他问题。
文章中也较量细心地给出了今朝zk-SNARK开拓的各类高级语言以及彼此的依赖干系。
各人可以看出,今朝,R1CS->QAP的这条链上,相对其他来说是最结实的。假如开始入门的小同伴,,可以从Zokrates/libsnark/Bellman入手:
去年7月份,袒暴露来别的一个双花的Bug:
零常识证明 – zkSNARK应用的Nullifier Hash进攻
3. 应用风险总结
零常识证明 – 深入领略ZoKrates
初始参数生成(Setup) – 生成可信参数,也就是传说中的CRS(Common Reference String)。
2. zk-SNARK的东西链
http://blogs.360.cn/post/Security-Risks-in-Zero-Knowledge-Proof-Cryptocurrencies.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。