在最近一次以太坊2.0进展更新电话会议上,研究员Justin Drake建议开始考虑如何更好地设定时间表,以帮助社区从以太坊1.0转换到以太坊2.0上。
Justin Drake建议,在今年10月于日本举行的Devcon5大会上,宣布以太坊2.0存款抵押合约正式发布,鼓励验证人开始将ETH抵押到该合约,用于未来的验证工作。此外,他还建议,在2020年1月3日正式发布以太坊2.0零阶段的创世区块,届时可以视为以太坊将正式转为PoS共识,这一时间节点是对BTC创世区块诞生11周年的纪念。
Ethereum 1.x 是短期内面向以太坊主网升级集合的统称。具体推进时,包括Vitalik在内的社区志愿者会提出改进提案EIPs,Geth、Parity、Aleth等客户端开发团队及其贡献者选择性的从提案中进行原型实现,然后逐步改善,做进一步测试,最终等待合并进入主网代码。
在这一过程中,以太坊客户端开发团队扮演的角色可以逐渐弱化,他们可以成为相关工作小组的一员。这一流程的好处是,降低了对核心开发团队的依赖,可以充分发挥社区优势,让理论研究和工程实现联系得更加紧密。
以太坊的开发计划
以太坊由天才程序员 Vitalik Buterin创立,目前在加密市场市值第二,是矿工挖矿的主要选择之一。
但是,在创立之初,以太坊并没有确定以 POW 算法作为其发展目标。事实上,当时 BTC 的挖矿行为带来的巨额能源消耗已经饱受诟病。
同时,挖矿所需的算力往往容易被几大矿池垄断,这显然与去中心化的数字资产构想背道而驰。
因此,在以太坊诞生之初,开发团队就提出了一个为期三到五年的发展计划,一共分为四个阶段,分别为:Frontier(前沿),Homestead(家园),Metropolis(大都会),Serenity(宁静)。在最后阶段Serenity(宁静)中,以太坊将正式从 POW 共识机制转化为POS共识机制。每个阶段的转换,都会通过硬分叉实现。
- Frontier(前沿)
在此版本中,实现了挖矿、交易功能,并可以进行dApp的开发测试。
- Homestead(家园)
但是,在以太坊的发展路线规划中,它最终要转变为 POS 共识机制,彼时,以太坊网络将不再需要挖矿的矿工。
因此,以太坊开发团队在此版本中加入了“难度炸弹”的设定,每过十万个区块,以太坊挖矿难度将呈指数型增长。通过此举,以太坊矿工将不断离开,直到以太坊的共识机制成功转变为 POS。
- Metropolis(大都会)
Byzantium(拜占庭)已于2017年10月发布。在此阶段,以太坊为开发者提供了一个新的隐私工具——在链上高效验证 zk-SNARK(零知识证明)的能力。同时增加了可预测 gas 收费的功能,提高了挖矿的难度,并且将每次出块的ETH数量从5个降为3个。Constantinople(君士坦丁堡)也已于今年1月中旬发布。
- Serenity(宁静)
五大改进提议(EIP)
“君士坦丁堡”是以太坊2.0版本路线图的里程碑之一。该协议在2019年1月16日,即区块高度到达7080,000时,正式生效。之后,运行在“君士坦丁堡”上的节点将与之前的版本不再兼容,意即发生“硬分叉”。但与生成两种不同数字资产的那类硬分叉不同,这种硬分叉被认为是“没有争议的”,因为它不会产生分叉币。
君士坦丁堡升级共包含5个改进提议(EIP),分别是 EIP 1234、EIP145、EIP 1014、EIP 1052和 EIP 1283。
- EIP 1234:该提议对于矿工来说尤其重要,它要求延迟“难度炸弹”的加速,并将每次出块的ETH数量从3个降低为2个。此外,这项提议将“难度炸弹”推迟了500万个区块,历时约12个月。在此期间,以太坊将专注于迈向POS 机制的技术发展。
- EIP 145:以太坊虚拟机中的逐位指令将被允许直接操纵 EVM 层上的字节,允许 dApp 开发人员优化某些操作,以节省 gas。
- EIP 1014:将状态通道(state channels)的概念引入到了以太坊网络,这将允许在链下进行交易结算。该扩容方案对以太坊网络的吞吐量进行了提升,区块链每秒将能够处理更多的交易。
- EIP 1052:引入了一种新的操作码,用于生成特定类型的哈希值。
- EIP 1283:调整现有的“SSTORE”操作码的净gas计量,这也将启用新的功能并降低gas成本,对于智能合约的开发者来说是有益的。
若论影响面,此次升级影响最大的应该是以太坊的矿机厂商和矿工。对于矿工,随着挖矿收益减少,机会成本提高,继续挖以太币的性价比显著降低。如果不能覆盖成本,部分矿工可能会转向一些性价比更高的小币种;对矿机厂商而言,随着矿工减少,可能面临收益下滑的局面。矿池也很敏感,它们可能需要新的币种,以留住即将流失的矿工。
以太坊 1x:试图改变流程的一次尝试
以太坊 1x不仅是一组路线图,而是一个创建全新的、更有效的流程机制的愿景。
典型的规则变更比如:
- 新增EVM (以太坊虚拟机) 操作码;
- gas计划的变更;
- 使某些规则无效 (例如部署字节码大于24 KB);
- 更改某些数据的含义,或某些操作的功能。
流程总结:
是社区成员助推了EIPs的诞生,因为他们想让以太坊更加完善。需要指出的是,在确定的技术验证结果出现之前,改进方向不可预测。
如果其中一些EIP吸引了客户端实现团队的注意,就会对其创建原型,进行进一步评估。三个实现团队分别为:
- Parity:就网络节点数量而言,是第二常用的实现,但在矿池中最常用;
- Geth (go-ethereum):就网络节点数量而言,是最常用的实现;
- Aleth (原生C++实现):是目前唯一能够“生成”共识测试的实现。
此前的拜占庭 (2017年10月) 和君士坦丁堡 (2019年2月)升级,间隔的这段时间需要在客户端实现层面进行大量工作,以确保其性能与不断增长的交易负荷相匹配。
原型实现通常会使EIP被细化和完善,但有时也会因为某些缺陷而被丢弃。同样,原型实现使创建test vectors (测试向量) 变得更容易。测试向量描述了规则变更产生的影响,它需要用一种名为“filter tests”的特殊格式记录下来。
Aleth (C++) 实现较为特殊。因为在这个时候,将那些filter tests转换成共识测试的工具testeth 与Aleth紧密耦合。这个过程使得EIP在Aleth中成为有效实现。以这种方式生成的共识测试,可以在大多数其他实现运行。
测试团队也很特殊,因为这个团队创建了大部分的测试向量,而EIP编写人员通常不会提及太多这方面的内容。
客户端使用共识测试来发现bug ,驱动 “Hive (蜂巢)”。
以太坊 1.x 或将采用的流程
但另一方面,与其等待成熟的实现团队中的开发人员对提案感兴趣,不如自己组建一个工作组,开始着手处理提案。当然,这并非易事,因为要找到愿意做这项工作的人,还有愿意为此出资的人,这些都是必备要件。但至少这个流程可以给我们一个很好的职责分化和一个可扩展的过程。
工作组会选择其成员最熟悉的客户端实现,并使用它来生成实现范例。再由实现范例生成EIP和测试向量。这一过程在今天已经可实现了。
目前还未能实现的是,如何从非aleth参考实现生成共识测试。但我们希望开发新的工具retesteth与最流行的实现集成。
如何找到工作人员?如何得到经济资助?这些问题需要克服几个挑战:
- 人才库非常有限。这是因为现阶段“核心开发”仍然被视为某种黑暗艺术。解决之道是改善自我描述,进行用户教育。
- 从持续资助几个实施团队并让他们做工作到资助临时方案,如何进行“尽职调查”?如何监督运营支出?谁能决定工作组是否完成交付?等等。
当然,在许多系统中,类似的转变时刻都在发生。从过往经验来看,只有找到比原有团队更有能力、经验更丰富的团队来执行操作,转折才会真正成功。
目前以太坊 2.0尚未达到开发和改进开始的阶段,所以这一过程如何推进尚不可知。我们可以假设人们会尝试回归到以太坊 1.0,但这正是以太坊2.0试图回避的。
目前,业界尚未充分认识到对以太坊的开发和改进过程进行投资的重要性。只有资金和开发人员到位,才能确保以太坊 2.0在发布时状态良好。这一议题值得重视。
Flash Chan、Duanni Yi 作者
Sonny Sun 编辑
来源:加密谷
内容仅供参考 不作为投资建议 风险自担
本文地址: https://www.xiguacaijing.com/news/baike/2019/8976.html
赞助商