TPS:比Libra还令人振奋 以太坊2.0进展更新 (2019年6月)

作者|BenEdgington

编译|Jhonny

我知道你们最近几天都被有关Libra的消息刷屏了,所以这里有一点精神慰藉:本文不会提及Libra的相关信息,在这里我们将回顾一些最新的以太坊2.0开发进展。

本文的内容不是非常全面的,这些天发生的事情太多了。我将把过去几周积累的各种片段整理成一些连贯的东西。

让我们从开发更新开始。众所周知,以太坊2.0的交付计划分为三个不同的阶段。最近最令人兴奋的是有关阶段0(接近信标链客户端的互操作性)和阶段2(以太坊2.0计算模型的开始)的进展。

阶段0:信标链实现

信标链(beaconchain)是整个以太坊2.0系统的协调层,可能也是最难交付的部分。有关信标链的背景知识,请参阅我之前发表的StateofEthereumProtocol#2:TheBeaconChain这篇文章。

去年6月份,信标链被设想为以太坊2.0的未来。仅仅一年之后,阶段0的规范将在今年6月30日被冻结敲定。它是一个全新的区块链设计,其野心之大前所未有,包含了几十项重大的创新和见解,8个客户端实现已经准备就绪:这是惊人的以太坊社区一年以来的成就。坦率地说,这将使Libra相形见绌。任何对此不以为然的人,都生活在与我不同的宇宙中。

既然有关以太坊2.0规范的更新进展已经在Github上被很好地跟踪和记录了,我就不像在以前那样详细介绍了。今天我们将从更广泛的角度来介绍相关的进展。

01.互操作性

随着阶段0的规范趋于稳定,现在的重点转移到各个以太坊2.0客户端实现之间的互操作性(interoperability)。当前由8个活跃团队正在跟上最新的以太坊2.0规范。

一旦信标链网络启用,每个客户端都将需要相互进行通信,以便就信标链的状态达成一致。每个客户端都需要遵循相同的规则:即使是一个位(bit)不正确,也会导致无法达成共识。

考虑到这一点,我们在布鲁克林的BushwickGenerator举办了一个研讨会,名为“通往互操作之路”(TheRoadtoInterop)。我拍了一些照片,感兴趣的人还可以观看现场录制的长达四个小时的视频,还有研讨会的议程。这是一个让几个客户端实施团队聚在一起,计划如何让我们的客户端彼此连贯地通信的场合。Vitalik在当天下午做了一个关于阶段2想法的演讲(见下文)。TerenceTsao也发布了关于Prysm客户端架构和设计的演讲幻灯片。

计划中的下一个重大事件是大约在9月初举办的主题为“InteropLock-in”的研讨会。那时,客户端实现团队将在聚集在安大略省某个偏远的小屋,但只有在我们确认了所有客户端都能够很好地相处之后才会进行。

数字资产启动平台2MR Labs完成新一轮融资,淡马锡旗下Heliconia Capital领投:金色财经报道,数字资产启动平台 2MR Labs 宣布完成新一轮融资,淡马锡旗下 Heliconia Capital 领投,Plug and Play APAC、The Assembly Place、PG 和 LucidBlue Ventures 参投,但本轮融资的具体金额暂未披露。2MR Labs 通过 Launchpad 支持企业进行 Web3 技术转型,推动数字资产广泛采用并重新定义企业在新数字时代的运营方式,目前已与冷钱包提供商 UKISS Technology、Web3 游戏平台 MetaOne、全球创业创新平台 Plug and Play APAC 等达成战略联盟合作伙伴关系。[2023/7/24 15:55:50]

JonnyRhea在Github上整理发布了拟定通往互操作性之路的各阶段,大家可进行参阅。

02.网络(Networking)

最终目标是使Libp2p成为以太坊2.0网络基础上的P2P通信协议(备注:Libp2p是一个便于使用者开发去中心化点对点应用程序的网络框架)。

然而,作为实现这一目标的一个简化步骤,各个客户端正在实现更简单的Hobbits协议,TrentonvanEpps发表的这篇文章对Hobbits协议进行了很好地介绍。Jonny也以推文风暴的形式阐述了Hobbits协议的基本原理,且ConsenSys也提供了一些奖励金来鼓励各团队在客户端中整合该协议。

与此同时,Whiteblock在Libp2p上做了一些性能测试,DanielChoi在ScalingEthereum探讨会上进行了介绍。他们的发现对Libp2p在某些情况下的性能提出了一些问题。但是,通过与PrtcocolLabs进行合作,我们还将对Libp2p进行一些进一步的测试,以探索与以太坊2.0相关的更真实的参数范围。

