泓泰

零知识证明学习资源汇总

admin
零知识证明学习资源汇总-第1张-游戏相关-泓泰

零知识证【zhèng】明技【jì】术【shù】是现代密码学三大基础之一,由 S.Goldwasser、S.Micali 及 C.Rackoff 在 20 世纪 80 年代初提【tí】出。早【zǎo】期的零知【zhī】识证明【míng】由于其效率和可用性【xìng】等限制【zhì】,未【wèi】得到很好的利【lì】用,仅【jǐn】停留在理论【lùn】层面。直到近年来,零知识证明的理论【lùn】研究才开始不断突破,同时区块【kuài】链也为零知识证明创造了大展【zhǎn】拳脚【jiǎo】的机会,因而走【zǒu】进大【dà】众【zhòng】视【shì】野。

零知【zhī】识证明【míng】这项“黑科技【jì】”随着它【tā】的热【rè】度逐【zhú】渐增加,相关【guān】的学习【xí】资【zī】源也【yě】慢慢丰【fēng】富起来了。但是由【yóu】于,一方面零知识证明背后的原理颇为复杂,且内【nèi】容繁多;另一方面,针对零【líng】知识证明的学习【xí】资源质量参差不齐,尚未形成系【xì】统。因此对绝大多【duō】数读者来说,学习零知【zhī】识证明的难度【dù】依然很大。

本文【wén】收集了【le】关【guān】于【yú】零知识【shí】证明的一些学习资料(包括科普文【wén】章,论文,开源仓库及相关学【xué】习网站等),并【bìng】对这些资源进行了整【zhěng】理分析,希【xī】望能对大家有所帮助。

由于整【zhěng】理时间【jiān】有限和笔者自【zì】身知识【shí】的局【jú】限性,文【wén】章存在不【bú】足之处,欢迎纠正、补充和探讨。

1、故事中的零知识证明

初次接触零【líng】知识【shí】证【zhèng】明的小伙【huǒ】伴一【yī】定会问,究竟什么是零知识证明【míng】呢?它【tā】到底在做什么?

推荐几篇适合小白的文章:

「推荐文章一」一个数【shù】独【dú】引发的惨案:零【líng】知识【shí】证明(Zero-Knowledge Proof)推荐【jiàn】值:❤️❤️❤️❤️❤️难【nán】度值:⭐️这篇文章的作者是著名的 Ghost 和 Spectre 这两个【gè】协议的【de】创始团队的领队 Aviv Zohar。文章【zhāng】非常接地气且通【tōng】俗易懂【dǒng】,通过三【sān】个好朋友一起【qǐ】玩数独游戏的故事介绍了什么是零【líng】知识证明【míng】。原文链接【jiē】:https://medium.com/qed-it/the-incredible-machine-4d1270d7363a中【zhōng】文翻译:https://zhuanlan.zhihu.com/p/34072069另外这篇文章中引用了【le】两篇【piān】介【jiè】绍零知识证明的论文,也值得看一看。「推【tuī】荐文章【zhāng】二」How to explain zero-knowledge protocols to your children推荐【jiàn】值:❤️❤️❤️难度值:⭐️这篇来自上个【gè】世纪的文章【zhāng】,正如它的标题一样【yàng】,作【zuò】者以给孩子讲故事的口【kǒu】吻,讲了一【yī】个阿里巴巴与四【sì】十大【dà】盗【dào】的故事,这个【gè】故事后来也成为了介【jiè】绍零【líng】知识证明的经典故事。以故事的形式【shì】讲述【shù】零知识证明使【shǐ】得这篇文章理解起来也很【hěn】简单。原文【wén】链【liàn】接:http://pages.cs.wisc.edu/~mkowalcz/628.pdf「推【tuī】荐文章三」Cryptographic and Physical Zero-Knowledge Proof Systems for Solutions of Sudoku Puzzles推荐值:❤️❤️❤️难度值:⭐️⭐️⭐️如何【hé】在不泄【xiè】漏任何信息的前提【tí】下向别【bié】人【rén】证明你有一个【gè】数独问题的【de】答【dá】案呢?同样这个问题【tí】也【yě】是介绍零知识【shí】证明的经典案例。论文中提出了使用一个【gè】零【líng】知【zhī】识证明协议解【jiě】决这个【gè】问题的方案,这【zhè】篇论文【wén】相比【bǐ】较于前两篇文章【zhāng】,理论性更强一些,篇幅更长【zhǎng】,协议的介绍更为【wéi】详【xiáng】细,但总【zǒng】体来说【shuō】还算比较好理解。原【yuán】文链接:http://www.wisdom.weizmann.ac.il/~naor/PAPERS/sudoku.pdf「推荐文章四【sì】」Zero knowledge proofs: a tale of two friends推荐值:❤️❤️难度【dù】值:⭐️⭐️与前面几篇【piān】文【wén】章类似,这篇【piān】文章也是通过讲故事的形式来向读者介绍【shào】零知识【shí】证明的。文中 Prover 要向 Verifier 证明其【qí】知道魔法【fǎ】的解法。这篇文章【zhāng】篇幅较短,内容理解【jiě】起来【lái】难度较小。原【yuán】文链接:https://medium.com/hackernoon/zero-knowledge-proofs-a-tale-of-two-friends-d7a0ffac3185「推荐【jiàn】文章五」Explain Like I’m 5: Zero Knowledge Proof (Halloween Edition)推【tuī】荐值:❤️❤️难度值【zhí】:⭐️⭐️这同样是一篇【piān】讲故事的文【wén】章,哈哈~这篇文章【zhāng】讲述了一个糖果和百万富翁【wēng】的故事【shì】(Candy bars and millionaires),文【wén】章同【tóng】样【yàng】篇幅较短,内容【róng】理解起来难【nán】度较小【xiǎo】。原文【wén】链接:https://medium.com/hackernoon/eli5-zero-knowledge-proof-78a276db9eff

