来源 | hudsonjameson.com
作者 | Hudson Jameson
翻译 | 2DAO3 Flicka
校对 | ECN
这篇文章将讨论以太坊社区是如何做出协议级的开发决策,以及如何组织以太坊网络升级(又称硬分叉)。随着时间推移,以太坊的决策制定流程也不断发展,这其中有许多可追溯的历史。本文将重点关注 Eth 1.0 (执行层)治理,而不涉及 Eth 2.0 (共识层)治理。本文不代表以太坊基金会或其他与我相关的任何实体。
Martin Becze是以太坊早期核心开发者,他在2015年10月为EIP创建了GitHub仓库。当时EIP的流程机制参考了比特币改进提案流程(BIPs),而后者则是参考了Python 增强建议书 (PEPs) 的规范。以太坊改进提案是向以太坊社区提供信息的设计文档,它描述了以太坊的新功能、该功能的运行流程和环境。EIP需提供关于功能的简洁技术规范及其实现原理。EIP的提出人会负责推进社区对EIP的共识,并记录不同意见。
有几种不同类型的EIP,如低层次的协议变更,会影响共识层、需要升级网络的核心EIP,或规定了社区标准的ERC。最著名的EIP,是用于在以太坊创建自定义代币的ERC-20协议标准。
EIP 编辑的任务是检查 EIP 的技术可靠性、拼写/语法的正确性和代码风格。
Martin Becze,Vitalik Buterin,Gavin Wood 等其他人曾在2015年到2016年底担任EIP 最早期的编辑者。2016年10月,在以太坊开发者大会Devcon2之后,我接管了 EIP 的主要编辑工作。随着时间的推移,有更多的人加入/退出编辑组。目前的 EIP 编辑成员有我,Nick Johnson (ENS) ,Alex Beregszaszi (EWASM/以太坊基金会) ,Casey Detrio (EWASM/以太坊基金会) ,Nick Savers (社区)和 Greg Colvin (前以太坊基金会成员)。
【译者注:据官网信息,截止2022年8月30日,最新的EIP编辑成员包括Alex Beregszaszi (@axic),Gavin John (@Pandapip1),Greg Colvin (@gcolvin),Matt Garnett (@lightclient)和Sam Wilson (@SamWilsn)】
一般而言,EIP只要格式正确且内容合理,就会进入“草稿”阶段。我想说的是,哪怕EIP的内容是关于如何制作花生酱三明治,只要它创建遵循EIP-1里的规范,它基本能顺利进入“草稿”阶段。为了鼓励社区通过协作来构建和实现提案,我们有意模糊EIP获得共识并被宣布为“最终”状态的过程规范。EIP 不处于“最终”状态,并不意味着 EIP 中定义的标准不能在项目中使用。事实上,这才是 EIP 获得认可和验证的正确途径。
2020年1月, EIPIP (EIP Improvement Process)组织成立了。它的目标是聚集社区成员在每两周一次的在线视频会议或是论坛里(如Fellowship of Ethereum Magicians forum),共同制定EIP的改进计划。会议都会被录制并上传到youtube。改进目标会包括如何吸引新的 EIP 编辑和编辑工作引导优化。EIP流程的提效等也是改进内容之一。
The Fellowship of Ethereum Magicians (FEM)于2018年2月,由以太坊基金会社区联络员James Pitts和“以太坊的甘道夫”Greg Colvin创立。它的使命是“培养社区在技术方向和规范上的共识”。有些人将FEM形容为以太坊上的IEEE,但它其实是更去中心化,更以社区为导向的。它的在线论坛是讨论EIP和以太坊技术标准的主要阵地。FEM在大多数以太坊的重要事件中都会组织聚会,聚会里还会形成“rings”工作组。所有社区成员都能创建一个“ring”,并组织志愿者来解决被“ring”工作组识别的问题。你可以在FEM forum 看到“ring”的列表。(译者注:IEEE 指电气和电子工程师协会,是一个国际性的电子技术与信息科学工程师的协会,是目前全球最大的非营利性专业技术学会,其会员人数超过40万人,遍布160多个国家。)
从2015年下半年开始,以太坊联合创始人 Gavin Wood 创建了 AllCoreDevs Gitter 频道,主要聚集了 以太坊核心开发者。当时,只有少数几个客户端的以太坊核心开发者参加。最初的几次开发者会议是由Martin Becze 组织。2015-2016年,以太坊基金会的公关/社区协调负责人 George Hallam 也协助组织了部分会议。2016年10月,我接管了组织、主持和做会议纪要的工作。2019年,Lane Rettig (SpaceMesh)加入,协助安排会议和纪要工作。今天,其他人如 Tim Beiko 和 James Hancock,正在协助会议的直播和主持。目前, Ethereum Cat Herders 资助着 ACD 的会议纪要工作。(译者注:目前由 Tim Beiko 主持 ACD 会议)
ACD是技术会议,旨在将对决策协议方向发挥主导作用的以太坊团队聚集在一起。以太坊的客户端和研究团队,会负责项目更新,并讨论各种核心EIP以改进协议。
与会人包括参与低层级协议开发的开发者,客户端开发者和核心以太坊研究员。一般来说,每一个以太坊客户端都有代表参加,以及Layer 1 研究/扩容团队的核心成员。对某个领域有建树的非核心开发者,也会受邀参与特定内容的探讨。双周会是在周五举行,在youtube上会在线直播并录制。你可以在该链接查看会议议程、纪要和相关录屏。也可以在该链接查看未来会议安排。(译者注:现已改为每两周四进行 ACD 会议)
ACD是以太坊治理流程上的首要信条。正是在ACD会议上,决定了网络升级背后的细节和以太坊1.0技术栈的改进计划。我们尽可能地推进决策在以太坊社区达成大致的共识,但是避免使用投票的方法,因为我们是纯技术会议,设计文档、规范和实操更有助于争议解决和论点支撑。
以太坊生态非常缺乏组织建设和项目管理,所以我、Lane Rettig (SpaceMesh)和Afri Schoedon (former Parity) 在2019年1月创办了The Ethereum Cat Herders (ECH) ,“我们的目标是用最少的规则限制来解决问题,以推动以太坊更自由的向前发展”。最初,ECH通过资助ACD会议上的记录工作来提供帮助,也在以太坊核心开发者要求的 ProgPoW 审计里,承担着组织和筹款的重要工作。最近,ECH已经帮助很多组织为即将到来的网络升级(硬分叉)做准备,包括Istanbul 和Muir Glacier。随着升级将近,ECH 联系了交易所、矿工和基础设施供应商,向他们提供带有升级说明及相关信息的博客文章。ECH 会在官方Medium上每周更新一次,最近还发布了一篇介绍他们过去一年成就的文章。
在协议建设的早期,以太坊客户端和规范的变更,会在15人核心开发者小组内得到高效决策。因为他们是仅有的专家,所以这种方式是可行的。Vitalik Buterin 和 Gavin Wood此时更像是仁慈的独裁者。许多早期项目也是如此运作,这并无大碍,事实上,需要快速发展的项目正需要这种模式。
但以太坊的发展逐渐迎来了挑战。重大决策要花更长的时间来辩论,参与的人也开始增加。好处在于,要更改如此重要的技术,我们需要更多贡献者参与以及更加严谨的态度。以太坊没有像其他链一样建立链上治理机制,在客户端/协议级别上的升级,其最终决策由核心开发者来决定。有人批判以太坊太技术官僚,但这并不是它的全貌。有很多细微差异确实让以太坊的决策流程更高效。
在我的视角里,以太坊的核心开发者都是利他主义的,在考虑网络升级应包含什么内容的时候,他们尽最大努力在倾听社区的声音。当然,这完全是基于我个人视角,在判断处境的时候,我可能属于天真的乐观主义者。我们当前体系的替代方案,如链上治理机制,对我来说完全没吸引力,因为它们通常会导致财阀统治。我们无法找到完美的去中心化决策机制,但随着时间推移,以太坊及其治理流程定会日渐成熟。
任何有改进网络想法的开发者都能提交EIP。在2019年底之前,EIP流程很混乱,一个idea很难推进到协议层并得到完整实现。当一个EIP被创建后,它会进入以下某个步骤。步骤如下(没有特定顺序):
EIP在ACD会议外被讨论
在ACD会议上针对EIP进行讨论
决定实施EIP
引发更多讨论
创建测试用例
在客户端实现代码
有时候,如果EIP的影响微不足道且无争议,那它从被提出到推出实现的速度会很快。
更多时候,EIP会经历数月的讨论,才会推出实现,然后引发更多讨论,然后才开始测试,然后再回到讨论环节,最后才能被纳入到网络升级中。与没有代码仅有想法的阶段相比,在客户端中实现能让EIP获得更多曝光和认可。若不涉及紧急情况,网络升级一般会批量实施一组EIP。稍候有张图片展示了我描述的过程。
2019年,有更多围绕网络升级的决策流程改进意见。我们意识到,网络升级发生的频率会很低,计划好的截止期限常常被忽视,我们也缺乏人力来统筹围绕计划和执行硬分叉的所有任务。所以在2019年底,詹姆斯·汉考克(James Hancock)被聘请为硬分叉的协调员,他负责彻底改进决策机制,确保我们能按计划执行任务。经过数次不同策略的迭代之后,形成了现在“以 EIP 为中心” 的网络升级模式。与其在没有固定操作步骤下四处摸索,盲目加速EIP进程,倒不如让EIP经历一系列易于理解的步骤,并根据目标时间来安排网络升级。虽然这将导致更频繁的网络升级,但我们正在优化与生态参与者的沟通流程,这有助于减轻频繁升级带来的负面影响。
上图显示了新版EIP推进流程,最终步骤是主网上线(图片由James Hancock提供)。我们在2019年底开始推进部分环节,在发现哪些是行之有效以后,我们在2020年计划继续推进,并持续迭代和完善。
网络升级的协调,有更困难,也有更容易之处。当以太坊规模还很小、客户端很少、名声小的时候,支持以太坊的旷工、交易所和基础设施服务商能很容易通过Skype和IRC上的几个公共聊天频道,或者被认为有明确真实信息源(现在仍然认为)——以太坊官方博客,来了解网络升级和安全漏洞信息。
当前,官方博客仍是提供生态系统和网络升级最新公告的重要渠道,但以太坊基金会内外部都在共同努力,让以太坊官方博客不再作为主要信息源。ECH一直在输出网络升级公告的博文。将这类职责从以太坊基金会过渡给社区,对以太坊的未来十分重要。
随着以太坊逐步成长和进化,关于重要升级和安全信息公告的传播渠道也要做相应的提升。在2015到2018年间,生态的核心参与者主要依赖博客和聊天软件来获取相关信息。那些年,我曾是负责对外公布这类消息的4位成员之一。在此期间,为了和重要的生态参与者进行沟通,我们会同时打开约15个来自 Skype,Slack 和 Gitter 的聊天窗口,手动发送以太坊客户端的最新版本安装信息,以确保他们的系统安全和更新及时。直到ECH在2019年成立后,我们开始将工作转交给其他10多位小伙伴,由他们负责联系旷工、交易所和基础设施服务方。这是为了职责分散化,防止少数人滥用权力而必须采取的方式。
总结而言: 尽管以太坊基金会和Vitalik这样有名无实的领袖,对以太坊的早期发展起到关键作用,但火炬正在向社区传递,以使得以太坊的治理过程更加去中心化。
随着以太坊生态的成长,其决策流程已非常成熟。我们还有很长的路要走,但作为已成立了5年的社区,我相信我们在务实方面做到位了,也意识到,完美的决策和协调系统是不可能在一夜之间被建立起来的。
——————————————————————————
特别感谢 ECN 社区翻译志愿者 @Flicka 对本文的翻译贡献。
友情链接: