什么是zk-SNARKs

From Coda Wiki
Jump to navigation Jump to search

翻译:viboracecata@gmail.com

开始

零知识证明,zk-SNARKs,这些术语经常被用在加密货币圈,使用的场景是让交易私有化。在Coda协议的场景中,它们是我们主要创新的基石:一种小,并且体积固定的区块链。它们的起源要追溯到1985年,零知识证明第一次在文章“The Knowledge Complexity of Interactive Proof-Systems.”中被阐述。但问题却依然存在:它们到底是什么。

加密货币的中心点在于减小个人对于中心化力量和第三方中间机构的依赖。zk-SNARKs则是能将此愿景变成现实的一种创新。不过,由于zk-SNARK如此的复杂,找到清晰,可访问的资源都是一项挑战。我们组的加密工作者与工程师们编译,摘取,复核了那些可访问的资料来帮助你入门,无论你是新人还是专家。知道我们会包含哪些资料吗?让我们认识下面的这些文字章节吧。

首先,Izaak和Vanishree,我们加密学组的两位成员,它们一生致力于zk-SNARKs的学习,将会引导你从一篇介绍开始。

零知识证明:一个直观的解释

Vanishree Rao,一位在Coda协议工作的密码学工作者,提供了这篇解释,他使用了经典的三色问题来介绍关键概念,包括健壮性,零知识和验证者。文字非常直观,花少于5分钟的时间来阅读将使你得到一个良好的开端。

为固定大小的区块链使用zk-SNARKs

在篇作品中,Izaak Meckler,O(1)实验室的CTO以及联合创始人,同时也是在Coda协议工作的主要密码学工作者,提供了一个总览和介绍,里面不仅包含zk-SNAKR背后的概念,而且还有完整实际的例子来阐述他们为什么重要。

学习更多

这些是最好的入门级资源,他们让零知识证明和zk-SNARKs更加的易于理解。视觉比喻和简单解释都用来提炼和扩展上面介绍到的概念。

零知识证明的介绍

这是好的起点。首先,它有一些历史背景,解释了1985年论文“The Knowledge Complexity of Interactive Proof-Systems”的原始场景,而这篇论文正是所有事件的开端。其次,它有一个简单的,更加视觉化的阿里巴巴洞穴的传说作为例子。第三,它提供了一个漂亮简洁的摘要,包含零知识证明必须满足的三个属性:完整性,健壮性,零知识。

给5岁的你解释:零知识证明 - 万圣节版本

这个例子引用了一个有点著名的“姚氏百万富翁问题”-有两个百万富翁想在不翻看彼此储蓄金额的情况下探查到他们是否拥有同样数量的金钱-并且将场景放到了两个小孩身上(显然他们被命名为了Alice和Bob),他们想知道当他们捣蛋的时候,是否都被放入了同样数量的糖果。

[视频]零知识证明-ZPK

如果真的很在意视觉上的感知,那我们就直接去YouTube吧。这个短视频(10分钟)使用动画来演示另外一种简单的版本,在不揭示具体细节的情况下同样能证明某些东西。在这里举的例子是,有一个人,他想让他的色盲朋友确信绿球和红球之间是有差别的。视频同样讲解了交互式ZKPs和非交互式ZKPs的区别,为讨论SNARKS提供了舞台。

[视频]零知识证明

如果说上面的视频是入门级的ZKP的开端,那么这条就可以看作是进阶级的视频了。这里罗列了更多的叙述,并且有一些不同的视频例子-包括如何在不翻开卡片的情况下证明其包含特定的颜色,同样这个视频也重申了零知识证明要求的基本属性。

零知识证明:图解入门 - 1 & 2

好了,现在我们来点好东西。这两个部分来自于Matthew Green,他从一开始就在参与Zcash这个项目,并且在Johns Hopkins大学主要从事加密学研究与教授工作。第一部分说的不多。第一,它深入到ZKP的起源与背景-首先讨论了为什么我们对它感兴趣。其次,它使用了一系列真实例子来解释怎样做到这些“零知识”交互方式,包括了电信业主题版本的三色问题。第三,它介绍了额外重要的概念,像是承诺格式。第一部分是明显非技术向的,第二部分则转而将我们带到了一些技术的领域,这些技术相对还是容易理解的。

零知识证明到底是什么 & 零知识证明介绍:下一代区块链协议

现在你已经有机会去真正理解零知识证明的基本要点,并且也见到了许多不同的视觉上的类比,下面我们将介绍一些额外的概念。这两篇文章很相似,并且相互印证。虽然他们仍然很初级,但他们能将你的视角拓展到:1)交互式与非交互式零知识证明的区别。2)zk-SNARKS. 第二篇文章特别做了一个亮眼的工作,它将每一个缩写字母拆开,以每一个字母为开头来阐述和理解里面包含的概念。

