ETH:后续无力?非也 一文读懂以太坊技术发展历程_LIB

最新消息称,以太坊预计将于明年1月3日发布2.0零阶段创世区块,正式转为PoS共识。

在最近一次以太坊2.0进展更新电话会议上,研究员JustinDrake建议开始考虑如何更好地设定时间表,以帮助社区从以太坊1.0转换到以太坊2.0上。

JustinDrake建议,在今年10月于日本举行的Devcon5大会上,宣布以太坊2.0存款抵押合约正式发布,鼓励验证人开始将ETH抵押到该合约,用于未来的验证工作。此外,他还建议,在2020年1月3日正式发布以太坊2.0零阶段的创世区块,届时可以视为以太坊将正式转为PoS共识,这一时间节点是对BTC创世区块诞生11周年的纪念。

Ethereum1.x是短期内面向以太坊主网升级集合的统称。具体推进时,包括Vitalik在内的社区志愿者会提出改进提案EIPs,Geth、Parity、Aleth等客户端开发团队及其贡献者选择性的从提案中进行原型实现,然后逐步改善,做进一步测试,最终等待合并进入主网代码。

在这一过程中,以太坊客户端开发团队扮演的角色可以逐渐弱化,他们可以成为相关工作小组的一员。这一流程的好处是,降低了对核心开发团队的依赖,可以充分发挥社区优势,让理论研究和工程实现联系得更加紧密。

以太坊的开发计划

以太坊由天才程序员VitalikButerin创立,目前在加密市场市值第二,是矿工挖矿的主要选择之一。

但是,在创立之初,以太坊并没有确定以POW算法作为其发展目标。事实上,当时BTC的挖矿行为带来的巨额能源消耗已经饱受诟病。

同时,挖矿所需的算力往往容易被几大矿池垄断,这显然与去中心化的数字资产构想背道而驰。

因此,在以太坊诞生之初,开发团队就提出了一个为期三到五年的发展计划,一共分为四个阶段,分别为:Frontier,Homestead,Metropolis,Serenity。在最后阶段Serenity中,以太坊将正式从POW共识机制转化为POS共识机制。每个阶段的转换,都会通过硬分叉实现。

Frontier

以太坊的第一个版本,于2015年7月发布,其目的是建立一个有效网络。

在此版本中,实现了挖矿、交易功能,并可以进行dApp的开发测试。

Homestead

以太坊发布正式版本后的阶段,于2016年3月发布。这是第一个稳定版的以太坊网络。在此阶段,以太坊受到了广泛的认同,矿工人数也不断增加。

但是,在以太坊的发展路线规划中,它最终要转变为POS共识机制,彼时,以太坊网络将不再需要挖矿的矿工。

因此,以太坊开发团队在此版本中加入了“难度炸弹”的设定,每过十万个区块,以太坊挖矿难度将呈指数型增长。通过此举,以太坊矿工将不断离开,直到以太坊的共识机制成功转变为POS。

Metropolis

Metropolis分为两个阶段,一是Byzantium,二是Constantinople。

Byzantium已于2017年10月发布。在此阶段,以太坊为开发者提供了一个新的隐私工具——在链上高效验证zk-SNARK的能力。同时增加了可预测gas收费的功能,提高了挖矿的难度,并且将每次出块的ETH数量从5个降为3个。Constantinople也已于今年1月中旬发布。

Serenity

以太坊的最终阶段,预计于2020年进行。通过此次升级,以太坊将从POW机制彻底转变为POS机制。可能通过分片和子母链等方式增强网络的可扩展性。

五大改进提议

“君士坦丁堡”是以太坊2.0版本路线图的里程碑之一。该协议在2019年1月16日,即区块高度到达7080,000时,正式生效。之后,运行在“君士坦丁堡”上的节点将与之前的版本不再兼容,意即发生“硬分叉”。但与生成两种不同数字资产的那类硬分叉不同,这种硬分叉被认为是“没有争议的”,因为它不会产生分叉币。

君士坦丁堡升级共包含5个改进提议,分别是EIP1234、EIP145、EIP1014、EIP1052和EIP1283。

EIP1234:该提议对于矿工来说尤其重要,它要求延迟“难度炸弹”的加速,并将每次出块的ETH数量从3个降低为2个。此外,这项提议将“难度炸弹”推迟了500万个区块,历时约12个月。在此期间,以太坊将专注于迈向POS机制的技术发展。

EIP145:以太坊虚拟机中的逐位指令将被允许直接操纵EVM层上的字节,允许dApp开发人员优化某些操作,以节省gas。

EIP1014:将状态通道(statechannels)的概念引入到了以太坊网络,这将允许在链下进行交易结算。该扩容方案对以太坊网络的吞吐量进行了提升,区块链每秒将能够处理更多的交易。

EIP1052:引入了一种新的操作码,用于生成特定类型的哈希值。

EIP1283:调整现有的“SSTORE”操作码的净gas计量,这也将启用新的功能并降低gas成本,对于智能合约的开发者来说是有益的。

