查看原文
其他

V神主张:我们应挑战加密技术的极限以塑造未来协议(解读加密技术的最新发展)

Meta Space DAO Meta Space DAO 2024-04-18
点击蓝字 关注我们

以太坊共同创办人Vitalik Buterin呼吁,人们需要有能达到加密技术极限的协议。

本文源自DeThings的文章《Vitalik Buterin香港Web3嘉年华演讲实录:Reaching the Limits of Protocol Design

wublockchain整理、撰稿

2024香港Web3嘉年华期间,以太坊共同创办人Vitalik Buterin在由DRK Lab 主办的Web3学者峰会2024上发表主旨演讲《Reaching the Limits of Protocol Design》


以下是DeThings带来的中文现场实录,略有删减:

在过去10 年中,我们用来建构协议的技术种类发生了很大变化。当比特币在2009 年诞生时,它实际上使用的是非常简单的加密技术,在比特币协议中你看到的唯一密码学类型是杂凑和椭圆曲线ECDSA 签名,还有工作量证明(Pow) 。


工作量证明只是另一种使用杂凑的方式。如果你看看在2020 年代用于建构协议的技术类型,你会开始看到一种更复杂的技术集合,这些技术真正出现仅在过去10 年。


这些东西确实已经存在了很长时间,所以从技术上讲,我们已经有PCP 定理几十年了。自从2009 年克雷格・根特里(Craig Gentry) 的发现以来,我们就拥有了完全同态加密。几十年来我们一直拥有混淆电路(garbled circuits),这是一种双方形式的计算。但是理论上存在这些技术和实践中存在这些技术是有区别的。


实际上,我认为区块链领域本身就有很大的功劳,它实际上带来了大量的资源,把这些技术带到了你可以在常规应用中使用它们的阶段。


2020 年代建构区块链时,假设杂凑值和签名就是你所拥有的一切。而在2020 年代建构的观察协议,从一开始就将所有这些东西视为关键组件。


ZK-SNARKs 的重大改进

ZK-SNARKs 是这里的第一件大事。ZK-SNARKs 是一种技术,可以证明你进行了计算,并从计算中获得了一些输出。你可以用这样一种方式来证明:验证的速度比你自己运行计算要快得多。你还可以在不透露原始输入资讯的情况下验证证明。


2010 年的zK-SNARKs (理论阶段) 和2016 年的ZK-SNARKs (在当年12 月推出的Zcash 协议中首次使用),与现在的zK-SNARKs 相比,差别实在太大了,对吧?


因此,很多这些较新形式的加密技术,都是从几乎无人知晓的东西到小众兴趣再到主流,再到如今几乎成为默认设定。在过去十年中,这些东西发生了巨大的变化和改进。


因此,Z-SNARKs 在隐私方面非常有用,在可扩展性方面也非常有用。区块链有什么作用呢?区块链给你带来了很多好处,它们给你带来了开放性,它们给你带来了免许可访问,它们给你带来了全球可验证性。但所有这些都是以牺牲两件大事为代价。


牺牲隐私与扩展性

一个是隐私,另一个是可扩展性。ZK-SNARK 给你隐私以及可扩展性。


2016 年,我们看到了Zcash 协议。之后,我们开始在以太坊生态系统中看到越来越多的东西。如今,几乎所有东西都开始使用zkSNARK、多方计算和全同态加密。


如今,人们对这些东西的了解少于zkSNARK,但有某些类型的事情是无法用ZK-SNARKs 完成的。比如隐私计算,在人们的私有资料上运行。


投票实际上是一个大的使用案例,你可以通过zk-SNARKs 获得一定等级的隐私性。但如果你想获得真正最好的属性,那么你必须使用MPC (多方计算) 和FHE (全同态加密)。许多加密AI 应用最终也使用MPC 和FHE,这两者都是在过去十年中效率急剧提高的原语。


BLS (Boneh-Lynn-Shacham,聚合签名) 是一种有趣的技术,它基本上允许你从大量不同的参与者那里获取一大批签名,潜在的可能有数万个参与者,然后像验证单个签名一样快速地验证那个组合签名。

这个功能非常强大。BLS 聚合实际上是以太坊现代权益证明共识的核心技术。如果你看看在BLS 聚合之前建立的权益证明共识,很多时候演算法往往只能支援几百个验证者。在以太坊中,目前大约有30,000 个验证者,每隔12 秒提交一次签名。之所以能做到这一点,是因为这种新形式的加密技术在过去5 到10 年间才真正最佳化到足以使用的程度这些新技术让很多事情成为可能”。


