市集开发模式与以太坊 2.0 开发进程_区块链:CON

我最近重读了EricRaymond于1997年撰写的经典论文《大教堂与市集》。这篇论文探讨了如果允许各类参与者加入软件项目的开发中,会发生什么样的情况。Eric称之为开源软件项目的“市集”模式。虽然这种模式会带来许多嘈杂的声音,但这种看似混乱的局面却会激发出无穷的生产力和活力——更重要的是,能够创造出更好的成果。相较于“市集”模式,在传统的“大教堂”模式下,所有开发工作都是由一个封闭的小团队完成的。20多年之后,市集模式将展现出强大的威力。例如,Linux操作系统采用的就是“市集”模式,目前全世界大部分的计算都是使用Linux操作系统来完成的。

我发现从这一角度来分析以太坊2.0区块链开发非常有趣。以太坊2.0项目启动至今已有一年时间,感觉是个反思的好时机。

以太坊2.0项目已经很大程度上采用了开放式的市集型开发模式。然而,我们在Raymond的愿景上更进了一步:在以太坊2.0中,我们不仅仅是开发软件;而是要用完全开放的方式来设计整个协议。我不确定之前有没有人这么做过。

这并不是说要搞无政府主义。与Raymond的理念相符,开发工作主要由以太坊基金会内的小型团队领导,并由他们来掌握整体的开发节奏以及管理主代码库。不过,一切开发工作都是开放透明的,而且尽可能地扩大了参与范围。略举数例,以太坊2.0规范目前已经有62名贡献者,更多贡献者在参与9个客户端的实现,有一些人正在参与ethresear.ch网站上的研发讨论,还有一些人在参加两周一次的开发者会议。

确实,这个开发进程有时看起来确实杂乱无章,而且效率低下。目前已经有过很多次重新设计、修正和重写。然而,在这种乱糟糟的市集模式下,确实发生了一些很棒的事,一些非比寻常的事,一些开放性不强的开发者社区很难做到的事。

我已经强调过,而且会一再强调,这种开发模式为以太坊带来了强大的动力。激进式开放大幅提高了社区内的参与水平和认可度。像以太坊之类的技术从根本上依靠的是社区驱动下的“网络效应”,这是很重要的。这种参与度恰恰造成了以太坊与其他技术的天壤之别。

我经常会通过一个例子来思考这种强大驱动力,Vitalik最近也在推特上提到过它:这真的太神奇了,每当有需求出现时,就会有人出来解决它。在2017年底,JustinDrake神兵天降,重振了停滞已久的以太坊2.0研发计划。在2018年中,以太坊2.0显然需要更好的协调和规划:DannyRyan又站了出来。在2019年初,DiederikLoerakker突然空降,承担了为以太坊2.0创建客户端测试包的重要任务。我们的下一个挑战是点对点网络技术,而且有广大参与者加入。我可以再举出几十个例子,不过都用来证明这一个论点——市集模式才是真爱。

-市集模式的路线图-

一些对以太坊感兴趣的企业会问我一个有趣的问题,那就是:以太坊的路线图是什么?公平来说,虽然参与者对以太坊的开发进度的发展方向都有共识,但是并没有一个公开且详细的“官方认证”路线图。市集模式确实不会设定一个“合理的”路线图。Linux每周新闻网站上有一篇经典老文章就探讨了这一问题,最后得出的结论是:“试图在开发进程上强加路线图不会有任何帮助。”

话虽如此,我还是要在此提醒一句,以太坊2.0系统计划分为三个不同的阶段,每个阶段都在前一个阶段的基础上进行构建。阶段0是信标链,实行的是权益证明协议,用来取代工作量证明机制以保护区块链网络。阶段1是以分片链的形式来提供强大的可扩展性,会将网络的交易处理量扩大一千倍以上。阶段2是执行层,提供用户账户和智能合约,并支持去中心化的未来所必需的一系列分布式应用。

信标链

经过整整一年紧锣密鼓的开发之后,以太坊2.0信标链规范于6月30日冻结:研发和设计均已完成;我们已经完全进入了最终交付阶段。