兴许是因【yīn】为如何【hé】解释零【líng】知【zhī】识证明的【de】问题并不简单,所以绝大部分【fèn】入【rù】门级的科普【pǔ】文章都是【shì】从讲故事开始的。

2、深入理解零知识证明

零知识证明技术【shù】涉及的知识点繁多【duō】,性【xìng】质也各不相同。了解了什么【me】是零知识证明以【yǐ】后【hòu】,就需要对【duì】零知识证明更深刻的理【lǐ】解,推【tuī】荐以下几篇零知识【shí】证明系列科普【pǔ】文【wén】。

「推荐文章六」零知识证明: 抛砖引玉推【tuī】荐值【zhí】:❤️❤️❤️❤️难度【dù】值:⭐️⭐️⭐️作者是 Zerocash 协议的创【chuàng】建【jiàn】者之一,密码学【xué】大神 Matthew Green[1]。这【zhè】两篇文章几乎涵盖了【le】学习【xí】零知【zhī】识证明【míng】原理所有的【de】基本概念,文章思路很清晰。零【líng】知识【shí】证明: 抛砖引玉第一篇【piān】文章【zhāng】主【zhǔ】要从零知识证【zhèng】明的起【qǐ】源开始讲【jiǎng】起【qǐ】,然后同样【yàng】借助了地【dì】图三染色和 “时光机”来对【duì】零知识【shí】证明进行介绍。原文链接:https://blog.cryptographyengineering.com/2014/11/27/zero-knowledge-proofs-illustrated-primer/来自 ETHFANS 的中文翻译版【bǎn】本:https://ethfans.org/posts/zero-knowledge-proofs-illustrated-primer零知识【shí】证明:抛砖【zhuān】引玉,Part-2这篇文章在第一篇的基础上,进一步对零【líng】知【zhī】识证明的三个性质【zhì】:可靠【kào】性,完【wán】整性和零知识【shí】,展开介【jiè】绍【shào】。另外还结合 Schnorr 协【xié】议介绍了【le】交互式和非交互【hù】式的概念。原文【wén】链接【jiē】:https://blog.cryptographyengineering.com/2017/01/21/zero-knowledge-proofs-an-illustrated-primer-part-2/中文翻译版【bǎn】本:https://ethfans.org/posts/zero-knowledge-proofs-an-illustrated-primer-part-2「推荐文章七」安比实【shí】验室零知识证明【míng】介【jiè】绍系列文章推【tuī】荐值:❤️❤️❤️❤️❤️难度值:⭐️⭐️⭐️这个【gè】系列【liè】的作者是【shì】安比实【shí】验室创始人【rén】郭宇,文章与以往的零知识证明科普文章的不同之【zhī】处就是它没有单独【dú】去讲解零知【zhī】识的基本原理。而且结【jié】合更多的概【gài】念【niàn】和原理,更【gèng】透彻得【dé】将零【líng】知识【shí】证明【míng】技术涉【shè】及【jí】得诸多原理逐一进行讲【jiǎng】解,文章专业性较强,还包【bāo】含了作者大量的思考,但理解起来也较为【wéi】直观【guān】易懂,非常适合想【xiǎng】要深入理解零知识证明的小伙伴。另【lìng】外这【zhè】个系【xì】列的文【wén】章还在持续更【gèng】新中。探索零知识证明系列【liè】一:初识「零知识」与「证明【míng】」作【zuò】为系列的第一【yī】篇【piān】,这篇文【wén】章首先介绍了「证明」的发展历程和「零知识」的作用,并举【jǔ】了一个地【dì】图三染【rǎn】色的例子,然后又对【duì】「信息」、「知识」和可满【mǎn】足【zú】电【diàn】路的概念展开了介绍。原文【wén】链接【jiē】:https://mp.weixin.qq.com/s/XQL_taBhPkCHGZOBc24MyQ探索零知识证明系列【liè】二:从「模拟」理解零【líng】知识证明:平行宇【yǔ】宙与时光倒流这篇文章介【jiè】绍了零知识【shí】证明中的【de】一【yī】个非常重要【yào】的概念——模拟【nǐ】(Simulator),「模拟」可以说是安全协议中核心【xīn】的【de】核心。文【wén】章【zhāng】中借【jiè】助 “平行世界【jiè】” 的假设去理解零知识【shí】读起来也非常有意思【sī】。原文【wén】链接【jiē】:https://mp.weixin.qq.com/s/5nCf0D9cyxS-uuyfDZJeCA探【tàn】索零知识证明【míng】系列三:读心术:从零知识证【zhèng】明中提取【qǔ】「知【zhī】识」零知识证明【míng】有三个重【chóng】要的性【xìng】质:可靠性【xìng】,完整性和【hé】零【líng】知识。这篇文【wén】章探讨了可靠性。文章解释了如何借助「抽取器」和【hé】时间倒流的超能力把 Alice 的「知识」完整地「抽取」出【chū】来,并可给出【chū】了一个与之【zhī】相关攻【gōng】击实例 —— ECDSA 签名攻【gōng】击。原文【wén】链接:https://mp.weixin.qq.com/s/UQlsxfHGJ5QjhGghW0C8uQ探【tàn】索零知识证明系列四【sì】:亚瑟王的「随机」挑【tiāo】战:从【cóng】交互到非【fēi】交互式零知识【shí】证明这篇文章主要【yào】在讲零知【zhī】识证【zhèng】明的信任根基【jī】——随机挑【tiāo】战【zhàn】。文章对【duì】零【líng】知识证明协议在两种不【bú】同【tóng】的形式【shì】(交互式和非交互式)下随机挑【tiāo】战的方式进行了介绍【shào】。另【lìng】外文章还【hái】对交互和【hé】非交互【hù】形式展开【kāi】了介绍【shào】。原【yuán】文链接:https://mp.weixin.qq.com/s/FPHkqwiHX8UVIIbu_PXSQw「推荐文章【zhāng】八【bā】」零知识证【zhèng】明:一个略【luè】微严肃的科普推【tuī】荐值:❤️❤️❤️难度值:⭐️⭐️⭐️⭐️邓老师【shī】这【zhè】篇“略微严肃”的科【kē】普,主要涉及两部【bù】分:1. 交【jiāo】互式证明的巨大威力;2. 零知识证明的定义和那些广泛【fàn】流传的错【cuò】误的【de】例子原【yuán】文链接:https://zhuanlan.zhihu.com/p/29491567「推荐文章九」Zero-Knowledge Proofs: A Layman’s Introduction推荐值【zhí】:❤️❤️难【nán】度值:⭐️⭐️这篇文章首先介绍了零知识证【zhèng】明【míng】协议中的三个【gè】参与【yǔ】者(Creator,Prover,Verifier)以及【jí】 Proofs 和 Verification的【de】概念,并对 zkSNARK (一类零知识证明【míng】协议)和椭圆曲线的相关资【zī】料进行了介绍。原文链接【jiē】:https://blog.aventus.io/zero-knowledge-proofs-a-laymans-introduction-7020b93beeda「推【tuī】荐文章十【shí】」白【bái】话零知识证明(一)推荐值:❤️❤️难度值:⭐️⭐️这篇【piān】来自【zì】秘【mì】猿科技的【de】文章【zhāng】通过阿里巴巴的故事引出【chū】了零知识证【zhèng】明的一些概念【niàn】,并对其【qí】进行了介绍。原文【wén】链接:https://zhuanlan.zhihu.com/p/33189921