它们正在迅速变得更加强大。今天的协议大量使用了所有这些技术。我们确实经历了从专用密码学到通用密码学的重大转变,从要建立新协议就必须自己了解密码学如何工作的密码学,到要为专用应用程式建立专用演算法的通用密码学。以前你必须为一种特殊用途的应用建立一种特殊用途的演算法,而现在,你甚至不需要成为一名密码学家,就可以建立一种使用我在过去5 分钟里谈到的东西的应用。


你只需编写一段程式码,在Circom 中编写一段程式码,然后Circom 将其编译成验证器和校验器,你就拥有了一个zk-SNARK 应用程式。这里的挑战是什么?本质上,问题是我们在过去10 年中已经走得很远了。还剩下什么?我们今天的这些技术与理论理想之间的差距是什么?我认为这正是研究人员和学术界人士可以大有作为的关键领域。


我认为目前的两大问题基本上是:一个是效率,另一个是安全。现在还有第三个问题,可以说是扩展功能。


例如,我们还没有真正掌握的一项技术就是无差别混淆技术。如果我们能有一种可行的演算法,那就更了不起了。但实际上,我认为提高效率和提高我们今天所拥有的东西的安全性更为重要”。


让我们来谈谈效率。让我们举一个具体的例子,那就是以太坊区块链。在以太坊中,插槽时间是12 秒。一个区块和下一个区块之间的平均时间是12 秒。正常的区块验证时间,即任何一个以太坊节点验证一个区块所需的时间,约为400 毫秒。


现在,zk-SNARK 验证一个普通以太坊区块所需的时间约为20 分钟。这个时间改进得很快,一两年前是5 个小时。现在20 分钟已经是平均值了,对吧?仍然存在最坏的情况。举个例子,如果你有一个以太坊区块,整个以太坊区块都在进行zk-SNARK 计算,那么它的证明时间就会超过20 分钟。


不过,与两年前相比,我们还是走得更远了。现在的目标是什么?目标就是即时证明,目标是当一个区块被建立时,在下一个区块被建立之前,你就能得到该区块的证明。


当我们有了即时证明,我们就有了什么?基本上,世界上每一个以太坊使用者都可以轻松成为以太坊协议的完全验证使用者,但拥有以太坊节点的人却很少。实际上,一个存档节点需要2 TB,你可以这么做,但效率很低。如果我们能让每一个以太坊钱包,包括浏览器钱包、手机钱包,包括其他链上的智能合约的轻量级钱包,都能真正完全验证以太坊共识规则呢?


一些人实际上并不信任Infura。它们甚至不信任以太坊的权益证明验证器,而是直接验证规则,直接确保以太坊区块的正确性。我们如何用ZK-SNARK 做到这一点呢?要想真正做到这一点,zK-SNARK 证明需要是即时的,但需要有一种方法让任何以太坊区块都能得到证明,可能在5 秒钟之内。


问题是,我们能到达那里吗?现在,MPC 和FHE 也有类似的问题。正如我之前提到的,MPC 和FHE 的一个典型用例就是投票,而且实际上已经开始使用了。大约三周前,越南举行了一次以太坊活动。在那次活动中,他们实际上使用了MPC,也就是这些加密安全投票系统中的一种,在项目和骇客马拉松中进行投票。


MPC 目前的问题在于,它的某些安全属性依赖于一个中央伺服器。我们能将这种信任假设去中心化吗?可以,但这需要MPC 和FHE。现在的问题是,保证这些协议的高效的开销很大,在ZK-SNARK 上又有FHE。要想让这些协议成为普通人默认使用的协议,就不能让每一票的证明都要花费5 美元的计算量,对吧?它必须能快速完成,甚至能即时完成大量投票。


如何提高zk-SNARK 的效率?

那么,我们如何实现ZK-SNARK 的目标呢?我认为有三大类可以提高效率。其中之一就是平行化和聚合,想像一下,验证一个以太坊区块最多需要1000 万个计算步骤。你把这些计算步骤中的每一步都拿出来,分别做一个证明。然后进行证明聚合。


取前两个证明,对其进行证明。再取下两个证明,对其进行证明。再取其后的两个证明,对这些证明进行证明。再取前两个证明的证明,对这些证明进行证明,就得到了一棵树。在这棵树上走了大约20 步之后,你就得到了一个大证明,它代表了整个程序块的正确性。