另一个有趣的进展是,PegaSys研发团队发表的拜占庭容错聚合协议Handel:PracticalMulti-signatureAggregationforLargeByzantineCommittees(《Handel:实现更大规模的拜占庭委员会的实用多重签名聚合》)。

该协议可以显著地加快以太坊2.0中验证者搜集区块证明(attestations)的速度,允许更大的委员会规模(committeesizes),因此可能更快地实现交易的最终性(finality)。

03.Testing测试(Testing)

在当前对阶段0进行开发的期间,大量的测试工作正在进行。值得注意的是AntoineToulme关于测试运行器(runner)的工作,这项测试工作由MolochDAO资助,可以通过这个视频来了解最近的进展更新,该视频非常值得客户端开发人员查看。

ParaSpace:已更新dApp前端以改善用户体验,现支持用户查看更多NFT清算信息:7月5日消息,ParaSpace在社交媒体上发文表示,该平台刚刚部署了前端更新,以改善用户体验并解决用户遇到的一些问题。本次更新提供了有关NFT清算的更多信息,并允许用户在借贷页面上查看其清算的NFT。[2023/7/5 22:19:10]

该规范是可执行的,并且所有跨客户端测试向量都可以直接从编写好的规范生成,这一点是非常棒的。

还需要进行大量的工作来对该规范进行模糊测试(fuzz-test),并提供一个用于对客户端进行模糊测试的框架,正如在最新版的以太坊2.0规范中所体现出来的那样。

04.形式化验证(FormalVerification)

RuntimeVerification已经编写了有关以太坊2.0存款合约增量Merkle树实现的审计报告,该报告使用Vyper语言(而不是Solidity)进行编写。

这是一个重要的里程碑,为将存款合约部署到当前的以太坊1.0链铺平道路。为了便于阅读,我们团队(备注:即PegaSys团队)的JoeDelong撰写了一篇解释性的有关以太坊2.0存款Merkle树的实现的文章。稀疏的Merkle数是非常棒的!

RuntimeVerification还将在K语言中生成信标链的正式可执行规范。

05.信标链上线

在上周以太坊2.0实施者的电话会议上,JustinDrake提出了信标链部署阶段的两个目标日期:

在DevCon5会议期间:将存款合约部署到当前的以太坊1.0链上。这一公开仪式将有助于避免子发布虚假地址来窃取人们的存款。

2020年1月3日:信标链创世区块可能诞生。那时信标链将正式启用。

信标链创世区块的诞生将取决于两个先决条件。首先,存款合约中必须质押有足够多的ETH。之前的一个硬性目标是质押的数量超过200万ETH,但这个要求已经被移除。但质押数量的目标将是一个保证信标链安全启动的指令。

第二个先决条件是目标为3个(或至少两个)“生产就绪”的信标链客户端和网络验证者。在此之前,所有客户端都要完成大量的兼容性、优化、测试、审计、改进、工具化、文档化和打包工作,所以我认为1月3日的目标有些雄心壮志。

阶段1:分片数据

最近,阶段1的规范已经成了Serenity的一片绿洲。

阶段2:状态执行

公平地说,就在几个月前,以太坊2.0要交付的阶段2还是一片迷雾。阶段2是所谓的“执行层”,这使得以太坊2.0区块链实际可用。该阶段将提供资金转移、实现智能合约和所有让dapp得以构建等功能。但是,就在最近的4月初,我们还不清楚该阶段将会是什么样子。CaseyDetrio在ScalingEthereum会议期间上做了一个关于阶段2的历史和现状的精彩演讲,非常值得你花五分钟的时间进行观看……当时针对此阶段的所有问题都是开放的,设计空间仍然是巨大的,可能性也是无限的,那时我们不知道从哪里开始。

加密项目Worldcoin推出自托管的移动应用程序:金色财经报道,由 OpenAI 的 Sam Altman 共同创建的眼球扫描加密项目 Worldcoin 今天宣布推出一款自我托管的移动应用程序(World App)。一旦今年晚些时候上线,它将允许用户管理他们的 World ID——以及包括 Worldcoin 令牌在内的一系列加密货币。[2023/5/9 14:50:41]

为了打破这一僵局,Casey在Ethresear.ch上发布了一项令人兴奋的提议:PhaseOneandDone:eth2asadataavailabilityengine。在不深入所有细节的情况下,这引发了一股创新浪潮,阶段2迅速而令人兴奋地开始成为关注的焦点。

