V神力推的以太坊2.0 发展的如何了
以太坊2.0的成就可能是独特的,但在由8+名研究人员和50+名开发人员紧急组成的研发工作中,其面对的挑战是通常都会遇到的。通过更强有力的协调、标准化的流程、沟通良好的共享路线图以及稳定的融资,以太坊2.0有所成效的日程会提速并,并将契合以太坊社区的预期。
作者:Matt Slipper & Dan Tsui
译者:王泽龙
以太坊2.0相关的研发工作正在快速推进,其计划于今年3月份发布信标链(beacon chain)测试网络。然而,一系列协调方面的问题放缓了其推进与实现的速度。在本文中,我们总结了相关问题,并提出了能帮助解决这些问题的方案。
总体情况概览
以太坊2.0”是指一系列可以显著改善以太坊区块链性能的规范(specifications)。截至本文撰写时刻,它是通过整合并改进两项较早提出的规范来实现此功能的:“Casper”,它为以太坊引入了PoS机制;以及”分片“,它将交易划分为数个由主链保障安全的“片”。这些”规范“为以太坊用户带来了以下好处:
-
PoS机制免除了投资设备并消耗电力以保障区块链安全的需要。进而,它通过显著提高51%攻击的成本以及减少依赖挖矿以保障安全的需求,改善了以太坊的终极特性.
-
分片提升了以太坊网络的TPS。
为了明确以太坊2.0当前的状态,我们采访了致力于研究和实现它的相关人员。
采访方法
我们通过视频电话采访了以下实现团队:
-
Nimbus
-
Lodestar
-
Artemis
-
Lighthouse
-
Prysm
每个实现团队都被问到了以下方面的问题:
-
团队状态;
-
开发状态;
-
路线图;
-
发布考量的因素;
-
依赖因素;
-
同其他实现团队的比较;
-
建议改进办法。
我们还通过电话采访了丹尼.莱恩(Danny Ryan),他是以太坊基金会的核心研究员之一。
业内人士的观察&以太坊2.0可能的结果
现在, 我们将采访结果呈现如下。
实现团队(implementation team)很投入,但是融资情况不容乐观
我们问了每个团队他们放弃以及何种情况下将放弃开发的可能性。所有我们交流过的实现团队都表态,只要资金足以支撑他们持续开发,他们愿全心投入以太坊2.0并见证它的到来。首先,实现团队十分关心以太坊2.0的到来,并且乐于清除其面临的障碍。具体来说,在问到这些团队他们需要什么才会放弃以太坊2.0的开发时,我们收到了这样的回答“我们愿意位置付出生命”(“We’d be dead before giving up”)以及“无论如何,我们都不会放弃开发”。然而,他们的热忱并不足以抵消市场的现实。如果以太坊基金会的资金枯竭,或者较大的支持这些团队的实体(如ConsenSys或者Status)取消对他们资金支持,那这些团队就有可能被迫另谋出路了。
研发规范(Spec)仍然混乱,但是在正在完善
以太坊2.0的研发规范在过去一年中经历了大量的混乱。据一位受访者说,相关规范“自去年年中以来已经完全改变了”,并且由于相关问题被研究团队发现和解决,它在经历持续的、常态化的“疗愈”(surgery)[译者注:此处喻指以太坊2.0的研发规范变化无常]。规范的每一个方面都将改变。例如,最近重要数据结构的命名都被“紧急”(emergently)改变了,即研究者需要改变他们脑中个别的名字及其对应的数据结构,并据此改变相应的规范,但实现团队并没有考虑这样的改变对实现以太坊2.0造成的影响。以问题#358为例,35个字段被重新命名,但Github的讨论区并没有收到实现者的任何反馈。这迫使实现团队不得不重做其促成的规范变化的相关工作——这造成了大量的令人失望的情况、时间的浪费,某些情况下还会减少分配给以太坊2.0项目的资源。
过去几个周中有数个减少围绕研发规范的混乱的、颇有潜力的进展。首先,据研究团队,目前有一项工作正致力于对研发规范的具体领域进行划分,以明晰哪些规范对实现团队来说是足够稳定的,哪些规范是仍然处于积极的研发当中的。第二,研究团队相信“(研发规范的)变化正在慢下来”并且“深度改编”(deep reorgs)的情况现在也变得少了。同时,以太坊2.0研发中的文化转变也正在发生:某个研发规范变化之于实现团队的影响现在被视为新的规范提案的一部分。由于这些进展,实现团队一致同意目前状态下的规范是可实现的。
实现团队不对研究者说No
大多数实现团队并不否决研究者。他们说明了两点理由:他们要么觉得没有资格否决研究者,要么觉得成功否决的可能性太小,以至于不值得这样做。这些感受因研究者描述其改变以太坊2.0规范的方式而得到强化:这些变化通常被描述为”显然更好“以及“难以被否决”——尤其是考虑到提出进行这些改变的人的资质后。诚然有些研发规范只能有一小部分人定夺,但这种”研究排他性“(“research exclusivity”)目前扩展到了所有的研发规范以及整个以太坊2.0的实现计划。
不同团队对以太坊2.0完成的定义
所有我们交谈过的实现者(Implementers)都在致力于3月份发布的测试网。该测试网络看起来是怎样的,其后将发生什么——不同团队有截然不同的看法。例如,因为互操作协议规范(peer protocol specification)尚未被完全接受,发布日时不可能有测试网支持节点间的互操作。有些团队将节点间的互操作性作为测试网发布的一个目标,然而有些团队则并没有。因此,很难清楚说明3月份发布的测试网将包含什么。
测试网之后的事情变得愈发模糊。没有哪个团队能预计Phase 2——包含跨片(cross shard)以及以太坊虚拟机(EVM)的完整的以太坊2.0规范——将何时准备就绪(到能促成主网发布的程度)。因为一些团队接受了开发信标链条的专项赞助资金,实现团队可能需要额外的资金以完成相关规范的开发。
最后,我们采访的团队中只有一个将用户接受度作为其目标之一(具体来说,是有”100位抵押验证者使用他们的软件“)。其他团队则各自聚焦于其所致力开发的规范。
实现者尚不清楚以太坊2.0后将发生什么
许多团队表达了对成功达成以太坊2.0后各自事业的担忧。没有哪个团队就如何在部署以太坊2.0后变现有清晰的答案,因此能否持续获得使其存活的融资(尤其是如果以太坊价格持续下滑的话),是这些团队的主要关心的问题之一。
以太坊2.0缺乏领军者
从组织的视角来看,没有一个人负责确保以太坊2.0的研发,同以太坊社区紧密相关。丹尼.莱恩部分地充当着这个角色。他认为自己是实现团队与研究团队间的桥梁,而他的努力也受到了高度的赞赏。然而实现团队们同丹尼的接触程度并不相同——有些团队表示他们希望能更多地接触丹尼。
以太坊2.0的叙事由研发过程外的人把控
想想詹姆斯.普雷斯特维奇(James Prestwich)的受欢迎的文章“当以太坊开发者对其充满期待时,我们能够期待什么呢”它包含了像这样的的论断:
-
“我们为以太坊1X编写的工具与合约,可能需要为ETH 2.0重新设计和编写。”
-
“Phase 1 并没有什么有趣的东西。从根本上说,这是一个用于交联的引导阶段,也是碎片引用信标链的对称机制。设计者似乎自信这些机制能有所作用。”
-
“有趣的是,Phase 0的部署与研发规范的部署同时进行。即使在距离测试网络发布不到三个月的时间,Phase 0 的研发规范也经常变化。这意味着未来以太坊2.0阶段的开发时间也将经常变动。尽管乐观主义者告诉我仅需要6个月的时间,但是很容易看到在Phase 0 进入测试阶段后,Phase 1的开发花费了12-18个月的时间。”
-
“[除了eWASM,EVM2,以及存储空间租赁],我不知道还能在Phase 2中期待什么。它尚处于十分早期的研究阶段,并且由许多主要的问题尚未解决。考虑到其非正式的规范和开发进程,以及Phase 2相对于Phase 1的延展,Phase或难以在2020年前发布。换言之,尽管以太坊2.0可能在今年发布,但不要期待它能够在2020年前支持资产转移和智能合约。”
-
“关于以太坊2.0的模型我们几乎没有什么信息。我们知道如果不牺牲扩容,其无法调用跨片合约。如果你在这里停止阅读,我不会责怪你,因为Phase 4只有一个在脑中的路线图及一些模糊的链接。一个显而易见的结果是,以太坊2.0直到Phase 4时,才能为复杂的智能合约提供富有意义的扩容的好处。在那之前,希望与其他合约互操作的合约必须与分片共存,且受限于其速度和扩容性。”
这些是开发者能够预期的如何利用以太坊2.0的具体细节。该文章还包含关于研发规范的大量的细节,但是作为一个以太坊开发者,最切身相关的信息是该规范将如何影响其工作以及扩容性的改进何时可期。由实现团队以及以太坊基金创办的媒体,与之相反,他们倾向于关注研发规范的新的研究进展及其一些具体部分的完成情况。看看以下的由Prysmatic写的开发进度更新 #20的总结。
最新研究
-
Phase 0的验证者客户端的责任
合并代码,提出请求以及问题
-
完成状态转换区块处理的E2E测试
-
完成状态转换Epoch处理整合/集成
-
为验证人存款合同实施存款监听器实现
-
实施者验证者存款检索
接下来的工作
-
以太坊信标链的幽灵叉选择规则
-
带验证器存款的信标链的全端到端测试
-
将我们的Solidity合约贬低给Vyper
-
创建信标链的事务池
-
重构验证程序客户端
-
验证程序私钥管理和其他机密
Misc
-
以太坊2.0实现者 电话会议 2019年1月17日
-
发布关于以太坊2.0的博客
影响以太坊“叙事”的因素——如它将何时达成,它将何时投入使用,开发者可以怎样使用它——更多地是由普雷斯特维奇而非Prysmatic的文章呈现的,因为前者的信息同以太坊使用者的日常工作更直接相关。我们对以太坊2.0团队在促进开发进程透明以及想要聚焦于技术性内容方面所做的努力表示赞赏。然而,如果没有研究和实现团队的人员对以太坊2.0何时就绪、它将是怎样的这些内容,做出额外的说明,那么以太坊的叙事将继续由外来者把控。这样会使得正确的预期难以被树立并存续。
附注:一场以太坊社区成员的对话,将我们引向了一份由高水平的、EthHub制作的以太坊路线图提纲。而官方的分片路线图文档,尽管有一定的指导性,但并没有对想要知道每个阶段的规范对其意义是怎样的那些开发者有很大帮助。
开放式问题
社区期待什么?
目前,围绕以太坊2.0何时发布以及它看起来将是怎样的大概是这些:
-
以太坊2.0即将到来,并很快会开放给公众使用
-
以太坊2.0的测试网将在3月份开始
-
以太坊2.0将解决以太坊在扩展性方面的主要问题
就我们同以太坊2.0的研究和实现团队的访谈情况来看,dApp开发者要想真正使用以太坊2.0还需要至少一年半的时间。从我们的理解来看,每一阶段可交付使用的产品如下所示:
-
Phase 0:.信标链
-
Phase 1:没有虚拟机的分片
-
Phase 2: 片上与跨片的虚拟机通讯(EVM Communications)
对开发者来说,如果他们想要在以太坊2.0中取得同以太坊1.0中同样水平的效用,phase 2 必须发布。
进一步,以太坊2.0之后的阶段的发布可能使得新的研究无效,或者重塑其路线图。尚不清楚是否整个以太坊社区对此有所意识。社区所期待的和实际发布的产品之间的落差可能会实质性地损害其部署的作用——强化以太坊无法扩展的论断,并进而使得新的开发者转战其他区块链平台。
在设计推出时,实现者的意见是否得到了征询?
我们尚不清楚有多少实现者的意见,以及什么样的意见进入了以太坊2.0每个阶段的决策。尽管我们理解分阶段部署的价值——例如., 它给了PoS这样的新技术时间在准生产环境(quasi-environment)去“燃烧”[译者注,这里是喻指在没有实现者意见参与的情况下,项目自己去试错]——但项目仍应坚持这样的逻辑:负责实现项目每一阶段的人首先应该是那些最有资格设计它们的人。这包含:某种技术设定的何时被引进的日程,以及每一阶段被设定的实现日程。如果在过去实现者的意见没有得到征询,那么信标链的发布会是一个引入实现者,并使他们参与相关进程的好时候吗?
使丹尼.莱恩称为官方的“以太坊2.0领导者” ,有助于以太坊2.0的实现吗?
以太坊的诸多不尽人如意之处都源于研究与实现团队间缺乏协调。作为横跨数年的计划的一部分,该协议包含无数不同的需要被整合的要素。在丹尼.莱恩承担起协调员的角色前,没有一个人居间监督这种整合。丹尼早已证明其作为领导的价值。他的名字在采访者间反复出现——作为后者想要多见一见的人,并且他在早期版本的研发规范上的努力展现了,他足够有见识地作为一个研究者来监督该项目。
明晰“领导”在这一语境下的含义很重要。我们使用“领导”意指这样的一个人:
-
负责确保以太坊2.0落地
-
可触及所有的实现团队与研究者
-
拥有否决权,可以在关键决策中打破僵局
-
拥有委任的权力,以确保正确的人在做正确的事
显而易见这是一种中心化的控制。然而,考虑到其所充当的角色赋予丹尼本人官方领导的地位,可能确保整个项目顺利整合,这似乎没有什么不好的。
建议改进办法
将“产品语境”涵括进面向公众的媒体
考虑到以太坊2.0之于以太坊网络成功的重要性,清楚地沟通将发布什么、何时发布以及如何准备是最重要的。为了使以太坊2.0团队和研究者产出的媒体内容同社区更相关,并重掌以太坊2.0的叙事权,我们建议以新的公开文章清晰地阐明以下事项::
-
最新的更新将怎样影响开发者
-
路线图的改变可能怎样影响以太坊2.0的时间线
-
研究和产品中哪些地方可能出现混乱
为持续融资提供一个清晰的路径
我们相信,激励各路团队对以太坊2.0的客户端进行长期、持续的开发,对于它的成功发布至关重要。但持续融资的来源模糊不清且令人担忧。如果以太坊基金会或者其他利益相关的主体联合起来,将资金聚集在一起并提供明确的资金数额及时间线,这将消以太坊2.0发布后将围绕它的忧虑——客户端项目如何持续融资并开发新的功能。
严格定义并执行正式的标准程序
由于缺乏正式的标准化流程,其固有的执行规范的协调问题会进一步加剧。通过开发和发布规范,以太坊基金可以充当以太坊2.0事实上的标准制定机构。因此,定义一项研究从提案阶段到正式实现阶段的标准程序,可以进一步减少围绕规范的混乱。有许多标准可以被以太坊基金会视为参考的例子,但我们推荐ECMA TC39标准程序的变体版本。我们的理由如下:
-
TC39的程序是开放的,并且吸收了现代的开发实践经验,如开发者早已熟悉的在Github上提交请求
-
TC39程序将验收测试(acceptance tests)和参考实现(reference implementation)融入程序本身。
-
TC39程序更易令人理解
-
该程序支持以固定的节奏新增标准
-
TC39程序的成功历史悠久。归功于TC39程序,JavaScript生态系统成功从10年的语言停滞中恢复过来。
据Babel说,许多以太坊开发者出身于JavaScript背景,并因此早已熟悉TC39程序。
我们建议以太坊2.0的开发至少引入TC39中”阶段“(stages)的概念。对于不熟悉的TC39提案,从第0阶段(稻草人)到第4阶段(完成),然后在TC39成员年会上作为新标准被批准。划分提案的阶段是为了使得一份提案能够成功发布的进程极度清晰。进一步,因为从一个阶段到另一个阶段都要求有向量测试(test vectors)与参考实现,研究者与实现者间被鼓励多进行对话。尽管一位实现者可能不够格去评论某项算法的具体细节,但是他们可能够格去评论该种算法如何实现。在TC39程序下,研究和实现进程都将被要求从阶段3转换到阶段4。
结论
以太坊2.0的成就可能是独特的,但在由8+名研究人员和50+名开发人员紧急组成的研发工作中,其面对的挑战是通常都会遇到的。通过更强有力的协调、标准化的流程、沟通良好的共享路线图以及稳定的融资,以太坊2.0有所成效的日程会提速并,并将契合以太坊社区的预期。
我们已经见证了这一加速进程发生的开端。在去年12月,Vitalik给予了Prysmatic、Lighthouse以及Lodestar团队1000以太币的奖励。另一接触的以太坊投资者追随Vitalik,给予了Prymatic 2800枚以太币,帮助Preston Van Loon 离开谷歌并全职投入到以太坊2.0的开发工作中,我们期待更好的结果。我们一同all in 以太坊2.0。
本文创作团队对以太坊2.0的价值
本文主要由Kyokan的Matt Slipper和Dan Tsui完成,Moloch DAO与Ameen Soleimani个人对本文的研究工作给予了资金上的支持。
Kyokan是一家位于旧金山湾区的区块链”本土“软件咨询公司。在过去,我们同MetaMask,SpankChain,Cosmos,Dfinity以及Uniswap建立过工作联系。此外,我们还收到了以太坊基金的赞助,用于搭建实现Plasma MVP,后者正在准备主网上线。我们的团队成员都有着为卓越客户和企业提供技术、软件服务的丰富经验。
Moloch是一家赠款促成的DAO/公会,同时也是一个自发激励联盟(voluntary incentive alignment)的激进实验,其目的是克服“公地悲剧”(tragedy of the commons)。具体来说,我们的目标是加速以太坊公共基础设施的开发,许多团队都需要它,但又不愿意在其上花钱。通过汇集我们的以太币和ERC20代币,以太坊投资者和基于以太坊的团队可以共同资助我们认为符合我们共同利益的开源工作。
在Moloch等各方的资助下,Kyokan将通过以下方式为ETH 2.0项目提供支持:
-
制作类似本文的报告和分析,以向社区通告以太坊2.0的进程
-
评估以太坊2.0内部的研发进展成效
-
帮助发展需要的组织化结构
-
帮助协调不同团队间的标准
-
帮助计划发展路线图
-
提供发布产品的协调帮助并为产品发布准备客户端
-
帮助进行开发者的招募
Moloch则致力于通过以下方式为以太坊2.0提供支持:
-
为以太坊2.0提供额外的资金支持
-
为关键人员的招聘提供资金支持,以提供跨团队的支持
-
为开源工具提供资金支持,以帮助以太坊2.0的开发