这在今天的技术条件下是可以做到的。它可以在5 秒钟内证明一个理论区块的正确性。问题出在哪里?基本上,这需要大量的平行计算,对吧?它需要1000 万次证明。那么我们能最佳化它吗?我们能最佳化平行化吗?我们能最佳化聚合证明吗?答案是肯定的。


关于如何做到这一点,有很多理论上的想法。但这确实需要变成一些实际的东西。这是一个结合了演算法改进、低等级改进和硬体设计改进、效率改进的问题,所以ASIC 也非常重要。我们都看到ASIC 对于挖矿有多重要,对吧?记得2013 年当ASIC 第一次上线时,我们看到比特币算力是如何迅速增长的。


ASIC非常强大,对吧?在硬体成本和电费相同的情况下,ASIC 的杂凑值基本上是GPU 的100 倍。问题是,我们能为SNARK 证明带来同样的好处吗?我想答案应该是可以的。因此,有越来越多的公司开始实际制造专门用于证明zK-SNARK 的ASIC。它可以是zkEVMs,但实际上应该是非常通用的。你应该能够制造一个SNARK ASIC 来证明任何类型的计算。这样做,我们能从20 分钟缩短到5 秒吗?


最后,提高效率,对吧?因此,我们需要更好的zK-SNARK 演算法。我们有Groth16,我们有寻找表,我们有64 位SNARK,我们有STARK,我们有32 位STARK,各种不同的想法。我们能否进一步提高SNARK 演算法的效率?我们能否创造出更多对SNARK 更友好的杂凑函数、更多对SNARK 更友好的签名演算法?这里有很多想法,我非常鼓励大家在这些想法上多下功夫。


主要的安全问题是bugs,对吗?我认为,bug 是人们很少谈论的最大问题之一,但它却非常重要,对吗?基本上,我们拥有所有这些令人惊叹的加密技术,但如果人们担心电路中存在某种缺陷,就不会相信它们,对吗?无论是zK-SNARK 还是zkEVM,它们都有7000 行程式码。


这还是在非常高效的情况下。平均而言,每千行程式码就有15 到50 个漏洞。在以太坊中,我们很努力,每千行程式码中的错误少于15 个,但多于零,对吗?如果你有这些持有数十亿美元资产的系统,那么如果其中一个系统出现漏洞,那么无论加密技术有多先进,这些钱都会丢失。


问题是,我们能做些什么来真正利用现有的加密技术并减少其中的错误呢?如今,这里使用的基本技术是安全委员会,基本上,你只需在以太坊中召集一些人,如果其中大多数人,比如超过75% 的人,都认为存在漏洞,那么他们就可以推翻证明系统所说的一切。


因此,这是一个相当中心化的系统,但这是我们目前拥有的最好的系统。在不久的将来我们会有多重证明。这里有一张Starknet 的图,它是基于以太坊的Rollups 之一。这个想法是,如果你有多个证明系统,理论上,你可以使用冗余来降低其中任何一个系统出现漏洞的风险,如果你有三个证明系统,如果其中一个系统出现了错误,那么希望另外两个系统不会在完全相同的地方出现错误。


最后,我认为未来还有一件有趣的事情值得研究,那就是使用人工智慧工具,有可能使用新工具来进行形式验证,对吗?所以,就像用数学方法证明ZKEVM 这样的东西没有漏洞,对吗?基本上,你能真正证明例如,zkEVM 实现正在验证EVM 程式码中与以太坊实现完全相同的功能吗?例如,你能证明它们对任何可能的输入都只有一个输出吗?如果你能尝试真正证明这些事情,那么也许我们就能在未来的某个时候真正实现无bug zkEVM 的世界。


这太疯狂了,对吧?因为在此之前,还没有人做出过如此复杂的无漏洞程序。但在2019 年,没有人认为人工智慧有可能做出真正漂亮的图片,对吧?所以,今天我们只是看到了我们取得了多大的进步。我们看到了人工智慧的能力。现在的问题是,我们能否尝试将类似的工具应用到实际任务中,比如,自动生成复杂语句的数学证明,而这些复杂语句的程序要跨越成千上万行程式码?我认为这是一个有趣的公开挑战,值得人们关注。


