9月15日消息,ETNT发布V1.0.0Ethereum分叉版本。该版本分叉难度为58,750000000000,000,000,000,还是原来的挖矿算法,分叉后的chainid=160160160,任何人都可以参与。硬分叉导致以太坊网络的余额被复制,即所谓的空投。
北京时间9月15日14时42分左右,以太坊正式完成合并。以太坊在区块高度15537393触发合并机制,并产出首个PoS区块,高度为15537394,以太坊共识正式从PoW转为PoS机制。
以太坊进入后合并时代,你对以太坊2.0了解多少?
1、信标链(Beacon chain)
信标链向以太坊1.0引入了权益证明,与以太坊1.0并行运行。信标链也被称为协调层。
信标链具有一下作用:
分配验证者的职责
确认检查点
执行协议级随机数字生成器(RNG)
促进信标链运行
投票决定分叉链头
2、Slots
32 Slot = 1 Epoch
1 slot的时间是12秒,随机选择的验证者在此时间内提议一个区块。每个slot中可能有也可能没有区区块。全部验证者被分成多个委员会,由一个或多个单独的委员会负责验证每个slot。委员会中有一个验证者将被选为聚合者(aggregator,),而其他127个验证者将进行验证。在每个Epoch之后,各委员会的验证者被混合并合并到新的委员会。每个委员会至少有128名验证者。
3、Epoch
1 Epoch = 32 Slot
1个Epoch表示32个slot的数量,大约耗时6.4分钟。
当涉及到验证者队列和最终确定性时,Epoch扮演着重要的角色。
4、存款合约
存款合约是通过以太坊1.0上的智能合约到达以太坊2.0的网关。
智能合约接受任何最少1个ETH和有效输入数据的交易。
以太坊2.0信标节点监听存款合约,并运用输入数据来信任各验证者节点。
5、输入数据
输入数据,也称为存款数据,是用户生成的,长度为842个字符的序列。
它表示验证者公钥和取款公钥,由验证者私钥签名。输入数据需要添加到交易和存款合约中,以便由信标链识别。
6、验证者(Validator)
验证者需要在以太坊1.0链上的验证者存款合约中存入32个ETH。验证者运营商必须运行一个验证者节点。验证者的职责是提议区块和签署证明。验证者必须至少保证一半的在线时长,才能获得正向回报。
符合激活资格&预估激活
具体参考下文关于等待激活验证者的相关术语解释。保证金存款已经过ETH2链“符合激活条件”时间戳识别。如果存在等待激活验证者队列,则需计算预估激活时间戳。
7、唯一索引(Unique Index)
每个验证者都会接收属于自己的唯一索引。
8、当前余额 & 有效余额(Current Balance和Effective Balance)
当前余额表示验证者目前持有的ETH数量。有效余额表示由当前余额计算的值,用于确定验证者获得的奖励或惩罚的大小。有效余额永远不得超过32 ETH。
为了增加有效余额,验证者要求“有效余额 + 1.25 ETH”。换换句话说,如果有效余额为20 ETH,则需要当前余额为21.25 ETH,才能获得21的有效余额以太坊。如上例所示,有效余额将在低于阈值0.25时进行调整。
以下是说明有效余额如何变化的例子:
如果当前余额为32.00 ETH ——有效余额为32.00 ETH。
如果当前余额从22.00 ETH下降到21.76 ETH——有效余额将为22.00 ETH。
如果当前余额增加到22.25 ETH、且有效余额为21 ETH,则有效余额增加到22 ETH。
9、举报人(Slasher)
Slasher自成实体,但需要一个信标节点来接收证明。
为了通过验证者发现恶意行为,slasher遍历所有接收到的证明,直到发现罚没攻击。
被发现的罚没被广播到网络中,下一个区块提议者将证明添加到区块中。区块提议者会因为罚没恶意验证者而获得奖励。
然而,举报人(Slasher)不会得到奖励。
可罚没的罪行
证明者违规(Attestation Violation)
双重投票:验证者在同一个epoch签署两个冲突的证明。
环绕投票:验证者环绕另一个证明签署证明。
提议者违规(Proposer Violation)
双重区块提议:一个区块提议者为同一个slot签署两个冲突区块。
10、证明(Attestation)
验证区块有效性的证明者(Attester)进行的投票。
11、区块提议者(Block Proposer)
信标链所选择的验证者,提议出下一个区块。每个slot只能有一个有效区块。
12、区块状态(Block Status)
已提议区块(Proposed):区块通过验证被验证者提议。
提议中区块(Scheduled):验证者正在提交数据。
漏块(Missed/Skipped):提议者没有在既定时间内成功提议区块,所以该区块被漏掉了。
孤块(Orphaned):为了理解该术语,我们来看下图,其中数字1-9代表slot。
1、slot1的验证者提议区块“a”。
2、slot2的验证者提议区块“b”。
3、slot4被漏掉了,因为验证者没有提议任何区块(如离线)。
4、在slot5/6出现了分叉:验证者(5)提议了一个区块,但是验证者(6)没有收到相关信息(例如,该区块到达该验证者的速度不够快)。所以验证者(6)根据从验证者(3)那里看到的最新信息提议了一个区块。
5、分叉选择规则在这里起关键作用——决定了可用链中那条链是规范链。
13、验证者生命周期
(1)已存入保证金
32 ETH已存入ETH1存款合约,该状态将维持7小时左右。这为在ETH1链受到攻击时提供了安全性。
(2)等待激活
等待在ETH2上激活。
在验证者进入验证者队列之前,它们需要经其他活跃的验证者投票加入。每4小时进行一次投票。
直到网络中有327680个活跃验证者之前,每个epoch可以激活4个验证者。每增加65536(=4 * 16384)个活跃验证者,验证者激活率就相应增加1个点。
此后每个epoch可激活5个验证者,则需要327680个活跃验证者,也就是每天1125个验证者。
每个epoch激活6个验证者,则需要393216个活跃验证者,也就是每天1350个验证者。
每个epoch激活7个验证者,则需要458752个活跃验证者,也就是每天1575个验证者。
每个epoch激活8个验证者,则需要524288个活跃验证者,也就是每天1800个验证者。
每个epoch激活9个验证者,则需要589824个活跃验证者,也就是每天2025个验证者。
每个epoch激活10个验证者,则需要655360个活跃验证者,也就是每天2200个验证者。
激活数量随激活验证者数量的增加而增加,其限制为激活验证者集除以64.000。
(3)活跃验证者(Active Validator)
当前正在确认和提议的块(=区块提议者)
验证者将保持活动状态,直到:
其余额低于16 ETH(被踢出网络)
自愿退出
被罚没
(4)被罚没验证者(Slashing Validator)
验证者是恶意验证者,将被罚没并踢出系统。
惩罚(Penalty)是一S种消极的奖励(如离线)。
罚没(Slashing)是重大的惩罚(≥1/32的质押余额)和强制退出... .—— Justin Drake
(5)正退出的验证者(Exiting Validator)
踢出网络:验证者余额低于阈值,被踢出网络。
退出网络:自愿退出,取款密钥持有人可提取相应验证者余额的当前余额。
14、最终确定(Finalization)
在以太坊2.0中,至少有三分之二的验证者必须诚实,因此,如果存在两个相互竞争的epoch,并且三分之一的验证者决定实施恶意行为,他们将受到惩罚。诚实的人会得到奖赏。
为了确定一个Epoch是否已经最终确定,验证者必须同意连续的最新两个Epoch(= “被证明的”),然后所有之前的Epoch都可以被认为已经最终确定。
北京时间9月5日19:26最终确认的Epoch和正在处理区块的Epoch
15、最终确定性问题(Finality issues)
如果某个epoch的投票率低于66.6%(=参与率),则该epoch不能成立。正如在“最终确定”概念提到的,需要连续三个被证明的epoch才能达成最终确定性。只要链不能达到这个状态,就存在最终确定性问题。
在存在最终确定性问题期间,验证者队列将被暂停,新的验证者不能加入网络,但是,余额小于16 ETH的非活跃验证者将被踢出网络。这使得网络更加稳定,参与率也更高。