合集 | 网游 | 网游新闻 | 网游测评 | 网游攻略 | 网游视频 | 手游 | 手游新闻 | 手游测评 | 手游攻略 | 手游视频

以太坊分叉倒计时(以太坊7月分叉)

2022-10-09 15:10:04 /

字体大小:【 | |

以太坊分叉是什么意思?

君士坦丁堡,以太坊的下一次全系统升级,即将到达您附近的一个节点。

君士坦丁堡包括五个不同的以太坊改进建议(EIPs),已经于8月31日完成。一旦在以太坊上发布,这些提案将通过一系列新的向后兼容的升级永久地改变区块链。

这意味着运行以太坊软件的计算机网络的节点必须与整个系统一起更新,或者继续作为单独的区块链实体运行。

系统范围的升级在过去引发了相当多的戏剧性事件,更正式地说法应该是“硬分叉”。最值得注意的是,在一部分用户不同意这种变化的情况下,这可能导致同一区块链的两个不同版本同时运行。目前想要投资以太坊的朋友,可以到比特网交易所进行交易。

以太坊分叉倒计时(以太坊7月分叉)-第1张图片-坲魔头网

以太坊(ETH)的Berlin硬叉什么时间开始?

以太坊(Ethereum)

Berlin硬叉对于以太坊来讲将是史诗级的升级,它将会大幅度的改善GAS过高的情况,让以太坊的网络更加顺畅,为矿工带来均衡的收益。

以太坊的核心开发人员已确认,在4月14日进行Berlin硬叉的暂定日期,Berlin有望在OxBAD420区块上被激活。

Berlin是在以太坊1.0之上实施的更新,介绍了其操作的改进,而以太坊核心开发人员继续推动Beacon Chain的发展,这是以太坊2.0的股权证明区块链。5个客户端已准备好实施– Geth,Besu,Nethermind,EthereumJS和OpenEthereum。如下图所示,客户已经合并了包括EIP-2565、2315、2929、2718、2930的代码。只有EthereumJS尚未包括最后两个提议。

资料来源:Ethereum

Berlin硬叉会给以太坊带来什么?

Berlin启用后,预计EIP-1559将在7月单独启用,从而修改以太坊的费用模型。EIP在以太坊社区引起了人们的高度期待,因为网络的拥挤导致费用飙升,导致许多用户感到烦恼并迁移到其他区块链(例如Binance Smart Chain)。

以太坊目前运营两个独立的链:工作量证明和权益证明。

以太坊(Ethereum)挖矿

Berlin硬叉将标志着大都市时代的终结。 这是以太坊历史上的关键阶段,分两个阶段执行(拜占庭和君士坦丁堡),包括几个分支,包括亚特兰蒂斯,伊斯坦布尔,最后在Berlin达到顶峰。

以太坊硬分叉是什么

硬分叉是一种不支持向后兼容的软件升级方式。通常,这些情况发生在节点以与旧节点的规则冲突的方式添加新规则时。新节点只能与运行新版本的软件节点进行交互。结果,区块链发生了分裂,生产出两个单独的网络:一个按照旧规则运行,一个则按照新规则运行。节点在升级后变为蓝色。之前的黄色节点拒绝蓝色节点的连入,而蓝色的节点之间可以相互连接。因此,现在有两个网络并行运行。他们将继续产生区块和交易,但不再在同一区块链上工作。在区块链网络达到分叉区块之前,所有节点都具有相同的区块链(并且历史记录仍然存在),但是这之后它们将具有不同的区块和交易。由于存在相同的历史记录,因此如果您在分叉之前持有代币,那么您将在这两个网络上同时获得代币。假设在600,000区块高度发生分叉时,您手里有5 BTC。您可以选择在区块高度到达600,001时,在原始区块链上将这5个代币花费掉,但是在新产生的区块链上并不会记录这笔在600,001区块高度的消费。假设加密方式没有发生变化,那么在新的分叉网络上您的私钥中仍然会存在这5个代币。 以太坊硬分叉的一个案例是2016 年 6 月 17 日,the DAO 合约上出现漏洞并被攻击者乘虚而入,导致约三百六十万 ETH 被盗取。根据该合约的设计,这些资金需要被冻结 28 天才能成功被转移。如果没有采取任何措施的话,黑客会拥有 ETH 总额的 4.4%。为解决这个问题,备受争议的 EIP 779 被提出来,其目的在于修改攻击者的锁定合约。如此一来,ETH 持有者便可以从 the DAO 合约上提出其 ETH。7 月 20 日,以太坊大部分成员支持实行硬分叉,然而少数社区成员持反对意见,并决定实行硬分叉,分叉后的原链改名为以太坊经典 (Ethereum Classic)。