关于聚合签名的效率,如今,以太坊有3 万个验证器,运行一个节点的要求很高,对吧?我的笔记型电脑上就有一个以太坊节点,它可以运行,但这可不是一台便宜的笔记型电脑,而且我还得自己去升级硬碟,以太坊的理想目标是支援尽可能多的验证器。


我们希望权益证明尽可能民主化,让人们能够直接参与任何规模的验证。我们希望运行以太坊节点的要求非常低,非常容易使用。我们希望理论和协议最大限度地简单。这里的理论限制是什么?每个参与者每个时段的所有资料需要有1 位元,因为你必须广播谁参与了签名,谁没有参与签名。


这是最基本的限制,超过这个限制,就没有其他限制了,计算没有下限,你可以做聚合证明,你可以做递回证明树。你可以做签名,你可以做各种聚合签名。你可以使用STARK,可以使用基于网格的密码学,可以使用32 位STARK,可以使用各种不同的技术。


问题是,我们能在多大程度上最佳化签名聚合?这就是点对点安全,人们对点对点网路考虑不够。这是我要特别强调的一点,我认为,在加密领域,人们往往倾向于在点对点网路之上建立花哨的结构,然后就认为点对点网路可以正常工作。


这里隐藏着很多风险,对吗?我认为这些风险将变得更加复杂,所以在2010 年代,每个节点都能看到一切。你肯定可以进行一些攻击:有日蚀攻击,有拒绝服务攻击,有各种各样的攻击。


但是,当你有一个非常简单的网路,而网路的唯一任务就是确保每个人都能得到所有东西时,问题还是相当简单的。问题在于,随着以太坊规模的扩大,点对点网路变得越来越复杂。今天的以太坊点对点网路已经有64 个分片了,对吧?


为了进行签名聚合,为了像现在这样每个时段处理30,000 个签名。我们有一个点对点网路,它被分成64 个不同的子网路,每个节点只属于其中的一个或几个网路。在资料可用性采样中,这是以太坊用来为区块提供资料空间以实现可扩展性的技术。


这也取决于更为复杂的点对点架构。在这里,你看到的是一个对等节点图,在这种设定下,每个节点只能下载所有资料的1/8。那么问题来了,这样的网路真的安全吗?你能保证它的安全性吗?你能尽可能提高保证率吗?我们怎样才能保护并提高以太坊所依赖的点对点网路的安全性?


基本上,我认为在这一点上,我们需要关注的是,我们需要能达到加密技术极限的协议,我们的加密技术已经比十年前强大得多,但还可以更强大,在这一点上,我认为我们真的需要开始研究什么是上限,我们如何才能真正达到上限。


这里有两个同样重要的领域。其中之一是继续提高效率,我们希望即时证明一切。我们希望看到这样一个世界:在去中心化协议中,每一条在部落格中传递的资讯都会默认附加一个zk-SNARK,以证明该资讯以及该资讯所依赖的一切都遵循了协议规则。


第二个前沿领域是提高安全性。从根本上说,就是要减少出错的机率。让我们的世界里,这些协议所依赖的实际技术可以是非常强大、非常值得信赖的,人们可以尽可能地依赖它。


但是,正如我们多次看到的那样,Multisignature (多重签名) 也会被骇客攻击,有很多这样的例子,这些所谓的Layer2 项目,其中一两个项目中的币实际上是由一个多重签名控制的,但不知何故,九个签名中有五个同时被骇客攻击,导致大量资金损失,如果我们想超越这个世界,那么我们就需要相信什么是真正能够使用的技术,并真正通过加密技术来执行规则,而不是相信一小群人来确保规则得到遵守。


要做到这一点,程式码必须值得信赖。问题是,我们能让程式码可信吗?


我们能让网路值得信赖吗?我们能让这些产品、这些协议的经济性值得信赖吗?


我认为这些都是核心挑战,希望我们能继续共同努力,不断改进,谢谢。



往期推荐:




加密采用率全球第一!越南司法部:不会禁止虚拟货币,但需加速监管立法


以色列伊朗随时开战!比特币下撞6.5万、以太坊重挫12%,全网爆仓超9.2亿美元


V神喊「以太坊转回PoW」?全网最完整解析文在这


市值稳坐第九!TON冲破7.3美元再破历史新高!紧追狗狗币DOGE


赚钱无敌:Tether去年大赚62亿美元!USDT净利润堪比高盛、Morgan Stanley,但员工数不到1%


继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存