Ethereum 2.0将引发加密领域的巨震。这次升级将引发的一些变化是: 向Casper协议过渡 分片 雷电网络(Raiden)状态通道 等离子体(Plasma) Raiden和Plasma是2层(Layer 2)协议,允许Ethereum以状态通道和侧链的形式进行数千笔链外交易。特别是Plasma,理论上可以让一个侧链处理数千笔交易,并只向Ethereum主区块链提交一个单一的哈希。虽然这在纸面上听起来很神奇,但这里有一个重大的问题。如果这些等离子侧链中有一些争议,用户没有一个适当的机制来有效地退出协议。 用zk-Rollups实现第2层的可扩展性和可用性。 这就是一种叫做 "zk-Rollups "的技术。通过智能整合zk-SNARKS这个隐私协议,ETH 2.0将有可能创建一个可扩展性极强的第二层,它仍然具有Ethereum所期望的安全性和数据可用性。 然而,在我们进入这个问题之前,我们先来了解一下什么是zk-SNARKS和零知识证明...... 注:我们强烈建议您在继续阅读下面之前,先阅读关于Raiden和Plasma的文章。 Zk-SNARKS:什么是零知识证明? zk-SNARKS是由Zcash--一种隐私币而闻名的隐私加密协议。它的核心在于零知识证明或ZKPs的概念。为了理解它的工作原理,让我们来看看参与证明的两方--证明者Prover和验证者Verifier。 证明者:想要证明一个假设 验证者:想要判断证明者的假设 ZKP背后的核心思想是--证明你拥有某项特定的知识,而不实际透露它是什么。例如:证明你的年龄超过了某一年龄限制,只需显示你出生年份的最后两位数字。在本质上,ZKP提出了以下两个问题。 质疑验证者的道德而不是证明者的道德。 证明者如何在不暴露给验证者的情况下保持自己知识的机密性? 解读Zk-SNARKS--零知识证明的例子 ZKP具有以下特性。 完整性。如果一个诚实的证明者能说服一个诚实的验证者,那么这个声明就是真的。 健全性:如果证明者不诚实,他们就不能欺骗验证者。 零知识性。验证者不会知道声明的真实内容。 我们来看看一些例子。 1# 色盲与苹果 请看下图,了解正常视力和色盲视力的工作原理。 我们假设一个场景,证明者的视力正常,而验证者有色盲症。前者有两个苹果--红色和绿色。验证者认为这两个苹果的颜色是一样的,而证明者想推翻这一点,却不用明确告诉他们颜色是什么。 下面是它的工作原理: 验证者把苹果给证明者看。 然后他将手藏在证明者身后,将苹果换掉或保持原样。 现在,他再次向验证者展示他双手中的苹果。 如果验证者进行了调换,证明者就能立即指出。这就证明了苹果的颜色不同。 验证者可以多次重复测试,以确保结果不是偶然的。让我们看看这如何验证ZKP属性。 完整性。因为证明者是诚实的,他们能够多次给出正确的答案。 健全性。验证者进行了多次测试,以确保结果没有任何侥幸。 零知识性。证明者从未透露过苹果的颜色。 2# 阿里巴巴的山洞 接下来,我们有一个密码学理论中最著名的ZKP例子。 在这个例子中,我们有一个证明者(P),一个验证者(V),以及一个后面有魔法门的山洞。P说他知道打开这扇神奇之门的密码。那么,在不透露密码是什么的情况下,P如何向V证明他们知道密码呢? 山洞的神奇之门里有两条路,A和B。 这时,P向V喊话,V进入山洞。 V告诉P走B路,如果P真的知道密码,他可以走任何一条路。 V重复了多次实验,以确保他们不会上当受骗。 如果P是诚实的,他走任何一条路都不会有任何问题。 所以如何满足零知识的三个特性? 完整性: 由于证明者是诚实的,他们能够多次给出正确的答案。 健全性:验证者进行了多次测试,以确保结果无侥幸性。 零知识性:P不需要透露密码到底是什么。 什么是Zk-SNARKS--使ZKP非交互 传统ZKP的主要问题之一是它是一个高度交互的系统。在我们上面向你展示的两个例子中(阿里巴巴大门和苹果),你要求证明者和验证者同时在场。你可以想象,这不是一个可扩展的技术。1986年,Fiat-Shamir启发式展示了零知识证明如何在离散对数中工作。我们将看到交互式和非交互式两种版本。 交互式 Prover P想向Verifier V证明她知道x,使得y= g^x到基数g。 P从集合Z中取一个值v,并计算t,使得,t=g^v。然后她将t发过来给V。 然后,V从同一集合Z中取出一个随机值c,并将其发送给P。 P计算出一个值r=v-c^x并发送给V。 现在,由于r= v-cx,y= g^x,通过简单的代入,g^(v-cx)* g ^ c*x = g^v = t。 所以,V会检查g^r * y^c,看是否是 "t"。 因此,在不明确知道 "x "的值的情况下,V仍然可以检查t = g^r * y^c,是否是 "t"。 因此,V就能判断P是否真实地拥有秘密信息。 上述交换满足ZKP属性,但仍需要Alice和Bob同时在场。 非交互式 那么,我们如何使ZKPs非交互式?用加密哈希函数! Prover P想向Verifier V表明她知道x,这样y= g^x到基数g。 P从集合Z中取一个值v,并计算出t,这样,t=g^v。然后她将t发过来给V。 P计算一个值c=H(g,y,t),其中H()是一个哈希函数。 最后,P计算出r = v - c*x,并将此发送给V。 每当V上线时,他们就可以检查t = g^r * y^c,或者不等于。 这种交互也是完全零知识的,但它不需要证明者Prover和验证者Verifier同时在场。这个创新是zk-SNARKS诞生的根本。 说到这里.... 究竟什么是zk-SNARKs? zk-SNARKS是 "Zero-Knowledge Succinct Non-Interactive Argument of Knowledge "的缩写。现在我们知道了zkps的理论是如何工作的,让我们把它全部弄成一个算法阵。 在我们典型的zk-SNARK中,我们有三个独特的算法。 证明者 (P): 这个算法需要三个条件作为输入 -- 证明密钥(pk), 随机输入(x), 以及他们想要证明的声明(w). 这个算法接收这些输入,并给出语句prf的证明。 验证者(V)。如果有效则返回 "true",如果无效则返回 "false"。除了prf,这个算法还接收了两个值--随机输入 "x "和验证密钥 "vk"。 密钥生成器(G)。输入一个秘密的 "Lambda "值和一个程序 "C "来生成pk和vk. lambda值必须私密保密。如果有人拿到了这个值,他们就可以用它来生成证明和验证密钥。他们可以用这个来随意建立伪造的证明。 解读Zk-SNARKs--将算法结合在一起。 程序C接收了证明者的秘密声明"w "和值x,并做了下面的函数: 那么,让我们来看看我们如何将这些东西 和我们在上一节中声明的算法和值结合起来。 验证者使用生成器G来创建证明和验证密钥。 验证者放入一个秘密的lambda值来生成这些密钥,这样G(C,lambda)=(pk,vk)。 证明者现在必须拿着pk,通过创建一个证明声明prf来证明他们声明的有效性,这样prf=P(pk,x,w)。在这里,x是w的SHA-256哈希值。 证明者将 prf 发送给验证者,验证者通过运行他们的验证算法来验证声明,例如 V(vk, x, prf)。 如果证明者是诚实的,则V返回TRUE,否则返回FALSE。否则,它将返回FALSE。 好了,现在解释了zk-SNARKS,让我们开始学习zk-Rollups。 ZK-Rollups - 介绍 在我们继续之前,我们先来了解一下Rollup的实际含义。与Plasma颇为相似,Rollup是一种第2层的扩展解决方案,其中每一个单一合约都持有一个更大的侧链状态的简洁加密承诺。用户在维护这些状态时,不会给第1层,也就是基础区块链层带来额外的压力。以太坊联合创始人认为,rollups将是将第2层功能引入Ethereum 2.0的最佳方式,因为它缓解了Plasma最重要的问题--数据可用性。 Plasma和数据可用性 给大家简单介绍一下,等离子体plasma是这样重组Ethereum区块链的: 它的想法是用Ethereum作为主要的根链, 同时从它身上衍生出几条等离子链。根链仍然没有活动,同时它将复杂的计算和功能委托给这些等离子链。 虽然这在纸面上是个好主意,但它有一个巨大的缺陷--数据可用性。 想象一下这种情况。 Alice在等离子体区块3中有1个ETH,但她在区块4中已经看不到它了。这显然意味着等离子体区块4的验证器在作恶。她立即提出争议,并向根链发送欺诈验证,根链检查她的要求是否有效。如果有,它就会回滚等离子体区块4中的数据,使其无效。 你看到这里的问题了吗? 这里有一个相当大的可用性问题。系统被等离子体块4的恶意所有者短暂地挟持了。在zk-Rollup系统中,等离子体块只会包含数据的zk证明,而不是实际数据本身。 除此以外,zk-Rollups通过将数百次转账捆绑成一次交易来提高可扩展性。它的智能合约可以分解这些转账,并在一次交易中验证所有转账。 Zk-Rollups概述 zk-Rollup方案有两个用户--交易者Transactors和中继者Relayers。 交易者 它们创建并向整个网络广播传输数据。传输的数据包括--一个索引的 "to "和 "from "地址,一个交易值,网络费用和随机数: 这些地址被存储在一个缩短的3字节的索引版本中。这减少了处理这些地址所需的处理能力。 交易值大于或小于零,表示是存款还是取款。 zk-Rollup智能合约有两个Merkle树--一个用于地址,另一个用于转账金额。 中继者 交易者负责交易和广播,而中继者主要有两个作用: 收集大量的转账和创建一个滚动rollup。 生成代表区块链状态的SNARK证明。这个证明比较了转账前后区块链的快照。只有在底层状态有任何变化时,它才会汇报一些情况。 只要在Rollup合约中锁定了股权,任何人都可以成为中继者。这确保了他们有足够的动力为网络的利益而工作。 Zk-Rollups--所涉及的数字。 Matter Labs一直在研究和记录各种zk-Rollups的实现。根据他们的测试,他们发现: 目前,在Matter testnet中,每次传输交易的公共数据成本是16个字节。 在伊斯坦布尔后的Ethereum中,费用约272个gas。 在最坏的情况下,整体证明成本可以达到1M时,zk-rollups仍然可以做到每秒2000多笔交易。相比之下,Ethereum目前每秒只能做25笔交易,而Visa每秒可以做1667笔左右的交易。 在处理大型数据集时,Zk-Rollups可以提供更高效的计算。原因是,用户只需要处理 SNARKs而不是数据本身。 ZK-Rollups的优点和缺点 优点 明显快于Plasma。 每次数据传输的gas成本显著降低。 它允许区块的并行计算,这有助于扩展性和去中心化。 每个交易只包含SNARK证明,而不是整个数据本身,这再次提升了可扩展性。 缺点 零知识证明计算是一个非常耗费资源的过程。 Zk-Rollups的初始设置可能有点中心化。 系统的整体安全性取决于一定的信任度。 注:Matter Labs指出,在ZKP上构建智能合约所需的资源已经大大减少。Rollups合约遵循与EVM(Ethereum虚拟机)相同的原则和模型。 ZK-Rollups替代方案:Optimistic Rollups Optimistic Rollup(OR)是标准zk-Rollup的替代方案,它完全消除了对零知识证明的需求。网络不需要验证和检查每一笔交易,而是假设它们都是正确的,只有当有人通过提交欺诈证明来报告错误的交易时,才允许用户进行干预。虽然OR的初始开销可能比zk-Rollups小,但它要求用户每次都要发布完整的交易输入集。另一方面,zk-Rollups要灵活得多。 Ethereum联合创始人Vitalik Buterin对这两种解决方案都非常感兴趣,称其为 "神奇"。他指出,这两种Rollups可以让Ethereum 2.0扩大支付规模,同时提供Ethereum所期望的安全性和可用性。 解读Zk-Rollups和zk-SNARKS:结论 zk-Rollups最好的地方在于它不仅仅是一个理论概念。路印Loopring最近推出的zk-Rollup交易所已经做到了每秒2500笔交易。Ethereum开发者相当自信,如果他们将rollup与sharding结合起来,可以达到2500-10000的吞吐量。 不过,在完全实现之前,这还需要大量的工作。截至目前,团队正在稳步推进。现在,我希望你们现在对什么是zk-SNARKS和zk-Rollups有了更好的了解。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 作者:Ivan on Tech 翻译:区块链Robin
BTC:1Robin84SWtzSxnU1v8CE9rzQtcfUsGeN —- 编译者/作者:区块链研究员 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
解析ETH 2.0--zk-SNARKS和zk-Rollups
2020-07-30 区块链研究员 来源:区块链网络
- 上一篇:ETSA以太星空联盟,创新全球数字经济应用生态
- 下一篇:公牛可以拯救世界吗?
LOADING...
相关阅读:
- 区块链础设施服务公司 Bison Trails 聘请前高盛副总裁担任总法律顾问2020-08-04
- Nervos选择门户钱包和社交作为首批CKLabs同类公司2020-08-04
- 安全事件频发的DeFi将要如何发展?另附稳定币链上真实流通量查询地址2020-08-04
- 卡尔达诺区块链发布后几天就看到700多个活动池2020-08-04
- 与Provided建立新的合作伙伴关系后,Chainlink价格暴涨2020-08-04