一文读懂「真正意义的世界计算机」以太坊 2.0 Serenity
原文标题:《Serenity 将带来什么?》
作者:Colin Schwarz
编译:Jhonny
以太坊网络是世界上规模最大、应用最广泛的区块链网络之一,也是世界上最大的开源项目之一,其 Geth (go-ethereum) 是 Github 上最大的项目之一。自 2015 年启动以来,以太坊一直在朝着其最终目标迈进,即成为一台去中心化的全球计算机,有朝一日可以取代我们日常生活中使用的许多中心化应用程序。
然而,在实现这一目标之前,以太坊社区和网络还有很多工作要做。本文将简要介绍以太坊到目前为止的进展,然后讨论该网络即将发布的和备受期待的重大变革,即以太坊 2.0(Serenity),这将是以太坊社区实现的最大、最全面的发展。
以太坊发展的四个阶段
当以太坊网络于 2015 年启动时,该项目的长期路线图被设想为四个阶段。每个阶段都由一组以太坊改进提案 (EIPs) 界定。这些都是以太坊社区提出和批准的提案。这些提案为各种以太坊客户端和开发人员创建了需要遵循的指南。例如,以太坊当前处于第三阶段的 Constantinople (君士坦丁堡) 版本,此版本是通过四个 EIP 创建的,旨在提高以太坊网络的安全性、隐私性和扩容性。[1]
以太坊的第一阶段叫做Frontier (边疆)。2015 年启动之时,这是该网络的第一个实时版本。Frontier 允许用户和开发人员进行 ETH 挖矿,搭建 Dapp (去中心化应用程序) 和工具等,以太坊的挖矿奖励 (即矿工每挖出一个新区块获得的奖励) 被设定为 5 ETH。
以太坊发展的第二阶段是Homestead (家园)。Homestead 于 2016 年 3 月发布,是以太坊网络的第一个产品版本。它对协议进行了许多改进,这些改进为未来升级和提高交易速度奠定了基础。
以太坊发展的第三个阶段,也是目前的阶段,被称为Metropolis (大都会)。Metropolis 分为两个版本,即Byzantium(拜占庭)和Constantinople (君士坦丁堡)。Byzantium 版本于 2017 年 10 月发布,比之前的版本更轻、更快、更安全。一些具体的升级包括更加可预测的 Gas 价格和更简便的开发者编程。Byzantium 版本还允许以太坊开发人员对 zk-SNARKs (零知识简洁非交互式知识证明) 执行有效的链上验证,从而提高了隐私性。
乍一看,zk-SNARKs 似乎很复杂,但系统使用了一个相对简单的概念,即零知识证明。零知识证明指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的 [1]。比如,我可以向朋友证明我知道自己手机的密码,并无需将密码告诉他。
Byzantium 版本也对「挖矿难度」进行了调整,从而使以太坊网络挖矿会随着时间的推移而更加困难,这主要是为了使网络在未来将按照预期过渡到 PoS 机制 (下文将深入讨论这一点)。
Constantinople 版本旨在进一步对以太坊网络进行改进。尽管 Constantinople 版本最初设定的发布日期是 2018 年 11 月,但以太坊的开发者们决定将发布日期延迟至 2019 年 [1]。此次分叉升级最终在 2019 年 2 月 28 日当网络高度到达 7,280,000 时发布 [2],主要是将以太坊网络的挖矿降低由 3 ETH 降为 2 ETH,并将挖矿「难度炸弹 (Difficulty Bomb)」延迟了 12 个月。
以太坊的第四阶段,也是暂时的最后阶段,是被称为「以太坊 2.0」或「Serenity」的阶段。这是迄今为止最雄心勃勃的一次升级,预计将改善以太坊网络的几乎所有方面。以太坊 2.0 计划在 2019 年至 2021 年间分四个阶段发布,不过这个时间表可能会有所变化。为了充分理解以太坊 2.0 的重要性,我们首先需要研究当前以太坊网络所面临的主要问题,即以太坊 2.0 试图努力解决的问题。
当前以太坊网络面临的问题
当前以太坊网络面临的一个最重要的问题是扩容性(scalability)。以太坊网络支持数百个去中心化应用程序,每秒需要处理大量交易。增加更多的节点并不会增加网络的扩容性,因为每个节点都需要验证每笔交易。随着以太坊网络的使用不断增加 (包括创建了更多的 Dapp 和执行更多的交易),这导致交易的时间和成本不断增加,进而使得以太坊网络速度变慢,使用起来也不那么方便。
在最近的一次速度测试中,以太坊网络每秒只能处理约 20 笔交易 (各种来源的数据表明,在过去一年,每秒处理约 12 至 45 笔交易)。相比之下,PayPal、Visa 等中心化网络每秒通常能完成 193 笔交易和 1,667 笔交易,Visa 的最大容量接近 2.4 万笔 [4]。
为了实现以太坊网络大规模应用,大规模地提升网络的扩容性是以太坊 2.0 开发的核心。在研究了其他几个选项之后,以太坊团队确定了一个称为 sharding (分片) 的方式作为提升以太坊网络扩容性的最佳解决方案。诸如 Plasma 链和 state channels (状态通道) 等链下解决方案也可能用于减轻以太坊主链的负载,并进一步提高扩容性。
以太坊 2.0 将解决的另一个主要问题是效率和环境可持续性。就像比特币和许多其他区块链网络一样,当前的以太坊网络依赖于 PoW (工作量证明) 协议来确保其网络的安全性。
PoW 系统涉及到许多通过计算机硬件连接至区块链网络的矿工。矿工们将他们的硬件投入到网络中以获取回报。算法为每个新区块设置一个目标值,矿工们竞相通过自己的硬件设备使自己成为第一个计算出目标值并添加新区块的人。为此,他们需要通过一个哈希函数来运行被提议区块的区块头数据和一个随机的「nonce 值」,该哈希函数将返回一串固定长度的杂乱数字。如果这串数字与目标值不符,则更改 nonce 值并重新运行哈希函数。
矿工们会一直重新运行哈希函数,直到其中一个矿工生成的哈希值与目标值相符。此时,新的区块将被广播至网络中的所有节点,该新区块将被验证并添加至区块链账本中,而成功挖出该有效新区块的矿工将获得一定的奖励作为报酬。
PoW 系统的一个主要好处就是,验证某个新区块是否属于该区块链网络是非常快速且相对简单的。但是,为了确保网络的安全并阻止欺诈,对于矿工来说,找到正确的哈希输入是需要投入高昂的计算成本的。由于只有一个矿工会找到正确的哈希,因此实际上其他所有矿工投入的计算工作都是浪费了。其结果是,PoW 共识需要投入大量的计算能力和电力成本,且效率很低。
在撰写本文时,以太坊网络上的每笔交易大约使用消耗 29 Kwh (千瓦小时) 电量,足够一个美国普通家庭 24 小时的供电!整个以太坊网络中的矿工每年消耗的电力可以为 652,669 个美国家庭提供电力 [5]。每年以太坊挖矿所消耗的能源大约与玻利瓦尔整个国家差不多。这显然是一个很大的问题。以太坊的 PoW 协议所需要的大量能源消耗降低了挖矿的盈利性,并对环境和系统的长期可持续性产生了严重的负面影响。
PoW 协议非常重要,因为它们支撑了早期创建的区块链网络,但是这些区块链网络的效率非常低,也容易受到挖矿垄断的影响,因为这种机制地赋予了拥有更多计算资源的参与者不公平的优势。有钱有势的个人和组织能够负担得起数量更多、速度更快、功能更强大的计算机硬件,这使他们有更大的机会成功地解决每一个加密难题并获得奖励。例如,大约 65% 的比特币挖矿是由 5 家挖矿集团完成的,理论上他们可以联合起来控制超过 50% 的算力市场。比特币矿工使用昂贵的 ASIC (专用集成电路) 矿机,这导致了比特币挖矿的工业化和部分集中化。
由于以太坊挖矿通常使用普通家庭电脑就配备的 GPU (图形处理器) 就可以进行,因此以太坊挖矿的集中化风险并没有比特币那么高。然而,ASIC 最近发布了针对以太坊的协议,而且由于 ETH 挖矿目前所依赖的 PoW 协议,因此以太坊挖矿仍然存在垄断和集中化的风险。这就造成了比特币、以太坊和其他区块链网络不像最初设想的那样去中心化,从而危及这些区块链网络的独立性和实用性。
以太坊 2.0 旨在将网络从 PoW 协议过渡到一种称为 Casper 的 PoS 协议,该协议旨在解决以太坊网络的效率和可持续性问题。这一转变将变得越来越重要,因为 2017 年的拜占庭升级在当前的以太坊网络中引入了挖矿难度炸弹,该难度炸弹将使得以太坊挖矿变得越来越难,知道最后无矿可挖 [6] 。这一策略是为了实现将以太坊网络从 PoW 过渡到 PoS 而引入的,也是为何此次更新对于以太坊社区来说如此重要。
以太坊 2.0 将解决的最后一个主要问题是速度和可用性。这与 sharding (分片) 将解决的扩容性问题具有相关性,但并非完全一样。分片的引入能够消除交易速度和吞吐量的最大瓶颈--扩容性,但是以太坊虚拟机 (EVM) 本身也对网络的速度和可用性造成影响。
EVM 本质上是以太坊的底层结构,它执行代码并使网络正确地运行。EVM 负责以太坊网络的内部状态及其所有计算;EVM 还确保了以下信息的准确性:账户信息 (如账户余额)、当前的 gas 价格、地址和区块信息。此外,EVM 必须跟踪以下组件:区块信息、存储状态、账户状态和运行时间环境信息 [7]。同时,EVM 也处理所有的以太坊智能合约,这些智能合约以 Solidity/Vyper 编写并编译成唯一的 EVM 字节码,之后这些合约由当前以太坊网络中的每个节点执行。[4]
由于 EVM 负责以太坊网络的许多重要方面,因此 EVM 在执行任务时的速度将对网络本身的整体速度和可用性造成很大的影响。[4] 以太坊 2.0 的解决方案就是使用全新的以太坊虚拟机 eWASM (即 Ethereum wasm)。我们知道,Wasm 是一个 W3C 社区团队开放标准指令集,当前正由来自谷歌、Mozilla、微软和苹果的工程师们进行开发。除了提高速度和吞吐量,eWASM 还将提高以太坊网络的安全性和可用性,并带来其他一些好处。我将在接下来的几周内发布一篇文章,探索 eWASM 的细节,请继续关注 !
以太坊 2.0 的其他目标
我们现在知道,以太坊 2.0 的设计是为了解决当前以太坊面临的主要问题。然而,创新并不止步于此。正在搭建中的 Serenity 还将实现几个更普遍的设计目标。
由于 Casper 和 sharding (分片) 的引入将产生许多全新的、复杂的体制,因此以太坊 2.0 的主要设计目标之一是尽可能地降低网络的复杂性,即使这会导致一些效率方面的损失。
另一个主要的设计目标是使用密码学和设计技术,从而允许大量的验证者参与进来,不管是网络中的所有验证者数量还是参与每笔交易的验证者数量。
第三个设计目标是创建一个运行标准的笔记本电脑就可以对单个分片进行处理和验证的系统。
后两个目标都是为了确保以太坊网络的安全性和去中心化。为什么这么说?
单纯的 Layer 1 扩展可能会付出巨大的安全性代价,因为对区块链进行分片会使得无法对交易进行全局性验证 (即网络中的所有矿工 (除了恶意攻击者之外) 都会致力于对所有交易进行确认,所有矿工的算力保证了整条链的安全。而分片则意味着某条分片链中的交易只由整个网络中的一部分验证者进行验证(因为整个网络中的验证者会被分配到各个分片链中负责交易验证),如此一来,单条分片链的安全性就比整条链的更低);当前的比特币和以太坊就能够对交易进行全局性验证,从而保证了整个网络的安全。
关键的问题是:我们如何在不牺牲去中心化和安全性的同时获取扩展性呢?以太坊的很多竞争性区块链平台 (如 EOS) 选择走中心化的路线来解决这一问题。而以太坊选择了一种不同的方式,即将网络的状态划分到 1024 条并行运行的分片链之中,每条分片链都由统一由一条称为信标链 (beacon chain) 的根链进行协调。
信标链运行完全的 Casper PoS 机制,整个体统中不存在 EOS 那样的代理或中心化的投票权。在这种方式中,每个节点只需要负责处理整个网络中所有交易的一部分,且很多区块可以并行处理交易,这就线性增长了整个网络的吞吐量。
以太坊 2.0 规范试图回答以下问题:
如果没有对交易进行全局性验证,那网络的安全性将会受到什么影响呢?应该如何选择验证的参与者同时阻止验证垄断的出现呢?应该如何设计激励措施,以最大限度地提高数据可用性和参与的积极性 ?
在经过多年的研究、探索和理解需要做出的权衡之后,以太坊探索着将 PoS 作为其共识算法的选择。出于文本中讨论的原因,验证者是一定能够获得奖励的,同时验证实体 (个人或企业) 在 Casper PoS 协议中享有平等的待遇,在参与到验证者委员会并获得奖励 / 处罚方面有着均等的概率。
交易的全局性验证转变成了间接性验证:每条分片链中的每笔交易都将首先由该分片中的验证者进行验证,该分片的验证者会将检查点 (checkpoints) 提交至信标链中,信标链在以太坊 2.0 中扮演着各分片链的「协调者」角色。
除了解决特定的问题和更广泛的担忧,Serenity 还有两个长期的设计目标,这两个目标是针对未来可能出现的潜在问题而制定的。第一个目标就是设计出这样一个网络,当大多数或者很大一部分节点同时离线时,网络依旧能够保持运行。
在参加 2018 年的 Devcon 4 会议期间,以太坊 2.0 研究者 Justin Drake 阐释了以太坊 2.0 团队如何希望以太坊 2.0 网络能够在「第三次世界大战」中幸存下来,或者当面临超过 80% 的节点同时离线时幸存下来 [9]。这个目标在其他不那么极端的情况下也很重要。比如,一场或多场与气候变化有关的重大灾害可能在数小时内摧毁大部分节点,或者像中国或美国这样的大国可能决定禁止以太坊和其他区块链网络,并试图消除处于其国家的节点。
以太坊 2.0 预计的另一个目标是应对量子计算的出现。目前,美国、中国以及其他主要国家和公司之间正在进行一场技术竞赛,希望成为第一个发明生产量子计算机的国家。现在的问题是量子计算机是否会出现,而是何时会出现。无论量子计算机什么时候出现,它们的能力都将是对当前最为先进的传统计算机的指数级增长。这将使大多数现有的网络安全 (包括加密技术和区块链技术的安全性) 变得相对没有防御能力,容易遭受黑客攻击。
因此,对于未来的区块链网络来说,尽一切可能 (在传统二进制计算的限制范围内) 来抵御量子计算机是非常重要的。正如以太坊 GitHub 库上所述,以太坊 2.0 的终极设计目标是「选择的所有组件,要么具备量子计算安全性,要么在可行的时候能够很轻松的替换为具备量子计算安全性的替代组件。」[8]
Serenity 将带来什么
这一切都非常令人兴奋,但是以太坊 2.0 什么时候才能真正投入使用呢?不幸的是,答案仍然是……我们不知道!然而,在 Devcon 2018 的一次演讲中,Vitalik 表示 Serenity「真的离我们并不遥远」,并解释了「以太坊 2.0 是……一系列不同功能的结合,这些功能我们已经讨论了好几年,研究了好几年,积极构建了好几年,最终将成为一个具有凝聚力的整体。」[10]
2019 年 6 月 30 日,以太坊开发者 Danny Ryan 宣布,以太坊 2.0 的第一个阶段 (信标链阶段) 的规范已经冻结,这标着这一版本的规范将为实施人员们朝着信标链多客户端测试网进发,为正在进行的形式化验证、模糊测试和审计工作等方面提供一个稳定的目标。
在上周举行的 Eth 2.0 AMA 第二期中,以太坊 2.0 研究者 Carl Beekhuizen 表示在2020 年 1 月 3 日推出阶段 0 (信标链) 是目标日期,并非信标链的正式发布日期,但「现在看起来一切都将按时完成。」更多信息请参与 Unitimes 此前发布的文章:《 Eth 2.0 AMA 第二期 | Vitalik:以太坊 2.0 已没有未解决的研究挑战 》
我们知道,Serenity 是独立于当前的以太坊主链而正在被开发,其一开始将与当前的以太坊主链并行运行。在未来,当前的以太坊旧链将被整合到以太坊 2.0 新链之中。我们还知道,以太坊 2.0 将分四个阶段陆续推出。阶段 0 将推出信标链 PoS 网络,此阶段尚不能支持智能合约或 Dapp 开发,但将为接下来几个阶段打下基础。
阶段 1 将引入基本的分片结构,网络数据将被分割到各个分片中,但网络状态将继续存储在当前的以太坊旧链之中。阶段 2 将实现完全的分片,此阶段将实现状态执行和智能合约功能。此时,以太坊 2.0 将具备上文中讨论的所有主要特性。阶段 3 及以后将包括迭代、改进和其他技术 [10]。有关以太坊 2.0 各阶段的具体信息,请参阅 Unitimes 此前发布的文章《 ETH 2.0: 以太坊的未来之路 》
当这些阶段都实现了,以太坊 2.0 预计将具备以下特性:成为完全分片的区块链、运行 PoS 共识机制、更快的同步确认时间 (约 8-16 秒) 和 「经济上的确定性 (economic finality)」时间 (约 10-20 分钟) [4] 。Vitalik 将 Serenity 视为「真正意义上的世界计算机」。
特别感谢 Aidan Hyman、Greg Markou 和 Cayman Nava 审阅本文并提出许多有价值的建议。感谢 Michael Karnjanaprakorn, Darren Langley, William Suberg, Bisade Asolo, Justin Drake,当然还有 Vitalik Buterin。还要感谢 Digiconomist 和 Cryptofacts 的编辑和内容创建者。
위믹스3.0 최초의 DAO ‘원더다오’, 노드 카운슬 파트너 합류
위믹스3.0 최초의 DAO ‘원더다오’, 노드 카운슬 파트너 합류 l 탈중앙화 자율조직 형태로 결성…구성원 모두가 위믹스3.0 운영에 참여 가능l 스마트 컨트랙트 기반 모듈화 ...
[주간톡톡] 양의 탈을 쓴 늑대는 양일까? 늑대일까?
주간톡톡은 한주간의 블록체인 소식을 재구성해 독자들과 재미있게 이야기해보는 코너입니다. 이번주는 페이스북의 스테이블 코인 프로젝트 '디엠(Diem)'에 대해 알아보겠습니다. 그럼 ...
IBM, 블록체인 와인 추적 서비스 '빈어슈어(Assure)' 공개
IBM이 재배지부터 매장까지 와인 공급망을 추적할 수 있는 블록체인 기반 플랫폼을 공개했다.10일(현지시간) 발표에 따르면 IBM은 와인 모니터링 업체 e프로브넌스(eProven...