零知识证【zhèng】明涉【shè】及很【hěn】多【duō】很有意思的思想和原理,都很值得探讨。在【zài】此不得【dé】不感【gǎn】叹于【yú】数学与密码学的精妙之处,也【yě】不得不钦佩密码【mǎ】学家们的厉害【hài】。

3、零知识证明的发展

零【líng】知识证明【míng】的研究今年来一【yī】直【zhí】有【yǒu】新的进展,密码学家们提出了各种不同【tóng】的协议,推荐两篇文【wén】章介绍零知【zhī】识【shí】证明研究【jiū】的发展过【guò】程。

「推【tuī】荐文章十【shí】一」区块链学【xué】习笔记 (1):零知识证明【míng】的江湖推荐值:❤️❤️❤️难【nán】度值:⭐️⭐️这篇文章讲了自 1895 年提出以来,零知识【shí】证【zhèng】明理论研究【jiū】的发展过【guò】程,以及 zk-SNARKs 与零【líng】知识证明技术结合【hé】起【qǐ】来的发展过程。推荐【jiàn】给想了【le】解【jiě】零知【zhī】识理论研究【jiū】的发展过程的小伙伴。原文【wén】链接:https://zhuanlan.zhihu.com/p/31651393「推荐文章【zhāng】十二」Efficient Cryptographic Arguments and Proofs – Or How I Became a Fractional Monetary Unit推荐值:❤️❤️❤️难度值:⭐️⭐️这篇文章【zhāng】来【lái】自UCL信息安全研究【jiū】人员的【de】博客 Bentham’s Gaze[2],文章介绍了自零【líng】知识证【zhèng】明提出以来【lái】,这群研究人【rén】员在理论研究上【shàng】的研究【jiū】历程及成果【guǒ】,包括知名【míng】的 bulletProof 和 zk-STARK 等。读完【wán】这篇文章相信【xìn】会对【duì】大家深【shēn】入理解【jiě】零知【zhī】识证明的诸多协议【yì】有所帮助。原【yuán】文链接:https://www.benthamsgaze.org/2019/05/22/efficient-cryptographic-arguments-and-proofs-or-how-i-became-a-fractional-monetary-unit/

零知识证明迄【qì】今为止发展【zhǎn】了三十多【duō】年,早期一直【zhí】停留【liú】在理【lǐ】论层面,直【zhí】到近【jìn】十年才逐渐取得【dé】突破。随着越来越多【duō】研究【jiū】人员的进场,相信这个领【lǐng】域未来还会【huì】有更多令人惊喜的成【chéng】果。

4、zk-SNARKs原理