之后Vitalik默默地公开了有关阶段2的首个提案及其后续跟进,以回应Casey的提议。新成立不久的Quilt团队的WillVillaneuva在Medium上发表了一篇对此进行解释的文章。在纽约的Interopday期间,Vitalik讲述了有关阶段2的最新想法(相关视频见),最后在多伦多的ScalingEthereum会议期间阐述了更多的背景信息(视频见)。

Vitalik提议的主旨是将以太坊区块链在执行交易中的作用降至最低。在以太坊1.0链中,只有一种执行交易的方式,即通过EVM。在执行了某个区块中的交易之后,交易状态的Merkle根将被写入该区块中。为了在该区块中的交易上运行EVM,所有的节点都需要存储整条链的状态(包含账户余额、合约存储情况等)。

目前的阶段2建议采用这个模型并加以推广。现在可以有几种(甚至很多)EVM类型(我们称之为执行环境,executionenvironments(EEs))。

执行环境(EE)就是在eWASM中编写的、(几乎)作为纯函数运行的代码。这意味着执行环境本身并不会存储任何状态:执行环境所需要知道的任何信息都必须伴随着交易一并被提供。因此,假如我想要发送一枚代币给你,那伴随这笔交易,我需要提供一个证明(比如一个Merklebranch),从而证明我的余额中有这枚代币;该执行环境不知道我的余额有多少,因为它并不存储任何信息。实际上,这并不完全正确:每个执行环境都将存储一个32字节的值,该值是其当前全局状态的某种概要或累加器(也许是一个Merkle根,但这并不是规定性的,它可以是任何足够安全的东西)。

以这种方式将执行层提取出来,这能够提供最大程度的灵活性。可能会出现针对zk-Rollups、ERC20之类的代币或者企业友好型环境、Plasam,亦或者使用Haskell编写的智能合约的EE(执行环境)等等。

其理念是,只要支付相当高的费用(大约100ETH?),任何人都可以部署自己的EE来支持自己的专业区块链环境。以太坊2.0分片链只关注基本方面:交易排序和数据可用性。

比特币活跃地址数在近24小时增加逾16万个,涨幅达19%:金色财报道,数据显示,当前比特币活跃地址数为105.22万个,地址数较24小时前增加了169,810个,涨幅达19.24%。这或表明市场对 BTC 链上交易和价值结算的需求有所增长。[2023/3/8 12:49:02]

当前,一些问题仍在积极讨论中:是否支持EE之间的同步调用、如何组装区块的细节以及收取gas费用、EE是永久性的还是需要支付一些存储费用(storagefee)、EE最初将在以太坊2.0中部署什么等等。但在我看来,这无疑是正确的方向。

如果你想了解更多关于这一切的细节,你可以查看Casey和Alex的Scout库,他们正在做一些可能的原型,以及他们在Ethersear.ch上发表的文章:Phase2executionprototypingengine。

对于我们这些更熟悉当前EVM执行的具体情况的人来说,所有这些听起来可能相当抽象和陌生。不用担心,适应以太坊1.0和以太坊2.0之间的平稳过渡路径已经成为一项优先事项,现在有一些有趣的想法可以有效地实现这一点。虽然还存在一些挑战,但相关的讨论一直在Ethresear.ch行进行展开。

其他信息

以下是我在过去一个月左右的时间里随机收集的一些零碎信息:

Chainsafe的ColinSchwartz正在撰写一篇以太坊2.0的完整指南以及有关以太坊2.0扩展性的第一部分;

DannyRyan在Ethereal会议期间传递的“CautiousOptimism(审慎的乐观态度)”;

EthGasStation与Prysm团队合作并发布了相关报告;

AlexStokes撰写了一篇解释以太坊2.0如何充当以太坊1.0的最终性小工具的文章,以及一篇有关以太坊2.0共识的经济安全性的文章;

MattGarnett列出的开启以太坊2.0学习的资源列表;

可以在Twitter或Peepeth上关注我,了解更多信息。

更多资源

相关的规范文档

?Pullrequests

?Commits

?Issues

验证者注册合约

两周一次的以太坊2.0实施者电话会议

https://ethresear.ch/

https://gitter.im/ethereum/sharding&https://gitter.im/ethereum/casper

Eth2.0Handbook更新

Sharding路线图更新

信标链相关问题

https://github.com/ethresearch/p2p/issues

以太坊Reddit社区地址

加密货币领域相关推特账户

----

文中涉及的链接:

:https://media.consensys.net/state-of-ethereum-protocol-2-the-beacon-chain-c6b6a9a69129

