现场嘉宾:2024年,在香港Web3嘉年华期间,以太坊联合创始人Vitalik Buterin发表了主题演讲《超越协议设计的极限》。以下是金色财经整理的演讲内容,与大家分享。
区块链与ZK-SNARKS:
过去10年里,我们用于构建协议的技术类型发生了很大变化。当比特币在2009年诞生时,它实际上使用了非常简单的密码学形式,对吧?你在比特币协议中看到的唯一一种加密技术是哈希、椭圆曲线的ECDSA签名和工作量证明。工作量证明只是使用哈希的另一种方式。而如果你回顾一下2000年用于构建协议的技术,就会发现这套更加复杂的技术实际上在10年前刚刚出现。
现在,很多这样的技术肯定已经存在很长时间了。从技术上讲,自从PCP定理诞生以来,我们就已经有了ZK-SNARKS,该定理已经有几十年的历史了。所以在理论上,这些技术已经存在了很长时间,但在实践中,存在着巨大的效率障碍,阻碍了它们在学术论文中的应用和在实际中的应用。
实际上,我认为区块链本身在这方面做得很好,因为它实际上推动了这些技术的采用,并将它们真正应用到了实践中。
如今的情况发生了变化,并取得了巨大的进步。这包括很多不同的事情。我们今天拥有的协议越来越多地依赖于所有这些技术。看看2000年构建的协议,所有这些东西从第一天起就被视为关键组件。ZK-SNARKS是这里的第一个重要成果吧?ZK-SNARKS是一项技术,可以通过更快地验证证明并自行运行计算,而无需隐藏原始输入中的大量信息。因此,ZK-SNARKS在隐私和可扩展性方面非常有用。
区块链的作用是什么呢?区块链给你带来了很多好处,它们给你提供开放性,它们为您提供全球可验证性。但是这一切都是以牺牲隐私和安全为代价的。而ZK-SNARKS则可以帮助你恢复隐私和安全。2016年,我们看到了Zcash协议的出现。然后,我们开始在生态系统中看到越来越多的东西。现在,几乎所有的东西都开始建立在ZK-SNARKS、MPC和FHE上。但是,有些事情是ZK-SNARKS无法完成的。例如隐私保护、计算、在人们的私人数据上操作。投票实际上是一个重要的用例,你可以在其中获得一定程度的隐私保护。因此,使用ZK-SNARKS进行投票是可行的,但如果你想获得最好的属性,那么MPC和FHE就是必须使用的东西。
许多加密和人工智能应用程序最终也会使用MPC和FHE,这两种原语在过去十年中的效率也在快速提高。
BLS密钥聚合是一项有趣的技术,它可以从大量不同的参与者(可能有数以万计的参与者)那里获取一大堆签名,并快速验证组合签名,就像验证一个签名一样。
这是非常强大的。BLS密钥聚合实际上是现代状态共识证明理论的核心技术。
如果看一下在BLS密钥聚合之前构建的状态共识证明,很多时候,算法通常只能支持几百个验证,例如目前一个定理大约有30,000个验证,因为它们每12秒提交一个签名。这成为可能,是因为这种新形式的密码学只在过去5到10年里得到了足够的优化。
效率、安全和扩展功能:
所以很多事情都是由这些新技术带来的,它们也在迅速变得更强大。当今的协议大量使用所有这些技术。我们确实经历了从专用密码学到通用密码学的重大转变,在这个变化中,你必须了解密码学是如何工作的,以创建特定用途的算法,以实现更通用的目标。在这个世界上,要创建一个使用我在过去5分钟提到的技术的应用程序,你甚至不需要成为密码学家。你只需编写代码,将其编译为验证器,然后你就拥有了一个具有历史追溯性的应用程序。
那么,这里有哪些挑战呢?我认为现在有两个主要问题:一个是效率,另一个是安全。现在还有第三个问题,可以说是扩展功能。我认为,提高我们今天拥有的东西的效率和安全性更加重要。
让我们来谈谈效率。让我们以区块链作为一个具体的例子。理论上来说,如果出块时间为12秒,即一个区块与下一个区块之间的平均间隔时间为12秒,那么正常的区块验证时间大约为400毫秒。而寻找陷阱、证明理论和阻止所需的时间约为20分钟。但是两年前,这种情况正在迅速改善。以前,这需要5个小时。现在,平均只需要20分钟。与两年前相比,我们取得了很大的进步。
那么,我们的目标是什么呢?我们的目标是实时证明。我们希望在创建一个区块时,您可以在创建下一个区块之前获得证明。当我们实现实时证明时,世界上的每个用户都可以轻松成为协议的完全验证用户。如果我们能够进入这样一个世界:每个以太坊钱包,包括浏览器钱包、移动钱包和其他链的智能合约钱包,在理论上都能完全验证共识规则。
这样,他们甚至不需要相信自己是否更喜欢权益验证,因为他们实际上是直接验证规则并直接确保区块的正确性。那么,我们如何利用历史来实现这一点呢?要使其真正发挥作用,ZK-SNARKS证明需要实时进行,但需要有一种方法可以在5秒内进行证明。那么问题是,我们能够实现这一点吗?现在,MPC和FHE也面临类似的问题。正如我之前提到的,MPC和FHE的一个强大用例就是投票。它实际上已经开始出现了。
当前MPC的问题在于它的某些安全属性依赖于一台中央服务器。我们能够去中心化吗?我们当然可以,但这需要更高效的协议。这些协议的成本很高。
那么,我们如何满足这样的需求呢?对于ZK-SNARKS,我认为提高效率可以分为三类。其中之一是并行化和聚合。因此,如果你想象一下关于区块的理论,一个区块在一次验证中最多需要大约1000万个计算步骤。你执行每个计算步骤,并分别对其进行证明。然后你进行证明的聚合。经过大约20次上述步骤之后,你就得到了证明整个区块正确性的重要证明。这是今天利用现有技术可以做到的事情。并且可以在5秒内证明劣质区块。这需要大量的并行计算。那么我们能否优化它?我们能否优化证明的聚合?答案是肯定的。关于如何做到这一点,有很多理论想法,但这确实需要转化为实际的东西。
在相同的硬件成本和相同的电力成本下,ASIC能够比GPU快大约100倍。
这些新技术带来了很多事情。它们也在迅速变得更强大。当今的协议大量使用所有这些技术。我们确实经历了从专用密码学到通用密码学的重大转变,在这个变化中,你必须了解密码学是如何工作的,以创建特定用途的算法,以实现更通用的目标。在这个世界上,要创建一个使用我在过去5分钟提到的技术的应用程序,你甚至不需要成为密码学家。你只需编写代码,将其编译为验证器,然后你就拥有了一个具有历史追溯性的应用程序。
那么,这里有哪些挑战呢?我认为现在有两个主要问题:一个是效率,另一个是安全。现在还有第三个问题,可以说是扩展功能。我认为,提高我们今天拥有的东西的效率和安全性更加重要。倍的哈希处理速度!问题是,我们能通过严格证明来获得完全相同的好处吗?我相信答案应该是肯定的。已经有很多公司开始实际构建用于证明ZK-SNARKS的产品,但实际上,它应该是非常通用的。我们能够将20分钟缩短到5秒,从而提高效率吗?
所以,我们有GKR协议,有64位,有ZK-SNARKS等各种不同的想法。我们能够进一步提高算法的效率吗?我们能够创建更多ZK-SNARKS、友好的哈希函数、更多ZK-SNARKS、友好的签名算法吗?这里有很多想法,我强烈鼓励人们为这些想法做更多的工作。我们拥有所有这些令人惊叹的密码学形式,但人们是否会信任它们?如果人们担心其中存在某种缺陷,无论是ZK-SNARKS还是zkevm Circuits,它们都有7000行代码。如果它们非常有效,理论上,平均每千行代码有15到50个错误。我们努力尝试,每千行不到15个,但也大于零。如果你拥有这些持有数十亿美元人们资产的系统,如果其中一个出现错误,那么无论加密技术多么先进,这些钱都会丢失。
问题是,我们能做些什么来真正采用现有的密码学并减少其中的错误数量?
现在,我认为如果一个团体的12人中有9人,即超过75%的人同意存在错误,那么他们就可以推翻证明系统所说的任何内容。所以它是相当中心化的。在不久的将来,我们将会有多重证明。理论上来说,您可以降低其中任何一个的某部分出现错误的风险。您有三个证明系统。如果其中一个存在错误,那么希望另外两个在完全相同的位置不会出现错误。
使用人工智能工具进行形式验证是一个值得研究的有趣方向。实际上,从数学上证明像ZK-EVM这样的东西没有错误。但你能否真正证明这一点,例如,ZK-EVM实现正在验证与Gas中的定理实现完全相同的函数。例如,你能证明它们对于任何可能的输入都只有一个输出吗?
在2019年,没有人认为人工智能可以在今天制作出非常漂亮的照片。我们已经取得了很多进展,我们已经看到人工智能做到了。问题是,我们是否可以尝试将类似的工具转向类似的任务。例如为跨越数千行代码的程序中的复杂语句自动生成数学证明。我认为这是一个有趣的开放挑战,让人们了解签名聚合的效率。那么今天以太坊有30000个验证器,运行一个节点的要求相当高吧?我的笔记本电脑上有一个节点理论,它可以运行,但它不是一台便宜的笔记本电脑。而且我确实必须自己去升级硬盘。期望的目标是理论上的,我们希望支持尽可能多的验证。我们希望权益证明尽可能民主化,以便人们能够直接参与任何规模的验证。我们希望在节点理论中运行的要求非常低,并且非常易于使用。我们希望理论和协议尽可能简单。
那么这里的限制是什么?限制是每个参与者每个槽的所有数据需要1 Bit,因为你必须广播谁参与签名和谁没有参与的信息。这是在此之上最基本的限制。如果是这样的话,就没有其他限制了。计算,无下限。您可以进行证明聚合。您可以对每棵树进行递归,也可以进行签名。您可以进行各种签名聚合。你可以使用SNARKS,你可以使用密码学,就像你可以使用32位SNARKS一样,各种不同的技术。
关于点对点网络的思考。问题是,我们能在多大程度上优化签名聚合-点对点安全?人们对点对点网络的思考还不够。这才是我真正想强调的。我认为在加密领域,通常有太多的倾向在点对点网络之上创建奇特的结构,然后假设点对点网络可以工作。这里隐藏着很多恶魔吧?我认为这些恶魔将变得更加复杂,就像点对点网络在比特币中的工作方式一样。
这其中有各种攻击,如女巫攻击、拒绝服务攻击等。但是当你有一个非常简单的网络,并且网络的唯一任务是确保每个人都能得到一切时,问题仍然相当简单。问题在于,作为一种尺度理论,点对点网络变得越来越复杂。今天的以太坊点对点网络有64个分片-为了做一次签名聚合,为了处理30000个签名。
首先,就像我们今天所做的那样,我们有一个点对点网络,它分为64个不同的分片,每个节点只是其中一个或几个网络的一部分。因此,将两个项目分层并允许Rollup的费用非常低,这是一种有天赋的可扩展性解决方案。这也依赖于更复杂的点对点架构。每个节点只下载全部数据的1/8吗?你真的能让这样的网络安全吗?我们该如何保存数据呢?我们如何提高点对点网络的安全性?
结论是,我们需要考虑能够实现密码学限制的协议。我们的密码学已经比几十年前强大得多,但它还可以更强,我认为现在我们真的需要开始考虑什么是天花板,我们如何真正达到天花板?
这里有两个同样重要的方向:
其中之一就是继续提高效率,我们希望实时证明一切。我们希望看到这样一个世界:在去中心化协议的区块中传递的每条消息默认都附加有ZK-SNARKS,证明该消息以及该消息所依赖的所有内容都遵循协议的规则。我们如何才能提高效率以实现这一目标?第二个是提高安全性。从根本上减少出现问题的可能性,让我们进入一个世界,在这个世界中,这些协议背后的实际技术可以是非常强大和非常值得信赖的。
但正如我们在许多次看到的那样,多重签名会被黑客攻击。在很多情况下,这些Layer 2项目中的代币实际上是由多重签名控制的。如果有九分之五的人同时遭到黑客攻击,就会损失很多钱。如果想避免这些问题,那么我们需要信任-能够使用该技术,并以加密方式强制遵守规则,而不是相信一小群人来确保系统安全。
但要真正实现这一点,代码必须是值得信赖的。问题是,我们能让代码可信吗?我们能让网络值得信赖吗?我们能让这些协议的这些产品的经济性值得信赖吗?我认为这些是核心挑战,我希望大家能够继续共同努力来改进。谢谢。