作为零知识证明领域最【zuì】知名的一类协【xié】议【yì】,zk-SNARKs 的理【lǐ】论研究和【hé】应【yīng】用也【yě】最为广【guǎng】泛。推荐一些介绍 zk-SNARKs 的资料。

「推荐文章十三」V 神的【de】 zk-SNARKs 科普文章【zhāng】推【tuī】荐值:❤️❤️❤️❤️难【nán】度值:⭐️⭐️⭐️⭐️V 神的这几篇文章应该算【suàn】得【dé】上是流【liú】传最为广泛的 zk-SNARK 科【kē】普文了。不用多说【shuō】,推荐【jiàn】阅读。Quadratic Arithmetic Programs: from Zero to Hero这篇文章详细【xì】介绍【shào】了 zk-SNARKs 的实现过程。文中将 zk-SNARKs 的实现分为以下几个步骤:原文链接:https://medium.com/@VitalikButerin/quadratic-arithmetic-programs-from-zero-to-hero-f6d558cea649Exploring Elliptic Curve Pairings这篇文章介绍了椭圆【yuán】曲线配对。原文链【liàn】接:https://medium.com/@VitalikButerin/exploring-elliptic-curve-pairings-c73c1864e627Zk-SNARKs: Under the Hood这篇文【wén】章主要介绍了匹诺曹【cáo】协【xié】议。原文【wén】链接:https://medium.com/@VitalikButerin/zk-snarks-under-the-hood-b33151a013f6computational problem —> 电路电路 —> R1CSR1CS —> QAPQAP —> Linear PCPLinear PCP —> Linear Interactive ProofLinear Interactive Proof —> zkSNARK「推荐文章【zhāng】十【shí】四」zcash 官方【fāng】科普文推【tuī】荐【jiàn】值:❤️❤️❤️❤️难【nán】度值:⭐️⭐️⭐️⭐️这个系列【liè】的文章来自 zCash 官方博【bó】客。首先介绍【shào】了零知【zhī】识的基本概念以及其应【yīng】用到 zcash 中的大致思【sī】路。随【suí】后 7 篇文章分别对【duì】 7 个关键点进行了详细介绍(同态隐【yǐn】藏,多项【xiàng】式盲验证,KCA,完整的多项式盲验证,计算到多项式的转换,匹诺曹协议【yì】以及【jí】椭圆曲线【xiàn】配对),推荐给想【xiǎng】深入了解 zk-SNARKs 实现原理的小伙【huǒ】伴。原文链接:What are zk-SNARKs?:https://z.cash/technology/zksnarks/Explaining SNARKs Part I: Homomorphic Hidings https://electriccoin.co/blog/snark-explain/Explaining SNARKs Part II: Blind Evaluation of Polynomials https://electriccoin.co/blog/snark-explain2/Explaining SNARKs Part III: The Knowledge of Coefficient Test and Assumption https://electriccoin.co/blog/snark-explain3/Explaining SNARKs Part IV: How to make Blind Evaluation of Polynomials Verifiable https://electriccoin.co/blog/snark-explain4/Explaining SNARKs Part V: From Computations to Polynomials https://electriccoin.co/blog/snark-explain5/Explaining SNARKs Part VI: The Pinocchio Protocol https://electriccoin.co/blog/snark-explain6/Explaining SNARKs Part VII: Pairings of Elliptic Curves https://electriccoin.co/blog/snark-explain7/中文翻译版本链接【jiē】:https://www.jianshu.com/p/b6a14c472cc1、https://www.jianshu.com/p/92f54fc08d58「推【tuī】荐【jiàn】文章十【shí】五」Why and How zk-SNARK Works推荐值:❤️❤️❤️❤️❤️难度值:⭐️⭐️⭐️作者将其学习 zk-SNARK 的【de】经【jīng】验总结成【chéng】了一份【fèn】 PDF 文档并分成【chéng】 8 篇【piān】文章发布到了 Medium 上。与大部分的【de】 zk-SNARK 科普文不【bú】同,这个【gè】系列的【de】文章没有直接开始讲 zk-SNARK,而是从最基本的数学原理讲【jiǎng】起,讲解得非常细致,特别适合【hé】数学和密码学基础相【xiàng】对薄弱的小伙伴。原文链【liàn】接:PDF 完整【zhěng】版:https://arxiv.org/pdf/1906.07221.pdfWhy and How zk-SNARK Works 1: Introduction & the Medium of a Proof:https://medium.com/@imolfar/why-and-how-zk-snark-works-1-introduction-the-medium-of-a-proof-d946e931160Why and How zk-SNARK Works 2: Proving Knowledge of a Polynomial:https://medium.com/@imolfar/why-and-how-zk-snark-works-2-proving-knowledge-of-a-polynomial-f817760e2805Why and How zk-SNARK Works 3: Non-interactivity & Distributed Setup:https://medium.com/@imolfar/why-and-how-zk-snark-works-3-non-interactivity-distributed-setup-c0310c0e5d1cWhy and How zk-SNARK Works 4: General-Purpose Computation:https://medium.com/@imolfar/why-and-how-zk-snark-works-4-general-purpose-computation-dcdc8081ee42Why and How zk-SNARK Works 5: Variable Polynomials:https://medium.com/@imolfar/why-and-how-zk-snark-works-5-variable-polynomials-3b4e06859e30Why and How zk-SNARK Works 6: Verifiable Computation Protocol:https://medium.com/@imolfar/why-and-how-zk-snark-works-6-verifiable-computation-protocol-1aa19f95a5ccWhy and How zk-SNARK Works 7: Constraints and Public Inputs:https://medium.com/@imolfar/why-and-how-zk-snark-works-7-constraints-and-public-inputs-e95f6596dd1cWhy and How zk-SNARK Works 8: Zero-Knowledge Computation:https://medium.com/@imolfar/why-and-how-zk-snark-works-8-zero-knowledge-computation-f120339c2c55「推荐【jiàn】文章十六【liù】」 zkSNARKs in a nutshell推荐值:❤️❤️❤️难度【dù】值:⭐️⭐️⭐️这【zhè】篇【piān】文章对【duì】零知识证【zhèng】明做【zuò】了总【zǒng】结【jié】,分成四个部分:文【wén】章首先介绍了零知识证明,然后又讲【jiǎng】解了【le】zk-SNARKs 的实现,最后分析了将零知【zhī】识证【zhèng】明结【jié】合到以太坊上的作用和方式。原文链接:https://blog.ethereum.org/2016/12/05/zksnarks-in-a-nutshell/中【zhōng】文【wén】翻译【yì】版本:https://zhuanlan.zhihu.com/p/31780893编码成一个【gè】多项式问题简单【dān】随机抽【chōu】样同态【tài】(Homomorphic)编码 / 加密零知【zhī】识「推荐【jiàn】文章【zhāng】十七」Zero-knowledge proofs, a board game, and leaky abstractions: how I learned zk-SNARKs from scratch推荐值:❤️❤️❤️难度值【zhí】:⭐️⭐️⭐️作【zuò】者坚持一个观点:学习【xí】新技【jì】能的【de】一【yī】个很好的方法【fǎ】是用它建立一些东西【xī】。这篇【piān】文章就是【shì】在【zài】介绍作者【zhě】是如何【hé】通过实现一个小【xiǎo】的应【yīng】用【yòng】来学【xué】习 zk-SNARKs 的【de】。文章【zhāng】主要介绍【shào】了作者的实现【xiàn】过程【chéng】和他的思考【kǎo】,文中有【yǒu】很多好【hǎo】的经验时候大家学习。原文链接:https://medium.com/@weijiek/how-i-learned-zk-snarks-from-scratch-177a01c5514e「推荐文章【zhāng】十八」零知识【shí】证明 - 从QSP到QAP推荐【jiàn】值:❤️❤️❤️难【nán】度值:⭐️⭐️⭐️这【zhè】篇文章主要介绍了 QSP/QAP ,QAP 和【hé】 QSP 问【wèn】题类似【sì】。QAP 问题的zkSNARK 的证明验证过程和【hé】 QSP 非【fēi】常相似。对这部分感兴趣的小伙【huǒ】伴推荐读一读。原文链接:https://mp.weixin.qq.com/s/eU8mp81VhpV-g1x89-uZYA