零知识证明第一部分:密码学协议与他们的变种

这篇文章或多或少的重申了大量我们在上面的文章中讨论到的概念。它额外有价值的点在与给出了一个简单的zk-SNARKs定义,并且与zk-STARKs做了比较。

[视频]什么是ZK-Snarks?

现在我们从零知识证明来到了SNARKs,让我们用视频这种更加直接的方式来获取新的快速的介绍。这个4分钟的总结将会交给你一些基础,有了这些我们就能深入一些更加实质性的内容。

zk-SNARKs与zk-STARKs的解释

这篇文章来自于币安研究院,并且不仅仅只介绍了zk-SNARKs与zk-STARKs的区别。这是最简介清晰的非技术类的解释。

什么是zkSNARKs?全面的如幽灵月球般的数学导读

虽然是非技术文章,但是它用了一些数学理论来深入解释zkSNARKs。也就是说,只有当我们将上面那些有用的,简单的初始解释都理解消化之后,我们才能理解这边文章,毕竟你读了他们,就要理解他们。

为什么zk-SNARKs是区块链数据隐私的关键

至此我们已经看到了许多关于什么是零知识证明的视频解释,同样还有一些围绕zk-SNARKs概念的简单定义,这些都是我们需要理解的。我们还没有看到的是,一个简单清晰的环节来阐述为什么这些都很重要。这篇文章虽然是发布在福布斯上的,但是Samantha Radocchia阐明了这点。她给三个领域画上了线,第一是我们周围的服务收集的丰富的数据,第二是数据被猖狂的滥用以及伴随着的不安全,还有就是我们需要像SNARKs这样的隐私技术。

[视频]零知识狂想曲:不用揭示方案的证明方法

这个漂亮的谈话提及到了很多我们可以在上面的文章中找到的概念,并且给了他们简单,清晰的排序。如果你只需要一个视频将上面初级的所有东西融汇贯通,为以下更加技术向的做准备,那么这个视频就是为你打造的。

获取技术

如果你已经读到这里了,那么你就准备好获取技术了。以下内容包含“为什么”和“怎么样”,更加细致的解释了zk-SNARKs的应用,以及为什么他们在加密货币的核心任务中被寄予了厚望。

用例子来介绍zk-SNARKs

发表在ConsenSys的博客,这篇文章阐述了上面你学到的所有概念-比如验证者,证明者,和见证者-然后将他们纳入到数学框架中,这样就为从技术上理解提供了基础。甚至对于一个非技术向的听众来说,读起来依然有趣,你也能跟得上。

[视频]SNARKs的介绍

发表在DevCon 3,这个20分钟的谈话由Christian Reitweissner博士给出了SNARKs的介绍。他谈话里面有价值的点是“帧设置”。在深入这个主题之前,他解释了为什么对于区块链来说SNARKs如此重要,并且讨论了扩展与隐私。

[视频]Eli Ben-Sasson, ZCash创始科学家, zk-SNARKs联合发明人, Starkware创始人

有时你需要直接找到源头。Eli Ben-Sasson是Zcash的联合创始人,SNARKs的联合发明人,并且如你所期待的他有大量的知识可以分享。这不仅仅是一个标准的视频采访,更加是关于这个主题的入门研讨会。一旦你笑话了上面的那些内容,再来看这个视频效果会更好,但不论哪种情况,这个视频是必看的。

零知识证明, 一个棋盘游戏与抽象漏洞:我如何从头开始学习的zk-SNARKs

这篇文章来自于一位程序员,他用上面提及到的博客文章和其他一些资源,来自学怎样使用zk-SNARKs工作。他很好的结合了个人自学历程和其他一些可能会帮助到你的观点。

关于学习zk SNARKs

Zaki Manian,来自于Tendermint小组,将这些资源导读放到一起,使人们更加深入学习ZKPs和SNARKs变得更加容易。他将他建议的那些内容分门别类的组织到了不同的目录中:调查,二次算术程序,密码学配对,SNARK核心论文,和近期研究。如果我们的策展是你的初级导读,那么这篇文章就为你往更深一层提供了跳板。

Vitalik Buterin的SNARK系列

当接触到SNARK内容的时候,就是最好的时候。从2016年年底到2017年年初,以太坊创始人Vitalik Buterin写了一个系列,包含三个章节。第一篇是‘二次算术程序:从0到英雄’,挖掘了(像Vitalik做的那样)“技术背后的机器原理”,第二部分是‘寻找椭圆曲线配对’,第三部分是‘zk-SNARKs: 引擎下面的东西’。这是一个更加技术向的探讨,它构建在其他两个框架之上。这并不是让你感觉心累,这确实是很亮眼的内容。_