信标链是以太坊2.0系统的基础。信标链主要负责管理权益证明协议的运行并协调所有独立的平行分片,而且它是整个开发中最复杂的部分。如果你对信标链了解不多,或者需要重温一下,可以读一下我的上一篇博文。

信标链这一概念是去年7月在柏林提出的,是以太坊2.0的未来发展方向。信标链的规范从一开始的白纸一张,融合了以太坊的早期构想,历经了反复的思考、讨论、审计和测试才确定下来。

与此同时,有不少于9个来自不同地域并拥有不同文化背景的团队正在使用不同的编程语言来实现这一规范,同时添加了可以推动信标链运行的基础设施。一些团队已经发布了公共的概念证明测试网,可以让用户体验一把当以太坊2.0验证者的感觉,例如PrysmaticLabs发布的测试网。

这个规范有时变得很快,我们已经在努力去跟上。最近,规范冻结是一个重要的里程碑,可以带来两大好处。

第一个好处是,该规范现在可以付诸形式化验证。考虑到严格的分析和正确性证明,该规范会被翻译成一种叫作K的专用语言。形式验证的工作将由RuntimeVerificaton团队来完成。该团队已经完成了对验证者质押合约的分析。验证者质押合约将部署在以太坊1.0上,用来将验证者转移到以太坊2.0上。

规范冻结的第二个好处是,能让所有客户端都赶上进度,开启下一个重要阶段:互操作性。以太坊2.0信标链客户端与目前的Geth、Parity和Pantheon之类的以太坊节点类似。以太坊2.0网络就是由这些信标链节点运行的。它们之间互相通信,而且更重要的是,彼此之间始终达成共识。随便一个漏洞造成的分歧,不管有多小,都会导致网络分区。

-在布鲁克林合作实现互操作性-

实现互操作性是需要一个过程的。首先,所有客户端都需要通过常见的参考测试。以太坊2.0的规范有一个非常有趣的特征,即它本身就是可执行的——可以通过运行规范来直接生成客户端测试。有些人可能偏爱叙事风格更强一点的规范,尽管如此,这是一个非常有用的特性。之前靠的是另一种很有效的“模糊测试”,成功追踪到了以太坊1.0客户端的诸多问题。这种测试就是反复将被破坏的数据喂给客户端,直到找到会致使客户端行为失常的极端情况。目前正在为信标链开发这类工具。

只要每个客户端团队都确认信标链能够正常运行,下一步就是开始互相进行网络通信。一旦出了问题,很难对分布式网络进行诊断。因此,这些客户端团队第一步就是执行一种易于调试和分析的简化协议,然后再运行完整的网络堆栈。目前的计划是所有客户端团队将于9月初到安大略省的一处偏远之地进行封闭开发:等到所有客户端实现都能正确进行互操作后才能出关。

互操作性为今年晚些时候要长期推出的联合公开测试网铺平了道路。想要参与进来的人可以选择安装客户端软件,在测试网上质押ETH,然后参与网络验证,或是尝试攻击网络。发现漏洞和问题的人可能会得到奖励。

最后,如果一切顺利的话,信标链将于2020年初上线。已经有人建议将上线日期放在1月3日,那天是挖出比特币创世块的纪念日。然而,要想主网能够完全投入运行,这个时间可能有点赶。在2020年第一季度末上线的可能性比较大。

在信标链启动之前,最后一步是将验证者质押合约部署到现行的以太坊1.0链上。凡是想要成为验证者的人可以通过质押合约注册质押32ETH。根据计划,该合约将于今年10月初的时候在DevConV上部署。一旦质押合约内的押金累积至200万ETH左右,也就是已注册的验证者达到6.5万名之后,即表明信标链具备了抵御攻击的能力,我们就可以开始启动信标链了。

分片链

虽然以太坊2.0是分阶段交付的,但每个阶段都是并行开发的。

阶段1需要完成分片数据链的设计和交付。这个时候,我们要往系统中添加1024条区块链,每条链都连接到信标链上。该阶段的协议比信标链容易得多,而且规范也只有信标链规范的一半长。

-以太坊2.0将成为一个空前庞大的点对点网络(感谢DanielAleksandersen的授权许可CCBY4.0)-