"零知识【shí】证【zhèng】明【míng】技术就【jiù】像【xiàng】一个江【jiāng】湖,而【ér】 zk-SNARKs 是【shì】只是比较著名的【de】门派。而在这【zhè】个江湖中,还有很多其他的门派,他们【men】风格各异,使用的武器也不尽相同【tóng】。"[3] zk-SNARKs 协议涉及的技术【shù】构件很多,也较为复杂【zá】,深入学习这部分确实需要下很【hěn】多功夫。

5、零知识证明协议

零【líng】知识证【zhèng】明协议【yì】很多,每个协议的实现也各不相同,有些协议【yì】已经【jīng】应用【yòng】到了实际的领域,有些【xiē】还在探索中。推荐【jiàn】几篇介【jiè】绍不【bú】错的文章。

「推荐【jiàn】文章十【shí】九【jiǔ】」STARKs 科普推荐【jiàn】值:❤️❤️❤️❤️难度值:⭐️⭐️⭐️⭐️V 神的这个科普系【xì】列文章【zhāng】,非常详细【xì】得【dé】介绍了 STARKs 的【de】实现,分成三个部分进【jìn】行讲解。原文链接:STARKs, Part I: Proofs with Polynomials:https://vitalik.ca/general/2017/11/09/starks_part_1.html中文翻译【yì】版本:https://ethfans.org/posts/starks_part_1STARKs, Part II: Thank Goodness It's FRI-day:https://vitalik.ca/general/2017/11/22/starks_part_2.html中【zhōng】文翻译版【bǎn】本:https://ethfans.org/posts/starks_part_2STARKs, Part 3: Into the Weeds:https://vitalik.ca/general/2018/07/21/starks_part_3.html)中文翻【fān】译版本:https://ethfans.org/posts/starks_part_3_1中【zhōng】文翻译版本:https://ethfans.org/posts/starks_part_3_2「推荐文章二十」 Understanding PLONK推荐值:❤️❤️❤️❤️难度值【zhí】:⭐️⭐️⭐️⭐️这篇文章同样来自 V 神的博客,介绍了 PLONK 的工作原理。PLONK 是【shì】一【yī】种全新的零知识证明系统【tǒng】,支持通【tōng】用【yòng】或可更新的可信【xìn】设置(trusted setup),作者是 Filecoin 母公司 Protocol Labs 的研究【jiū】员 Ariel Gabizon 和以太坊隐私交易协议 Aztec Protocol 的两名研究人员 Zachary J. Williamson、Oana Ciobotaru。原文链接:https://vitalik.ca/general/2019/09/22/plonk.html中文【wén】翻【fān】译【yì】版本:https://www.8btc.com/article/486086「推荐文章二十一」Groth09 笔记推荐【jiàn】值:❤️❤️难度值:⭐️⭐️⭐️这【zhè】篇【piān】文章作者huyuguang,文中对【duì】 Groth09 论文【wén】[4]的内容进行【háng】了总结,对大【dà】家学习 Groth09 有所【suǒ】帮【bāng】助。原【yuán】文链接:https://github.com/huyuguang/zkpblog/blob/master/groth09.md「推荐文章【zhāng】二十【shí】二【èr】」 零知识证明 - Groth16 算法介绍推荐值:❤️❤️难度值:⭐️⭐️⭐️Star Li 的这两篇文章主要从工【gōng】程应用理解的角度介【jiè】绍了【le】 Groth16 算法的证【zhèng】明和验证【zhèng】过程,推荐给【gěi】学习【xí】 Groth16 算法的小【xiǎo】伙伴。原文链接【jiē】零知【zhī】识【shí】证明【míng】 - Groth16 算法介绍:https://mp.weixin.qq.com/s/SguBb5vyAm2Vzht7WKgzug零【líng】知识【shí】证明 - 有【yǒu】关 Groth16 的zk证明的理解:https://mp.weixin.qq.com/s/x1ggw3VplXAIeL87D5bUfw