总的来说,君士坦丁堡升级主要对gas费用进行了优化,提升了以太坊网络的可扩展性,最重要的是,将挖矿奖励降低了三分之一,这对矿工生态影响巨大。

若论影响面,此次升级影响最大的应该是以太坊的矿机厂商和矿工。对于矿工,随着挖矿收益减少,机会成本提高,继续挖以太币的性价比显著降低。如果不能覆盖成本,部分矿工可能会转向一些性价比更高的小币种;对矿机厂商而言,随着矿工减少,可能面临收益下滑的局面。矿池也很敏感,它们可能需要新的币种,以留住即将流失的矿工。

以太坊1x:试图改变流程的一次尝试

以太坊1x不仅是一组路线图,而是一个创建全新的、更有效的流程机制的愿景。

典型的规则变更比如:

新增EVM(以太坊虚拟机)操作码;

gas计划的变更;

使某些规则无效(例如部署字节码大于24KB);

更改某些数据的含义,或某些操作的功能。

流程总结:

是社区成员助推了EIPs的诞生,因为他们想让以太坊更加完善。需要指出的是,在确定的技术验证结果出现之前,改进方向不可预测。

如果其中一些EIP吸引了客户端实现团队的注意,就会对其创建原型,进行进一步评估。三个实现团队分别为:

Parity:就网络节点数量而言,是第二常用的实现,但在矿池中最常用;

Geth(go-ethereum):就网络节点数量而言,是最常用的实现;

Aleth(原生C实现):是目前唯一能够“生成”共识测试的实现。

如果这三个团队都不想进行原型化变更,那么EIPs就不会发生。

此前的拜占庭(2017年10月)和君士坦丁堡(2019年2月)升级,间隔的这段时间需要在客户端实现层面进行大量工作,以确保其性能与不断增长的交易负荷相匹配。

原型实现通常会使EIP被细化和完善,但有时也会因为某些缺陷而被丢弃。同样,原型实现使创建testvectors(测试向量)变得更容易。测试向量描述了规则变更产生的影响,它需要用一种名为“filtertests”的特殊格式记录下来。

Aleth(C)实现较为特殊。因为在这个时候,将那些filtertests转换成共识测试的工具testeth与Aleth紧密耦合。这个过程使得EIP在Aleth中成为有效实现。以这种方式生成的共识测试,可以在大多数其他实现运行。

测试团队也很特殊,因为这个团队创建了大部分的测试向量,而EIP编写人员通常不会提及太多这方面的内容。

客户端使用共识测试来发现bug,驱动“Hive(蜂巢)”。

以太坊1.x或将采用的流程

但另一方面,与其等待成熟的实现团队中的开发人员对提案感兴趣,不如自己组建一个工作组,开始着手处理提案。当然,这并非易事,因为要找到愿意做这项工作的人,还有愿意为此出资的人,这些都是必备要件。但至少这个流程可以给我们一个很好的职责分化和一个可扩展的过程。

工作组会选择其成员最熟悉的客户端实现,并使用它来生成实现范例。再由实现范例生成EIP和测试向量。这一过程在今天已经可实现了。

目前还未能实现的是,如何从非aleth参考实现生成共识测试。但我们希望开发新的工具retesteth与最流行的实现集成。

如何找到工作人员?如何得到经济资助?这些问题需要克服几个挑战:

人才库非常有限。这是因为现阶段“核心开发”仍然被视为某种黑暗艺术。解决之道是改善自我描述,进行用户教育。

从持续资助几个实施团队并让他们做工作到资助临时方案,如何进行“尽职调查”?如何监督运营支出?谁能决定工作组是否完成交付?等等。

以太坊的“进化”路径原本是(PoW->混合机制/PoS->PoS->分片),但却在2018年6月被“完全重写”。这个重大转变的原因之一是以太坊变化过程过于缓慢,无法赶上Casper和分片的速度。

当然,在许多系统中,类似的转变时刻都在发生。从过往经验来看,只有找到比原有团队更有能力、经验更丰富的团队来执行操作,转折才会真正成功。

目前以太坊2.0尚未达到开发和改进开始的阶段,所以这一过程如何推进尚不可知。我们可以假设人们会尝试回归到以太坊1.0,但这正是以太坊2.0试图回避的。

目前,业界尚未充分认识到对以太坊的开发和改进过程进行投资的重要性。只有资金和开发人员到位,才能确保以太坊2.0在发布时状态良好。这一议题值得重视。

FlashChan、DuanniYi作者

SonnySun编辑

Roy排版

内容仅供参考不作为投资建议风险自担

版权所有未经允许严禁转载

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

区块博客

NEARLIB:以太坊和Libra对比分析_LIBRA

如果将Libra与现有的加密货币进行对比,以太坊无疑是最好的选择。两者都允许分别处理加密货币(ETH和Libracoin)、共同过渡到POS、以及运行用户定义的智能合约:自定义脚本,可以读取和操.

[0:15ms0-3:677ms