未来10年Web3/区块链最重要的解决方案之一,花10分钟了解一下?
原文标题:Zero-Knowledge Proofs
原文作者:Mark Bissell and CMS Intern
编译:火火 转载自白话区块链
零知识 (ZK) 证明就像三箭资本的 Su Zhu 和 Kyle Davies一样,他们出生于上世纪八十年代,但直到最近才成为热门话题。
你可能听说过很多关于它们的信息,但ZK证明到底是什么?
你也许了解了基础知识,但想知道使用 ZK 证明最有前途的项目是什么?
现在就让我们通过ZK证明的概述、应用项目和底层技术来回答这些简单又复杂的问题。
01 概述
1.什么是 ZK 证明?
ZK 证明使用密码学允许某人(证明者)向其他人(验证者)证明事实是百分百真实的,但除了特定真实性的陈述之外,不会透露任何额外信息。即能保守秘密,又能让人相信你。
另一个比较通俗的定义是:ZK证明本质上是让某人证明他们知道或拥有某些东西,而不会泄露他们知道或拥有什么的任何信息。
也许举几个例子会更有助于理解:
可以使用 ZK 证明来证明我拥有某个 NFT 的事实,而无需透露我拥有哪一个、购买时间或所花金额。
可以使用 ZK 证明来证明将Token从账户 A 发送到账户 B 的以太坊交易的有效性,而无需透露任一账户的Token余额或发送的金额。
ZK 证明在1985 年 MIT 的一篇研究论文中第一次出现。像许多技术一样,ZK 证明首先引起了大量理论论证,然后在进一步发展和完善后逐渐找到实际运用。
最早的 ZK 证明是交互式的。为了证明某事,你必须和验证者玩一个问答游戏。就像测谎仪测试——验证者不断对证明者所拥有的“知识”进行一系列提问。通过不停的提问,让验证者相信证明者的确知道这些”知识”。但是这样的方法并不能使人相信证明者和验证者都是真诚的,因为两者可以提前串通,以便证明者可以在不知道答案的情况下依然通过验证。
后来发展到非交互式的。非交互式是证明者现在可以生成一个东西,一段数据,作为他的 ZK 证明提交给验证者,而无需多轮沟通。这种ZK 证明不太像游戏/仪式/协议,而更像是可以由证明者生成并提交给验证者的不可伪造物品,避免了证明者和验证者串通的可能性。
2.ZK 证明有什么用?
目前ZK证明有两个主要的用途:
-
隐私:在区块链上进行活动时尽量减少公开的数据量。Zcash就是一个很好的例子:
与比特币一样,Zcash 交易数据需要发布到公共区块链;但与比特币不同的是,Zcash 提供了机密交易和财务隐私的选择,利用零知识证明允许在不透露发送者、接收者或交易金额的情况下验证交易。
其他利用 ZK 证明保护隐私的项目有Iron Fish、World coin和前两天被监管的Tornado Cash。
-
可扩展性:允许在链下执行密集计算,使成本更低,然后创建一个简洁的证明,表明计算是被诚实执行的,可以在链上发布。
链上和链下各司其职,变得专业化,专注于他们最擅长的事情。我们可以使用集中式、高性能、脱链系统快速有效地处理一大堆交易,然后使用去中心化、不可变、去信任的区块链作为记录谁拥有什么的最终事实来源。
ZK 证明相对于所有链下交易的有效性证明而言计算起来非常小,并且验证速度非常快。这要归功于一个几乎神奇的属性:一旦他们创建了一个证明说“是的,这数十亿次计算都被 100% 证明是正确的”,验证者可以确认证明是正确的,而无需自己再进行数十亿次计算。
有很多 ZK rollup 项目专注于可扩展性,还有一些项目希望同时提供隐私和可扩展性,包括Aztec和Espresso Systems 。
3.炒作
ZK 证明是一种通用技术。过去的几次区块链牛市无疑推动了对 ZK 研发的投资,但 ZK 证明的第一个实际应用出现在中本聪发布比特币白皮书之前。链下世界中有许多令人兴奋的ZK证明应用——比如身份管理、最低年龄验证、匿名凭证、金融资产的评级和风险评估以及数字投票。
对于链上和链下应用程序的所有ZK证明炒作,如果能够推动技术向前发展出新的用途,那是一件好事。但是这种期望是周期性的。当ZK证明被炒得火热的时候,人们给予大量关注,但是当意识到技术也不是100%完美的时候,人们的情绪不可避免地会变得冷淡。
02 应用项目
1.用户视角下的ZK Rollups
前面已经提到了 ZK-rollups 如何运作的:它不需要在以太坊上运行缓慢且收费昂贵的计算,而是在链下进行这项工作(即在第 2 层(L2)区块链上):创建一个证明说你诚实地进行了所有交易,然后在以太坊上发布证明。
这对用户来说实际上是什么样的呢?
首先,你找到一个你感兴趣的 ZK rollup 项目。每个项目都有自己独立的应用程序和项目生态系统,所以找一个你喜欢的 DeFi 或 NFT 协议。
假设 L2 在其 L1 结算层使用以太坊。它将在L1以太坊上拥有一个或几个智能合约,这些合约可以完成一些重要的工作:
存储有关 L2 链上正在发生的事情的所有相关数据(账户余额等)。该合约可能不会看到 L2 块的实时视图,因为 L2 交易在被提交到以太坊上的汇总中之前不会被视为官方交易;
检查托管证明以确保它们是合法的代码。当汇总提交到以太坊时,验证者智能合约会确保汇总的证明有效,然后再在 L1 上正式发布。
也许一些类比可以让你更好理解:验证者就像保镖一样,确保来自 L2 的汇总在进入以太坊之前是有效的。或者,在 L2 上产生的区块就像是发表一些关于我有独立科学论文的粗略声明,然后被验证者检查并提交到以太坊就像是经过同行评审并在受人尊敬的期刊上发表。
这听起来好像并不是很简单,但了解ZK rollup架构的基础知识是理解ZK rollup项目交互的关键基础。基本的用户流程可能如下所示:
(1)向rollup项目在以太坊上的智能合约发送一些 ETH,用于存储/锁定您的资金。
(2)短暂延迟后,L2 链会收到您已锁定这些资金,并会解锁等值的硬币供您在 L2 上使用。这是一个非常典型的桥接体验。
(3)您可以在 L2 上随意使用您的Token。你可以交换,投资,或者用来购买 NFT。然后定期(通常以分钟为单位)将rollup发送到以太坊,表示你在 L2 上最近发生的所有活动都已经完成。
(4)现在您决定要将资金提取回以太坊,因为您在 L2 赌场玩得很开心,但现在您想将筹码(L2 上的硬币和Token)兑现为真钱(ETH 和 L1 Token)。为此,您将 L2 Token发送到 L2 链上的销毁地址,并等待证明该行动的rollup汇总在以太坊上发布。发布完成后,您被锁定在以太坊智能合约中的资金就会被解锁,返回到您的钱包。
2.ZK rollup VS. Optimistic rollups
本篇文章不会详细介绍ZK rollups 和 Optimistic rollups,因为有很多文章对此进行比较,但这里有一句话总结:Optimistic rollups 对发布到 L1 的交易采取“在被证明有罪之前是无辜的”的方法(默认情况下,所有交易都被认为是有效的,但是任何观察到错误 rollup 的人都可以将其调回并获得奖励),而 ZK rollups,正如我们已经可见,在进入L1之前都被认为不可信,要求所有链下计算在进入 L1 之前使用有效性证明来验证自己。
每种方法都有利有弊,但 ZK rollups 的一个主要好处是用户可以更快地将资金提取到 L1。在从Optimistic rollups中提款后,必须等待挑战期到期(大约 7 天)才能解锁资金,因为需要等待被验证。
不过V神长期看好 ZK 路线:
总的来说,我自己的观点是,在短期内,Optimistic rollups可能会在通用 EVM 计算中胜出,而 ZK rollups可能会在简单的支付、交换和其他特定于应用程序的用途中胜出,但在随着 ZK-SNARK 技术的改进,中长期 ZK rollups将在所有用途中胜出。
—维塔利克(2021 年 1 月)
3.Rollups vs. Validiums vs. Volitions
另一种类似rollup的扩容解决方案是validiums。
Volitions是混合扩容解决方案,让用户能够在“zk rollup模式”和“validium 模式”之间进行选择。
当ZK rollups发布到 L1 上时,它既包括证明L2 上的所有活动都是合法的,也包括自上次汇总以来 L2 上账户余额所有变化的情况。这一点至关重要,因为当您想从 L2 中提取资金时,您需要之前的情况来说明“这是我在 L2 上所做的,这意味着我应该能够提取特定数量的硬币和Token。”
还有一种叫做validium的东西,它算是另一种类似rollup的扩容解决方案。
Validiums 的工作方式与传统的ZK rollups几乎相同,并且它们具有更便宜和更具可扩展性的额外好处。
不过问题是,不够安全。
在 L1 上发布的 Validiums 不包括在 L2 上拥有资金的所有数据——即将资金提取到以太坊上的数据也是未知。相反,数据存储在链下。如果信任存储该数据的个人/网络/公司,这不是问题,但最好确定他们绝对是可靠的。因为如果你在 L2 上存储了 100 万美元,然后存储这些数据的项目方被黑客入侵并丢失了数据,或者被政府冻结,或者因为你在 Twitter 上说了愚蠢的话而对你进行惩罚,那么你可能会失去你的钱…
或者,更准确地说,它被锁定了。
有机会在这里用一句精辟的“不是你的钥匙,不是你的硬币”类型的口头禅,来传播对有效性潜在风险的认识,但我能想到的最好的办法是“如果数据不可用,你的硬币就是可攻击的”。因此,项目最好能够很好地跟踪他们的汇总数据。
而某些项目正在使用volitions混合扩容解决方案,让用户能够在“zk rollup模式”和“validium 模式”之间进行选择。这也被宣传为两种选择之间的折衷方案——项目将它们吹捧为“拥有你的蛋糕并吃掉它”或“世界上最好的”的一种方式。因此了解 rollups 和 validiums 之间的区别很重要。当 L2 向 L1 链提交证明时,它们允许用户选择取款所需的数据是否也发布在 L1 上,或者是否存储在其他地方。
总的来说,Validiums 比 ZK-rollups 便宜,但让你的资金在 L2 上有冻结的风险。那些用volitions的项目会让你在Validiums 还是 ZK-rollups之间进行选择 。
4.ZK项目
使用 ZK 技术的项目太多了,无法一一列出,但这里有一些主要类别和项目。
(1)zkEVM
在过去的一个月里,几个不同的项目都通过推出所谓的zkEVM登上了头条。这些协议之间的竞争被称为“ zkEVM 战争”和“ ZK Rollup Race ”,人们很快就发现,每个协议都声称已经击败了其他协议:
三个主要参与者是Scroll 、Matter Labs (zkSync 的创建者)和Polygon 。
zkEVM 很重要,因为它们允许 ZK rollups 支持比目前更多的应用程序。第一波 ZK rollups允许在超级可扩展且廉价的 L2 上执行基本操作——比如发送 ETH 和转移Token。但是使用 zkEVM,开发人员可以编写任意复杂的智能合约代码并将其部署到 ZK 驱动的 L2 上。最重要的是,他们可以使用他们在以太坊本身上使用的相同的 Solidity 代码来做到这一点。这意味着 ZK-rollup L2s 现在可以发展成为疯狂、复杂、可组合的狂野西部链,既充满了机遇但是也充满了混乱。
(2)Polygon
Polygon正在构建真正数量惊人的缩放解决方案。老实说,很难跟踪它们。他们被描述为“瑞士军刀的缩放”,大概是基于这个模型:
这是他们目前的产品线,其中四个提到了ZK证明(包括上文提到的zkEVM):
每个项目的更多信息都可以在他们的网站上找到,Polygon的文档非常好,所以在这里就不重复细节。
(3)StarkWare
StarkWare是一家构建 ZK 扩展技术的公司,由真正的 ZK 巨头 Eli Ben-Sasson 创立。Eli 共同发明了 STARKs(一种高级的 ZK 证明),并且是 Zcash 的创始科学家。他们有两个主要产品:
StarkEx:允许每个应用程序构建自己的个人、许可的 ZK 系统。例如,dYdX(一个Layer 2 上运行的去中心化的智能合约交易平台)和 Immutable (第一个 Layer 2 的 NFT 交易平台)已经使用 StarkEx 分别为永续交易(永续交易类似于股票,只要这只股不退市,您可以一直持有)和 NFT 建立了自己的特定应用 ZK 项目。但是这些应用程序是孤立的——项目之间没有可组合性,因此一个 StarkEx 项目不能直接与另一个项目“对话”。
StarkNet:一种更新的产品,类似于通用区块链。任何开发人员都可以创建智能合约并将其部署在 StarkNet 上——它是无需许可的,例如 StarkEx。项目之间是完全可组合的,所有交易都在以太坊上汇总和结算。我怀疑你很快就会听到很多关于 StarkNet 的消息,因为它的Token计划在 9 月推出
免责声明: 如有关于作品内容、版权或其它问题请于作品发布后的30日内与我们联系。