对【duì】于零知识证明各个协议【yì】介绍的文【wén】章还比较有【yǒu】限,随【suí】着应用的增多,相信这方面的文【wén】章也会越【yuè】来越多。

6、零知识证明在区块链领域的应用

零知识【shí】证【zhèng】明技【jì】术是随着区块链的发展逐渐走入【rù】大众【zhòng】视野的,目前零知识证【zhèng】明结【jié】合区块【kuài】链的研【yán】究和应用也越来越多。

「推荐文章二十三」 一文读【dú】懂区块链中【zhōng】的零知识证明推【tuī】荐值:❤️❤️❤️难度值:⭐️⭐️⭐️这【zhè】篇【piān】来【lái】自【zì】BFTF技术【shù】社【shè】区联盟【méng】的【de】文章介绍了零知识证明在【zài】 zcash 和门罗币上的应用。原文链接:https://www.odaily.com/post/5133827「推荐文【wén】章二十四」How to prove that you know something, without revealing it? Zero-knowledge proofs, ZCash, Ethereum.推荐值【zhí】:❤️❤️❤️难【nán】度值【zhí】:⭐️⭐️这篇文章【zhāng】介绍【shào】了零知识证明在【zài】 Zcash 和以太【tài】坊上的应用。原文链【liàn】接:https://medium.com/hackernoon/how-to-prove-that-you-know-something-without-revealing-it-zero-knowledge-proofs-zcash-ethereum-43ce35d4d1c5「推荐文章二十五」Zero-knowledge proofs, Zcash, and Ethereum推荐【jiàn】值:❤️❤️❤️难【nán】度值:⭐️⭐️这篇【piān】文章介绍【shào】了【le】零【líng】知【zhī】识证明在 Zcash 和【hé】以太【tài】坊上的应用。原【yuán】文链接:https://blog.keep.network/zero-knowledge-proofs-zcash-and-ethereum-f6d89fa7cba8「推荐文章二十六」零知识证明 - zk-SNARK应【yīng】用场【chǎng】景分析推【tuī】荐【jiàn】值:❤️❤️❤️难度值:⭐️⭐️这篇文章介绍了零知识证明在 Zcash,Filecoin项目【mù】和 Loopring DEX 3.0 协议中【zhōng】的【de】应用。原文链接:https://mp.weixin.qq.com/s/9QccZtFcvGwne-NN4BBA5w「推荐文章二十七」Zerocoin: making Bitcoin anonymous推荐值:❤️❤️❤️❤️难度值:⭐️⭐️⭐️这篇文章介绍了 Zerocoin 协议【yì】是如何利用 zk-SNARKs 在区块链上实现匿名的。原文链接:https://blog.cryptographyengineering.com/2013/04/11/zerocoin-making-bitcoin-anonymous/「推荐文章二十八【bā】」不是【shì】程序员【yuán】也能看懂的ZCash零【líng】知识证明推【tuī】荐【jiàn】值:❤️❤️❤️难度值:⭐️⭐️⭐️这【zhè】篇文章使【shǐ】用比较【jiào】通俗易【yì】懂的语言介绍了 zCash 如何利【lì】用【yòng】零【líng】知识证【zhèng】明实现匿【nì】名交易【yì】的。原文链【liàn】接:https://zhuanlan.zhihu.com/p/24440530「推【tuī】荐文章二十九」 Monero to Become First Billion-Dollar Crypto to Implement ‘Bulletproofs’ Tech推荐值:❤️❤️❤️难【nán】度值:⭐️⭐️⭐️这篇文章介绍了 Monero 如何使用 Bulletproofs 技术实现隐【yǐn】私特性的。原文【wén】链接:https://www.coindesk.com/monero-to-become-first-billion-dollar-crypto-to-implement-bulletproofs-tech「推荐文章三十」 zkPoD:区块链,零知【zhī】识证明与形式【shì】化验【yàn】证【zhèng】,实现无中介、零信任的公平【píng】交易推荐值:❤️❤️❤️❤️难【nán】度值:⭐️⭐️⭐️这是【shì】安比实验室今年发布的基于零【líng】知【zhī】识【shí】证明的【de】公平交易协议。原文链【liàn】接:https://mp.weixin.qq.com/s/TCYDfOAle0K3D69eBm6HNw「推【tuī】荐文【wén】章三十一【yī】」 零【líng】知【zhī】识证明 - Loopring DEX 3.0推荐值:❤️❤️❤️难度值:⭐️⭐️⭐️这篇文章介绍了 Loopring DEX 3.0 协议的零知识【shí】证明部分实现原理【lǐ】。原文链接【jiē】:https://mp.weixin.qq.com/s/oTbzyqtc-TzJXbMafj28DQ