Quorum介绍(二):Quorum共识

我们知道,公共区块链是一个开放的社区,任何人都能够成为一个节点加入网络,在网络中计算,提交交易到链上等,因此公链是没有信任基础的,所以公链的共识第一要义就是证明交易的合法性和真实性,防止恶意成员的捣乱,效率不是第一要义。

与公链的环境不同,有准入门槛的企业链或者联盟链链上的所有成员在加入时实际上是已经获得了某些认可和许可的,因此企业链/联盟链上的成员是有一定信任基础的。在企业级链上我们没有必要使用POW或者POS这种浪费算力或者低效的交易共识。

Quorum提供了多种共识供用户采用:

在讲Raft前,有必要提一下Paxos算法,Paxos算法是Leslie Lamport于1990年提出的基于消息传递的一致性算法。然而,由于算法难以理解,刚开始并没有得到很多人的重视。其后,作者在八年后,也就是1998年在ACM上正式发表,然而由于算法难以理解还是没有得到重视。而作者之后用更容易接受的方法重新发表了一篇论文《Paxos Made Simple》。

可见,Paxos算法是有多难理解,即便现在放到很多高校,依然很多学生、教授都反馈Paxos算法难以理解。同时,Paxos算法在实际应用实现的时候也是比较困难的。这也是为什么会有后来Raft算法的提出。

Raft是实现分布式共识的一种算法,主要用来管理日志复制的一致性。它和Paxos的功能是一样,但是相比于Paxos,Raft算法更容易理解、也更容易应用到实际的系统当中。而Raft算法也是联盟链采用比较多的共识算法。

Raft一共有三种角色状态:

每个节点上都有一个倒计时器 (Election Timeout),时间随机在 150ms 到 300ms 之间。有几种情况会重设 Timeout:

在分布式系统中,“时间同步”是一个很大的难题,因为每个机器可能由于所处的地理位置、机器环境等因素会不同程度造成时钟不一致,但是为了识别“过期信息”,时间信息必不可少。

Raft算法中就采用任期(Term)的概念,将时间切分为一个个的Term(同时每个节点自身也会本地维护currentTerm),可以认为是逻辑上的时间,如下图。

每一任期的开始都是一次领导人选举,一个或多个候选人(Candidate)会尝试成为领导(Leader)。如果一个人赢得选举,就会在该任期(Term)内剩余的时间担任领导人。在某些情况下,选票可能会被评分,有可能没有选出领导人(如t3),那么,将会开始另一任期,并且立刻开始下一次选举。Raft 算法保证在给定的一个任期最少要有一个领导人。

特殊情况的处理

在以太坊中节点本身并没有角色,因此在使用Raft共识时,我们称leader节点为挖矿节点:

Raft共识机制本身保证了同一时间点最多只有一个leader,因此用在以太坊模型下也只会有一个出块者,避免了同时出块或者算力浪费的情况。

在单笔交易(transaction)层级Quorum依然沿用了Ethereum的p2p传输机制,只有在块(block)层级才会使用Raft的传输机制。

其中需要注意到一点,在以太坊中一个节点收到块以后就会立刻记账,而在Quorum模型中,一个块的记录必须遵从Raft协议,每个节点从leader处收到块以后必须报告给leader确认收到以后,再由leader通知各个节点进行数据提交(记录)

在Quorum模型中新块的信息是很有可能和已有块的header信息不符的,最容易发生这种情况的就是选举人更替(挖矿节点更替),具体描述如下:

假设有两个节点,node1和node2,node1是现有的leader,现有链的最新区块是0xbeda,它的父区块是0xacaa