阶段1的主要挑战是由于验证者分散在1024条分片链上,这个点对点网络需要以足够快的速度与验证者进行准确无误的通信。这项开发目前与客户端互操作性开发同时进行中。

执行层

目前最激动人心的进展是,以太坊2.0交付已经步入最终阶段:执行层。有人写过这样一句话,我很清楚一张白纸带来的挑战有多大。有如此巨大的设计空间和无拘无束的开发氛围,很难知道从何处下手。以太坊2.0执行层的设计也面临着同样的问题。

直到几个星期之前,还没人确定该从哪儿下手:我们能在以太坊2.0上运行什么样的程序?用户账户会是什么样的?分片链之间如何进行通信?这些问题都没有想好;这里面存在太多的可能性。我们还未找到一条明确的前进道路。

CaseyDetrio打破了这一窘境,他在多伦多的以太坊扩容大会上简单讲述了Serenity的观念历程,同时给出了一个建议,现已证实非常有效。Vitalik采纳了Casey的建议,并在此基础上做了进一步完善。目前,其他人已经热情满满地加入了原型设计,并且给出定义。

在现行的以太坊区块链上,只有以太坊虚拟机这一个执行环境。每个智能合约只能由以太坊虚拟机来执行,执行合约只有一种收费方式,而且只允许使用特定的密码学签名和抗重放机制,这些都已经写入了底层协议。虽然以太坊虚拟机很强大,但是依然存在局限性:哪怕是只想发送少量ERC20代币,也需要往账户中充ETH;要实现真正的匿名转账很难;采用新奇的密码学技术的成本很高。

简而言之,以太坊2.0计划是将杂七杂八的东西都“分离出来”。区块链本身不再管控这些机制,而是提供一些不同的执行环境。每种执行环境都能够遵循自己的一套规则来运行,并且按照自己的目的进行优化。

例如,除了为编译进eWASM的智能合约提供的通用执行环境之外,还会有针对匿名代币转账进行优化的执行环境,针对类似Haskell的新型智能合约语言的执行环境,为处理高容量Plasma侧链而优化的执行环境,以及为企业用户量身打造的执行环境,具备许可性和隐私性。甚至还可能会有一种执行环境用来运行Facebook最近公布的Libra区块链的Move虚拟机。

还有一些细节就留到后续文章再来讲解吧——目前阶段2仍在飞速开发中,而且这篇文章已经够长了。不过,我会提一下阶段2新模型的一个重要成果。一直以来,以太坊2.0都有一个宏伟愿景,就是取代整条以太坊1.0区块链,将其作为以太坊2.0中的一个分片。这就为现有的以太坊应用提供了未来保障,最终彻底关停PoW模式。我们现在有了一个切实可行的解决方案,正在将原本虚无缥缈的愿景提上日程。“Eth1迁移到Eth2”的计划不需要在以太坊2.0刚上线时就开始实施,可以后期再加上,因此还有时间来改进。

结语

-热闹的市集-

就当前进度而言,我比之前更看好以太坊2.0的未来。我不喜欢夸大其词,不过我觉得最后的交付阶段阶段2可能会在2020年启动,早于之前预估的日期。最好不要引用我的这句话。

在向下一个阶段推进之前,我们还有很多事要做,不过路线已经比之前清晰了很多,参与度也越来越高。市集模式已经展现出了强大威力:那将是一个激动人心的场景,我相信让这么多人才积极参与进来,最后将取得显著成效。

市集是向所有人开放的:为什么不加入呢?

免责声明:作者的观点并不一定代表ConsensysAG的观点。ConsenSys是一个去中心化社区,其成员在ConsenSysMedia这个平台上自由发表自己的观点和看法。想要了解更多关于ConsenSys和以太坊的信息,请访问我们的网站。

原文链接:

https://media.consensys.net/ethereum-2-0s-latest-strides-forward-13f63652e57d

作者:BenEdgington

翻译&校对:闵敏&阿剑

你可能还喜欢:

科普|以太坊2.0的设计目标

干货|以太坊2.0Phase0V0.8.0技术规范详解

引介|信标链之外:Eth2中的执行环境

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

金宝趣谈

[0:0ms0-3:793ms