零知【zhī】识【shí】证【zhèng】明的【de】应用正在逐步增加,从最早的公链 zCash,Monero,到【dào】最近【jìn】基于以太坊平【píng】台的 zkPoD, Loopring DEX 3.0应用等,零知识证明在区块链领域【yù】的应用将越【yuè】来越多。

7、零知识证明相关的技术和漏洞分析文章

零知【zhī】识证明【míng】技术【shù】涉及的【de】知识内容很多,在实际的应用场景中,零知识证明的实现还存【cún】在诸多的挑战,协议【yì】安全,性能【néng】等等问题都有可【kě】能限【xiàn】制其发【fā】展。这【zhè】一【yī】节推荐一些技术【shù】分析和漏洞分析的【de】文章。

「推荐文章三十二【èr】」 A Marlin is One of the Fastest SNARKs in the Ocean推荐值:❤️❤️❤️难度值:⭐️⭐️⭐️⭐️这篇【piān】文章来自于博客 Bentham’s Gaze,文【wén】章观点认为 Marlin 是最快的 SNARKs 方案,并将其与其【qí】它的方案进【jìn】行了比较。原文【wén】链【liàn】接:https://www.benthamsgaze.org/2019/09/19/a-marlin-is-one-of-the-fastest-snarks-in-the-ocean/「推荐文【wén】章三十三」How to do Zero-Knowledge from Discrete-Logs in under 7kB推荐值:❤️❤️❤️难度值:⭐️⭐️⭐️这篇文【wén】章同【tóng】样来自于博客【kè】 Bentham’s Gaze,文【wén】章【zhāng】介绍了【le】Groth09 论【lùn】文中的优【yōu】化【huà】方【fāng】案。原【yuán】文【wén】链接【jiē】:https://www.benthamsgaze.org/2016/10/25/how-to-do-zero-knowledge-from-discrete-logs-in-under-7kb/「推【tuī】荐文章三十四」zkSNARK 合约「输入【rù】假【jiǎ】名」漏洞【dòng】致众多混【hún】币项目爆雷【léi】推【tuī】荐值:三星 难度值:三星 这篇【piān】文章的作者是安比【bǐ】实验室 p0n1,文章介绍了大量零知识证明项目由于错误地使用了某个 zkSNARKs 合约库,引入「输入假名 (Input Aliasing) 」漏【lòu】洞,可【kě】导致伪造证明、双花、重放等【děng】攻击行为发【fā】生,且攻击成本极低【dī】。原【yuán】文链接【jiē】:https://mp.weixin.qq.com/s/ZmpS97QOcd7vcibBFIS7Iw「推荐文章【zhāng】三十五」硬核!360高级安全专家【jiā】彭峙【zhì】酿以Zcash为【wéi】例,谈零知识性【xìng】证明的安全和隐私问题推荐【jiàn】值:❤️❤️❤️❤️难度值:⭐️⭐️⭐️这篇文【wén】章是【shì】对360高【gāo】级安全【quán】专家彭峙酿博士在 CCF 会议【yì】上【shàng】分享报【bào】告的整理。报【bào】告中介绍了比特币的隐私问【wèn】题,零知识证【zhèng】明技【jì】术,zk-SNARKs,以及多个【gè】实现【xiàn】漏洞【dòng】。报告干货【huò】满满【mǎn】。原【yuán】文链【liàn】接:https://zhuanlan.zhihu.com/p/87690026「推荐文章三十六」零知识【shí】证明中所涉及的有限域推荐值:❤️❤️❤️难度值【zhí】:⭐️⭐️⭐️⭐️有限域的计算【suàn】是实现零知识证明协【xié】议【yì】的【de】一个非常重要的环境,这篇文【wén】章对零知识证明中所【suǒ】涉【shè】及导的有限域的知识【shí】进行了【le】介绍,非【fēi】常有用。原文链【liàn】接【jiē】:https://github.com/huyuguang/zkpblog/blob/master/有限域.md

8、零知识证明开源仓库及介绍

下面介绍几个【gè】热【rè】度比较高的【de】零知【zhī】识证明实现仓库及其【qí】源码【mǎ】分析文【wén】章,很多的零知【zhī】识项目都是基于这【zhè】几个仓库的代码做的。