对块“Extends”或者“No-op”的标记是在更上层完成的,并不由raft本身log记录机制实现。因为在raft内部,信息并不分为有效或无效,只有在区块链层面才会有有效区块和无效区块的含义。

需要注意的是,Quorum的这种记账机制和本身Ethereum的LVC(最长链机制)是完全不一样的

Quorum的出块频率默认是50ms一个块,可以通过 --raftblocktime 参数进行设置

投机性出块并不是以太坊Raft共识严格必须的核心机制之一,但是是提高出块效率的有效方式。

一个块从产生到实际被记录账本,走完整个raft流程实际上是需要耗费一定时间的。如果我们在上一个块被计入账本之后才开始产生下一个块,那么一笔交易想要成功被记录需要耗费较多的时间。

而在投机性(speculative minting)出块中,我们允许一个新块在它的父块被记录之前就产生。依次类推,在一段时间内,实际上会产生“投机链(speculative chain)”,在祖先块没有被记录进账本之前,一个一个新块已经依据先后关系组成了一条临时链片段,等待被记录。

对于已经被记录进投机块的交易,我们会在交易池中标记为“proposed transaction”

在之前我们说过,raft机制中是存在两个挖矿节点比赛出块和记账的可能的,因此,一条 speculative chain 中间的某一个块很有可能不会被记录到账本中。在这种情况下我们也会把交易池中的交易状态修改回来。( InvalidRaftOrdering event)

目前,Quorum并没有对speculative chain的长度做限制,但在它的未来规划中有讲这一点作为一个性能优化项加入开发进程,最后能够让一个挖矿节点即使在raft共识层没有连接上,它也可以离线一直出块,产生自己的speculative chain。

一条speculative chain有以下几个部分构成:

在块传输上我们使用etcd Raft默认的http传输,当然使用Ethereum的p2p传输也是可以的,但是Quorum团队在测试阶段发现,高负载的状态下,ETH p2p的性能没有raft p2p性能好。

Quorum使用50400端口作为Raft 传输层的默认监听端口,也可以通过 --raftport 参数自行设置。

一个集群默认的最大节点个数是25,可以通过 --maxpeers N 来设置,N是你的最大节点个数。

Quorum的IBFT其实就是PBFT,只不过摩根大通把它自己实现的PBFT叫做IBFT,所以IBFT的基本原理与PBFT是一样的,所不同的是,IBFT中把出块和共识的三阶段结合在了一起。

Istanbul BFT修改自PBFT算法,包括三个阶段: PRE-PREPARE 、 PREPARE 以及 COMMIT 。在 N 个节点的网络中,这个算法可以最多容忍 F 个出错节点,其中 N=3F+1 。

Istanbul BFT算法中的区块是确定的,意味着链没有分叉并且合法的区块一定是在链中。为了防止一个恶意节点生成不同的链,在把区块插入进链 之前 ,每一个validator必须把 2F + 1 个 COMMIT 签名放进区块头的 extraData 字段。因此,区块是可以自我验证的(因为有签名)并且轻客户端也支持。

然而动态的 extraData 也会造成区块的hash计算问题。因为一个区块可以被不同的validator验证,所以会有不同的签名,所以同一个区块会有不同的hash。解决的方案是,计算区块hash的时候把 COMMIT 签名排除在外。因此我们任然可以在保证block hash一致性的同时进行共识验证。

由于Ethereum POA共识在网上已经有大量介绍,笔者这里就不多做详细介绍,只对重要特点和POA的工作流程做大致梳理和介绍

以太币分叉送币吗

然而,ICO被禁之后,币圈又兴起了新的玩法——IFO。所谓IFO是指基于biteb、以太坊等主流币种而进行的分叉货币发行,在这些主流币的原有区块链基础上,按照不同规则分裂出另

根据上面的定义,IFO也就是存在预挖行为的分叉币项目,显然对于项目方而言,它就相当于变相的ICO,也即是说ICO的好处与弊端,IFO基本都会具备。 以太坊官方发布消息,以太坊网络将在区块高度9,200,000进行“缪尔冰川”硬分叉。事实上我们曾多次经历过BTC的分叉,2017年还掀起了一股分叉得糖果的浪潮。

这些是你想要的吗?