从零开始学习 zk-SNARK(五)——Pinocchio 协议 2020-01-22 Zero Knowledge Proof zkSNARKs 约 6937 字 预计阅读 14 分钟 作为本系列的最后一篇文章,本文继续对 zk-SNARK 协议进行完善,最终形成一个完整的 zk-SNARK 协议。 阅读全文
从零开始学习 zk-SNARK(四)——多项式的约束 2020-01-15 Zero Knowledge Proof zkSNARKs 约 9531 字 预计阅读 20 分钟 上一篇文章中我们学习了如何将程序转换为多项式进行证明。到这里似乎已经有点晕了,本文将对协议执行进一步的约束,并对协议展开优化。 阅读全文
云中「秘密」:构建非交互式零知识证明 2020-01-08 Zero Knowledge Proof 约 14235 字 预计阅读 29 分钟 之前我们介绍了如何采用「随机预言机」来扮演一个虚拟的「第三方」角色,实现虚拟的「交互」与「随机挑战」。本文将深入讲述另一种方法实现非交互式零知识证明,即如何通过一段共享的字符串去除「交互」与「隐藏随机性」。这个字符串必须事先由「第三方」来随机产生,这就是传说中的「公共参考串」(Common Reference String,简称 CRS)。 阅读全文
从零开始学习 zk-SNARK(三)——从程序到多项式的构造 2020-01-08 Zero Knowledge Proof zkSNARKs 约 8937 字 预计阅读 18 分钟 前文主要介绍了如何构造多项式的零知识证明协议,现在将开始探讨如何构造更通用的协议。本节主要是讲如何将一组计算的证明转换为多项式进行证明。本文重点主要包括:多项式的算术性质,多项式插值等。 阅读全文
零知识证明 Learn by Coding:libsnark 入门篇 2020-01-03 Zero Knowledge Proof zkSNARKs 约 6611 字 预计阅读 14 分钟 希望通过本系列文章,所有开发者都能亲自上手实践,在短时间内迅速入门 libsnark,一步步了解 libsnark 的基本概念,学会如何开发 zk-SNARKs 电路,完成证明的生成和验证,最终将零知识证明应用到真实业务中去。 阅读全文