blocksight
在任意的零知识证明系统中,都有一个 prover 在不泄漏任何额外信息的前提下要让 verifier 确信某些陈述(Statement)是正确的。ZK-SNARK目前应用较多,有不少成熟的库,如libsnark,bellman等.
与上一篇初步方案相比,Kate承诺实现了多项式的隐藏和部分打开验证,实际上方法1生成的结果在zk-snark项目中称为SRS(structure reference string)或者CRS(common reference string),是承诺方P和验证方V所共有,实际选择曲线配对不是对称的,而是非对称两个群,以后说到具体的项目代码可以看得比较清楚。
目前为止的方案中, 承诺方造假的问题依然存在,仔细研究会发现问题关键在于承诺方P知道计算的输入变量r,z, 这样就有机会构造出新的多项式在r,z处取特定的值。如果P不知道r,z,就不能这样作弊了。于是Kate承诺选择在密文空间中进行计算。