以太坊的过去与现在
9月6日新加坡南洋理工大学主题演讲
Vitalik Buterin | 2023.09.06
今天我打算回顾一下以太坊的历史,从2013年和2014年的开端开始,以及项目自那时以来经历的一些变化,还有我们对一些问题的思考方式如何与5年或10年前不同。
我们在2014年发布了以太坊白皮书,它基本上描述了我们对以太坊最初的愿景。但白皮书中并没有详细解释其中一些理论背后的基本思想。以太坊是一个去中心化系统,类似于比特币。它是一个区块链,但与以前那些试图仅支持一个应用程序的系统不同,以太坊允许用户构建自己的应用程序。这意味着用户可以编写自己的应用程序代码,然后将代码上传到区块链,然后该应用程序可以在区块链上运行。
在白皮书的开头,我提到了一些其他人提出的想法,以及我开始思考的一些想法之一,就是在比特币之上发行自己的资产。如今,在以太坊上,我们有ERC-20代币,但那时我们有Colored Coins,它是在比特币之上发行自己资产的早期尝试。有趣的是,最近某个特定版本的Colored Coins被引入了比特币协议,所以Colored Coins似乎重新受到关注了,但Colored Coins只是一个应用程序。你可以用它来代表对实物物品的所有权,那时被称为智能财产(smart property)。你还可以拥有其他类型的资产,比如域名,你可以在区块链上建立一个系统,用于注册网站、注册用户名,追踪用户和应用程序评论等名称。
“智能合约”的畅想到落地
你可以在区块链上以分布式方式实现所有这些。智能合约的概念就是,你可以在区块链上拥有计算机程序,这些程序可以直接控制数字资产,一个资产不必由个人拥有,它可以由程序拥有。这个智能合约的概念可以用来实现许多更复杂的应用程序。例如,你可以拥有预测市场,金融工具,诸如稳定币和杠杆等等。所有这些不同的东西都可以通过智能合约来定义。此外,还有DAO的概念,基本上是使用智能合约在区块链上实现整个组织的投票或治理逻辑,不需要依赖法律系统来解决组织内部争议,你可以以非常低的成本直接进行投票。
因此,这些应用程序方面的许多概念一直存在至今,仍然在不断发展。以前我们有Colored Coins,现在我们有ERC-20代币。以前我们有智能财产,虽然没有取得太多进展,但我们有链上域名系统(ENS),许多人正在使用它,比如我的博客已经上传并且可能可以通过ENS访问。如果你使用支持以太坊的浏览器,如Brave浏览器,只需输入eth.link,你就能访问我的博客的前端页面。
这些都是可以使用的工具,它们涉及智能合约和DAO。全球各地有各种类型的DAO正在使用各种不同的逻辑。虽然迄今为止,在生态系统之外,它们没有真正大规模地得到采用,但它们确实存在,而且一些已经运作了多年。这些是我们目前看到的一些应用程序。显然,还有其他应用程序涌现出来,一些让我感到惊讶。例如,NFT(非同质化代币)就是一个例子。但今天存在的许多其他东西基本上与我们10年前的想法非常相似。共识机制的研究也是如此。今天,以太坊最终成为了一个共识机制链。共识机制大大提高了安全性,将以太坊的能源消耗降低了99.9%以上。以前称为”合并”,在那之前,以太坊的能源消耗几乎相当于新加坡的40%,现在已经降低到几乎为零。因此,状态过渡最终完成,但这是我们在生态系统中工作了近10年的成果。状态证明的前五年基本上是研究,我们试图理解状态证明的本质,以及不同状态空间的各种选项,最终收敛到实际有效的特定版本。
“共识机制”的转变
在2015年的一篇博客文章中,我们描述了一种机制,称为”共识机制”,试图鼓励验证者发送一系列表达对特定区块高度有信心的消息,以更有效地达成共识。后来,我们发现我们的共识机制有很多问题,它过于复杂,实际上不如后来演变成的卡斯帕协议简单有效。但这是我们在更深入理解这个领域时迈出的一步。
实际上,在2018年,我发布了一系列推文,回顾了以太坊状态研究的进程,以及我们如何从最初的探索开始,逐步转向状态链,并最终确定确切的算法。
首先是研究,然后接下来的四年都关注可扩展性。可扩展性对以太坊至关重要,因为截止到今天,以太坊每秒只能处理10到20笔交易。实际上,这取决于交易的复杂性和大小,可能在10到50之间。现在,这种可扩展性水平非常有限,要支持主流金融、主流支付以及全球系统,我们需要每秒处理大约100,000笔交易。如果每秒只能处理20笔交易,那么全球一百万人口需要花费400万秒,大约13年的时间才能在以太坊上执行一项交易。因此,提高可扩展性非常重要。
很早的时候,提高可扩展性的尝试被称为“分片”(Sharding),而我们现在正在做的仍然是一种分片的形式,但自那以来,许多不同的事物已经被设计和修改到这个机制中。基本思想是,传统的区块链,比如比特币,要求网络中的每台计算机都要处理每笔交易,因此其可扩展性有限。
我们改变了这种设计。不是每个节点都处理每笔交易,而是每个节点只处理一小部分交易。这就像BitTorrent的工作方式一样,BitTorrent通过将数据分成小块并允许人们共享来工作,尽管有很多热门数据,但不需要每个人都存储整个文件。因为对于人们来说,那将是太多的数据。所以挑战在于如何进行某种形式的历史记录,同时仍然具有共识系统,以使人们就事物的到达顺序达成一致,以便在其之上构建金融系统等。这是一个技术上的挑战。这是我们早期的一个概念之一,即分片,在这里,你基本上将交易分成不同的组,每个组有自己的节点,独立处理交易。这是一个非常复杂的构想。从那时以来,我们不得不非常努力地降低复杂性。基本上,我们必须努力使事情变得非常简单,因为我们知道,花费2个月或2周的时间来编写规范,需要2年的时间来开发。如果需要6周的时间来编写规范,那么可能需要6年的时间来开发。我们必须非常努力地降低复杂性,做出很多牺牲,最终我们接近了今天的结构。
以太坊的技术进展和挑战
有趣的是,关于以太坊技术进展的一点是,今天我们谈论的事情与6年前谈论的事情非常相似。这是一张来自一次以太坊会议的幻灯片,我认为是在那个时候,我在那里描述了以太坊的一些主要问题,例如隐私、共识、智能合约安全和可扩展性。如果你问我或其他人以太坊面临的最大问题是什么,你会得到基本相同的答案:隐私、共识、智能合约安全和可扩展性。
这些挑战今天与6年前相同,但与此同时,我认为有趣的是,自2017年以来取得的一些进展。例如,在2017年,隐私只是一个技术挑战,基本上有一种新型的密码学叫做零知识证明,或称为zk-SNARKs。这让你能够创建密码学证明,证明某些数学属性,如你所拥有的数据,而不泄露关于该数据的其他任何信息。这首次被Z.cash使用,Z.cash是于2016年推出的保护隐私的加密货币,它使用了zk-SNARKs来实现隐私。它是如何做到的呢?基本上,当你在Z.cash中花费一枚硬币时,不是直接指向你花费的那枚硬币,而是需要一个证明,证明你正在花费一枚未被花费的硬币,而不泄露关于那个硬币的任何其他信息。你证明了必需证明的陈述,以便拥有一个不会过度膨胀的货币系统,但其他所有信息都保持私密。
回到2017年,挑战仅仅是将这项技术引入以太坊并让zk-SNARKs起作用。这些技术基于一种复杂的数学理论,叫做椭圆曲线密码学。关于使用这项技术,我们基本上添加了一些被称为“零知识陈述”的覆盖层,这是一种能够让你在区块链上使用zk-SNARKs的代码。因此,使用智能合约,你实际上可以构建一个在以太坊上具有相同隐私保护逻辑的应用程序。这是2017年的情况。到了2023年,技术上的现状非常先进,有非常先进的zk-SNARKs库、开发环境、工具、协议。我们有一个很长的名单,包括了像StarK、ZK Rollup、Cairo等等非常有趣的技术。实际上,隐私方面可能会成为另一种瓶颈,主要是因为法律问题以及与这些系统产生的代币是否被更广泛的金融体系接受相关的问题。例如,Tornado Cash存在法律问题,可以将其视为在以太坊之上的隐私代币,因为黑客使用了它。
因此,出现了一个名为“无罪证明”(proof of innocence)的概念,无罪证明的目标是让你证明你的代币通过隐私系统传送,但并非来自黑客之一。你在不完全披露代币来自何处的情况下证明自己不是黑客之一。实际上,关于这个想法很快就会有一篇论文发布。已经有几家公司提出了几种不同的解决方案。因此,有很多工作需要在细节上进行修改,以增加使用隐私系统的用户在将代币存入交易所时,交易所将接受这些代币而不会产生极大的怀疑。
此外,还有关于zk-SNARKs的验证和验证方面的工作,以降低验证证明的成本。目标是使验证证明的成本更低。部分原因是zk-Rollup,部分原因是聚合协议。在2017年和2023年之间的区别在于,2017年我们只是试图让基本构建块正常工作,而到了2023年,这些构建块已经可以正常工作,但我们的重点是优化这些构建块,以及进行一些更复杂的工作,使其更好地与主流世界结合。在共识安全方面,2017年,我们基本上只是完成了共识机制开发过程的研究部分,刚刚开始开发。到了2023年,以太坊已经完全切换到了共识机制,已经成为了一个完全的共识机制。但挑战仍然包括降低协议的复杂性,提高协议的安全性,解决中心化的问题,使人们更容易参与,以及使一种叫做PDS的概念更容易参与,因为不需要运行复杂的算法来优化收益。
在智能合约安全方面,解决智能合约安全问题可能是这四个问题中进展最慢的一个,因为在2017年,距离DAO黑客事件仅仅过了1年的时间,那时DAO是一个智能合约,控制着约1.5亿美元的投资基金。然后被黑客攻击了。实际上,黑客试图逃走,但最终以太坊社区协作将钱返还给了DAO的原始所有者。
那时候是以太坊唯一一次发生类似事件,所以在2017年,这个事件在大家的记忆中仍然很新鲜。人们对这种安全性非常担忧,所以大家都在努力改进编程语言的安全性,使项目更加安全。到了2023年,很多这方面的工作都取得了成功。我认为黑客攻击的频率已经大幅降低了。当发生攻击时,通常是因为人们试图构建更加复杂的项目,相对于2016年的项目复杂度增加了20倍。如果你现在构建的项目与2016年相比没有复杂20倍,通常来说是相当安全的。有许多系统在多年来没有受到攻击,这是一个非常令人印象深刻的成就。还有其他一些安全性方面的改进。
在DAO事件之后的几个月内,发生了一次叫做”上海DOS攻击”的事件,攻击者利用以太坊协议本身存在的许多漏洞,使其能够发送交易,从而减慢整个区块链的速度。我们花了几个月的时间,基本上每天都发布更新。我知道黑客每天都在找到新的漏洞,所以我们不断地对抗并发现小问题。经过4年的努力,通过一系列不同的改变和改进,最终修复了这些安全问题。EIP 2929也为Defi代码库带来了许多改进。Gas优化者也做了一些令人惊叹的工作。总之,很多安全问题实际上已经非常悄然地得到了解决。
当你从工作量证明切换到权益证明时,有一个重大事件“合并”发生了。而在安全性方面,没有重大事件,因为整个重点是没有事件。但有时候重要的是要记住,事件没有发生,这是好消息。因此,我认为在这方面确实取得了实质性的改进,但仍然存在许多持续存在的问题。
所以回到2017年,分片只是一个想法。当时我们也在大量讨论状态通道,还有加法器,这些都是大型的法律解决方案。然后在2020年左右,每个人都转向了Rollup。今天,有各种各样的Rollup,包括ZK-Rollup、Optimistic Rollup等等。这些Rollup开始摆脱训练轮,变得真正去中心化,向这个方向迈出了重要的一步。今年Polygon也迈出了一大步。今年,我们正在继续努力使这些系统去中心化,增强证明系统的安全性,使证明系统更快,以便使用CKDM证明一块需要5个小时的区块,而在未来可能会降低到2分钟,甚至可能最终降低到12秒。
虽然我们取得了很多进展,问题也仍然存在,但在每个问题上都取得了巨大的进展。还有其他许多方面的工作,比如状态树(Verkle trees)。5或6年前,无状态客户端只是一个想法。而现在,状态树已经成为一个拥有数百人团队、编写了数千行代码的项目,深入思考如何将其应用到以太坊。它可能只有1到2年的时间就能够真正实现。还有EVM的改进,EVM的最大化和简化。账户抽象是一个非常重要的方向,每个支持账户抽象的人都有自己的原因。我之所以支持账户抽象,是因为账户抽象本质上是一种非常灵活的东西。账户抽象的目标是说,与其拥有由密钥控制的账户,不如拥有由计算机程序控制的账户。如果你拥有由计算机程序控制的账户,用户可以为这些交易批准的方式制定不同的逻辑。你可以不仅仅拥有一个密钥,还可以有三个不同的密钥,其中一些受其他人控制。你可以进行多因素身份验证。你可以将密钥存储在现代手机上存在的受信任的硬件模块中,也可以使用硬件钱包,甚至可以将多个硬件钱包组合在一起。你可以使用电子邮件账户等非常复杂的方式进行身份验证,甚至可以用电子邮件账户作为身份验证以太坊地址的方式。
回到现实和实际应用
回到现实和实际应用领域,我经常提到的一个事件是我在2021年左右前往阿根廷的一次经历,我对当地有多少人在使用以太坊印象深刻,他们真的在使用加密货币。我记得在圣诞节那天,大多数地方都关门,所以我只是想找一家咖啡店。我找到的第一家咖啡店,老板认出了我,他告诉我他加密了一个钱包,于是我问他是否可以用以太坊付款,他说可以,于是我们就用以太坊付款。但是存在一个问题,他没有使用以太坊主网,而是使用了Polygon。我很欣赏DeFi所做的工作,因为它让加密货币对于那些没有银行系统的人来说变得更加可访问,如果没有DeFi,他们就没有其他选择,我认为提供这些替代方案是好的。
但与此同时,我认为作为一个生态系统,目标是在未来逐渐减少越来越多的单点故障。我认为即使以太坊基金会也同意这一点。他们一直在变得越来越去中心化。我们正在努力解决这个问题,但问题是像这样去中心化的方式对于像那位咖啡店老板这样的人来说实际上是不存在的。尽管在技术上可以做到更去中心化,但去中心化的方式对于这些持币者来说实际上是不存在的。因此,真正改进和使事情变得更好对于链上的这些人来说是一个非常大的挑战。
所以基本上我不知道我们是否可以使这些持币者能够实际上使用链,从中受益,享受到去中心化和全球无权限的优势,并且我们能否实现一个世界,在这个世界中,人们能够真正从2013年以来一直在思考的所有应用领域中受益。我们是否能够将这些概念变成真正有益的应用,使人们受益。
这些技术工作一直在遵循一种相当一致的方向,我认为这很有趣。工具发生了变化,10年前我们甚至没有考虑这些问题,而现在我们正在考虑。但规则是相同的。但现在我认为更需要关注实际的采用和使用。解决方案涉及技术工作,但分散性更强,分布在不同的层次上。这意味着以太坊基金会、以太坊核心开发团队和客户端团队不再是唯一执行极其重要的工作的地方,钱包公司也是执行极其重要工作的地方,应用程序开发人员也是执行极其重要工作的地方,甚至构建企业区块链也是如此。这是人们多年来一直尝试做的事情。但我认为如果你将其视为一种在以太坊之上的layer 3,那么实际上有可能使其变得可行,使其真正为那些想要使用的人提供去中心化的好处,并使其真正可行。
这些就是我们在过去的10年里看到的一些最大的变化。从一个初始的概念到一个逐渐解决实际使用中的各种挑战的过程,这是一段漫长而缓慢的旅程。我希望在未来的5年里,我们将能够解决大多数这些挑战。