这段时间接着第二阶段的zkp学习,也仅仅是看过,离明白,能用还有很远的距离,做一个自己的总结,对知识进行梳理:
1、首先学习Fiat-Shamir变换来对比非交互式零知识证明和交互式零知识之间的的区别-通过引入第三方来建立信任根基,变换本身并不是真正的NIZK,存在安全反例和隐患
2、NIZK系统采用的“公共参考字符串”(CRS)建立信任根据,产生 CRS 的过程也被称为"Trusted Setup"
3、P-NP问题的区别,P问题验证过程中verifier并没有获得额外的信息就可以解出问题,也就是没有获得知识(witness),而NP问题verifier可以在多项式时间内去验证答案的原因就是获得了知识(witness)。
4、举了一个NP-Complete 问题-哈密尔顿环路问题 的NIZK化方法,提出了(Hidden Bits)的概念,通过Trapdoor Permutation,陷门置换算法使Prover无法对CRS进行作弊生成,也使得Verifier无法提前获得所有加密的CRS中的Hidden Bits,从而建立起CRS的可信第三方可信任根基
5、最后是NIZK Arguments,通过降低一些proof的可靠性,而大大提升了零知识的安全性,从而降低Verifier通过算力提升破解密文的可能性,是zkSnark的理论基础,
完毕🤣