:https://github.com/ethereum/eth2.0-specs/releases

:https://photos.app.goo.gl/eV81rzNZoBBtnm1HA

:https://www.youtube.com/watch?v=NlDA3gKqysA

:https://hackmd.io/@vJTdwcwQSByvMaZGfTX_oQ/Hyz8Mw-9V?type=view

:https://docs.google.com/presentation/d/1UN5EV6nb2UHAQdVkE5BGkL2fyKKND0cdWi7gS2SWhAw/edit#slide=id.p

:https://github.com/ethereum/eth2.0-pm/tree/master/interop/hobbits

:https://medium.com/whiteblock/introducing-hobbits-a-lightweight-wire-protocol-for-eth-2-0-b1bfae5e4843

:https://twitter.com/JonnyRhea/status/1139245584169209858

:https://explorer.bounties.network/profile/0xb7693d3f040d66ab89ab86e7f8688c01febbc77c

:https://youtu.be/RW7K3JQOZOg?t=9335

:https://twitter.com/DeanEigenmann/status/1137032627230089216

:https://arxiv.org/pdf/1906.05132.pdf

:https://www.youtube.com/watch?v=4V-WQ2CnRfA

:https://github.com/ethereum/eth2.0-specs/tree/dev/test_generators

:https://github.com/ethereum/eth2.0-specs/releases/tag/v0.7.1

:https://medium.com/@josephdelong/ethereum-2-0-deposit-merkle-tree-13ec8404ca4f

:https://twitter.com/RosuGrigore/status/1131066228460675072

:https://github.com/ethereum/eth2.0-specs/pull/1152

:https://github.com/ethereum/eth2.0-specs/blob/dev/specs/core/1_shard-data-chains.md

:https://www.youtube.com/watch?v=RW7K3JQOZOg&t=6284

:https://ethresear.ch/t/phase-one-and-done-eth2-as-a-data-availability-engine/5269?u=benjaminion

:https://notes.ethereum.org/s/HylpjAWsE#

:https://ethresear.ch/t/proposed-further-simplifications-abstraction-for-phase-2/5445

:https://medium.com/@william.j.villanueva/a-journey-through-phase-2-of-ethereum-2-0-c7a2397a36cb

:https://youtu.be/NlDA3gKqysA?t=9441

:https://www.youtube.com/watch?v=RW7K3JQOZOg&feature=youtu.be&t=2090

:https://sites.google.com/consensys.net/fae

:https://ethresear.ch/t/one-fee-market-ee-to-rule-them-all/5608?u=benjaminion

:https://github.com/ewasm/scout

:https://twitter.com/alexberegszaszi/status/1132242394102009856

:https://ethresear.ch/t/phase-2-execution-prototyping-engine-ewasm-scout/5509?u=benjaminion

:https://twitter.com/cdetrio/status/1134949249974767616

:https://twitter.com/matt_garnett/status/1135925934882775043?s=03

:https://ethresear.ch/t/work-to-natively-integrate-eth1-into-eth2/5573?u=benjaminion

:https://medium.com/chainsafe-systems/ethereum-2-0-a-complete-guide-d46d8ac914ce

:https://medium.com/chainsafe-systems/ethereum-2-0-a-complete-guide-3739a74be61a

:https://www.youtube.com/watch?v=Z_dhq0MlFtc

:https://ethgasstation.info/blog/eth2-proof-of-stake-testnet-what-we-learned/

:https://medium.com/@ralexstokes/the-finality-gadget-2bf608529e50

:https://medium.com/@ralexstokes/how-secure-is-ethereum-2-0-consensus-41523a59f270

:https://twitter.com/matt_garnett/status/1136049338176720896

:https://twitter.com/benjaminion_xyz

:https://peepeth.com/benjaminion_xyz

:https://github.com/ethereum/eth2.0-specs/tree/master/specs

:https://github.com/ethereum/eth2.0-specs/pulls?q=is:prsort:updated-desc

:https://github.com/ethereum/eth2.0-specs/commits/master

:https://github.com/ethereum/eth2.0-specs/issues

:https://github.com/ethereum/deposit_contract/

:https://github.com/ethereum/eth2.0-pm

:https://notes.ethereum.org/s/BkSZAJNwX

:https://github.com/ethereum/wiki/wiki/Sharding-roadmap

:https://github.com/ethereum/beacon_chain/issues

:https://www.reddit.com/r/ethereum/

:https://twitter.com/benjaminion_xyz/following

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:0ms0-5:957ms