libsnarklibsnark 是实现一个 C++ 版【bǎn】本的【de】零知【zhī】识【shí】证明库。仓【cāng】库链接:https://github.com/scipr-lab/libsnark「推荐文章三十七」零知识证明 - libsnark源代码分【fèn】析推荐值:❤️❤️❤️难度值【zhí】:⭐️⭐️⭐️原文链接【jiē】:https://mp.weixin.qq.com/s/UHqpfl6ImVwa4HtsiksqJA「推荐文章三十八」零知【zhī】识证【zhèng】明实【shí】战:libsnark推荐值:❤️❤️❤️难度值:⭐️⭐️⭐️原【yuán】文链接:https://zhuanlan.zhihu.com/p/46477111bellmanbellman是Zcash团队用Rust语言开发的一个zk-SNARK软件【jiàn】库,实现了Groth16 算法。仓【cāng】库链接:https://github.com/zkcrypto/bellman「推荐文【wén】章三【sān】十九【jiǔ】」零知识证【zhèng】明【míng】 - bellman源码【mǎ】分析推荐值:❤️❤️难度值:⭐️⭐️⭐️原【yuán】文【wén】链接:https://github.com/zcash/librustzcash/tree/master/bellmansnarkjslibsnark 是实现一【yī】个 javascript 版本的【de】零【líng】知【zhī】识证明库,实现了【le】 Groth16。仓库链接:https://github.com/iden3/snarkjs

9、零知识证明相关学术论文

下【xià】面介绍一下零知识证【zhèng】明相关的学术【shù】论文【wén】,深入学【xué】习零知【zhī】识证明研究成果的小伙伴可以去【qù】阅读以下的【de】这些论文。

推荐值:❤️❤️❤️

难度值:⭐️⭐️⭐️⭐️⭐️

1985 年,零知识【shí】证明【míng】技术首次【cì】被【bèi】提出原文链【liàn】接:The Knowledge Complexity of Interactive Proof SystemsBulletProofGro09 提出了一种证明“向量【liàng】内积【jī】”的方法:原【yuán】文链接:https://link.springer.com/chapter/10.1007/978-3-642-03356-8_12BCC+16 找到了一种将算数电路编【biān】码为向量【liàng】的方【fāng】法,从而把电路可【kě】满足性的【de】证明转化【huà】为向量内积的证明:原文链接:https://eprint.iacr.org/2016/263BulletProof 继续改【gǎi】进了这种方案:原文链【liàn】接:https://eprint.iacr.org/2017/1066zkSNARKs with trusted setupGroth10 引【yǐn】入了【le】preprocessing的步骤,通过可信第三方生成Common Reference String来实现无【wú】交互【hù】证明:原文链接:https://link.springer.com/chapter/10.1007/978-3-642-17373-8_19GGPR13 引入了另一【yī】种算数【shù】电路编码方【fāng】式,即【jí】Quadratic Arithmetic Program(QAP),大【dà】大【dà】提【tí】升了证明【míng】的效【xiào】率:原【yuán】文链接:https://eprint.iacr.org/2012/215Pinocchio 和 Groth16 等【děng】是【shì】在此【cǐ】基础【chǔ】上的改进【jìn】:原文链接:https://eprint.iacr.org/2013/279原文链接:https://eprint.iacr.org/2016/260Ligero: Lightweight Sublinear Arguments Without a Trusted Setup原文链接:https://acmccs.github.io/papers/p2087-amesA.pdfPLONK原【yuán】文链接:https://eprint.iacr.org/2019/953Marlin原【yuán】文链接【jiē】:https://eprint.iacr.org/2019/1047.pdfSonic原文链接:https://eprint.iacr.org/2019/099Libra原文链接:https://eprint.iacr.org/2019/317Hyrax原文链接【jiē】:https://eprint.iacr.org/2017/1132.pdfzk-STARKs原文链接【jiē】:https://eprint.iacr.org/2018/046

10、零知识证明推荐学习网站

awesome-zero-knowledge-proofs推【tuī】荐值:❤️❤️❤️❤️这【zhè】是一【yī】个【gè】 Github 仓库,收录了【le】一系列零知识证【zhèng】明的学习资料链接:https://github.com/matter-labs/awesome-zero-knowledge-proofsZero-Knowledge Proofs推荐值【zhí】:❤️❤️❤️❤️这个网站也收【shōu】录了一系列零【líng】知识证明的学习【xí】资料,相对来说学术性更强【qiáng】一【yī】些【xiē】。链接:https://zkp.sciencezkproof推荐值【zhí】:❤️❤️❤️❤️ZKProof.org 是为规范零知识证明的使用【yòng】而形成的一【yī】个【gè】组织,它的网【wǎng】站上有大量关于【yú】零知识证【zhèng】明的资料。链接:https://zkproof.org/benthamsgaze.org推荐值:❤️❤️❤️这【zhè】是一个来自UCL信息安全研究人员组成的【de】团【tuán】队的博客,它的博客【kè】上会【huì】经【jīng】常发布一些【xiē】零知识证明的【de】文章。链接【jiē】:https://www.benthamsgaze.org

参考文献

[1] https://isi.jhu.edu/~mgreen/

[2] https://www.benthamsgaze.org/about

[3] https://zhuanlan.zhihu.com/p/31651393

[4] https://link.springer.com/chapter/10.1007/978-3-642-03356-8_12

[5] https://github.com/matter-labs/awesome-zero-knowledge-proofs

[6] https://zkp.science/

[7] https://zhuanlan.zhihu.com/p/89386868?utm_source=wechat_session&utm_medium=social&utm_oi=26765481213952

来源:安比实验室

标签: #dnfsx3178