ETH:信标链的创世流程

大型的分布式多客户端区块链启动事件并不常见。昨天(7 月 30 日)是 ETH 1.0 诞生 5 周年:由此可见,如此重大的诞辰盛事更是少之又少。

ETH 2.0 测试网 Medalla 于 8 月 4 日上线,这可能是今年晚些时候信标链正式推出前的唯一一次预演。

ETH 2.0 创世机制有一点复杂,也就是我们所说的区块链自引导流程。我打算详细解释一下。对于实际的技术规范,你可以参见我在 “ETH 2.0 规范注解” 中的评论。

在下文中,“创世” 指的是信标链上线并开始处理见证消息(attestation)和区块的起始时刻,也就是 epoch 0 的 slot 0 的开始。

(如果你不想看长文,可以直接跳转到“场景”一节开始阅读。)

这里先介绍一下背景。只要向 ETH 1.0 的合约发送 32 ETH 的保证金以及其它一些数据,任何人都可以成为 ETH 2.0 的验证者。例如,你可以通过 Lanchpad 门户成为 Medalla 测试网的验证者。要注意的是,在 Medalla 测试网上,我们使用的是 Goerli 测试网 ETH !不要尝试将主网 ETH 发送至合约。当然了,等到信标链正式上线时,我们将使用真正的主网 ETH 。

以太坊信标链验证者总量突破59万:金色财经报道,据以太坊官方网站数据显示,以太坊信标链验证者总量已突破59万,本文撰写时达到590,482个,此外当前信标链ETH质押总数量达到18,828,998枚,APR为4.89%。[2023/5/29 9:47:44]

保证金合约只会对 有效 保证金作出反应,即金额达 32 ETH 及以上的单笔保证金、总计金额达 32 ETH 及以上的多笔保证金(需要检查额外的数据,例如,密码学签名)。任何无效或不足的保证金都会忽略不计。

在预创世阶段,只有信标链节点会参与 ETH 2.0 网络;一旦创世之后,验证者就可以立即参与共识机制。信标链节点维护系统状态,并在点对点网络上互相通信。

因此,在创世之前,会有一些信标链节点监听 ETH 1.0 ,并监控保证金合约中的有效保证金。实际上,信标链节点不需要一直监控 ETH 1.0 :ETH 1.0 上的区块是有时间戳的,因此在创世之前,节点随时都能赶上进程。

众所周知,ETH 1.0 链是可以回滚的,原本已经在链上的交易也可能因为区块链改变而失效。这就是为什么你将 ETH 转入交易所时,需要等待 30 个区块才能确保交易确认。回滚的范围通常很小——只有 1 至 2 个区块 —— 但是当网络遭受攻击时,回滚的范围会大得多。为了避免 ETH 2.0 发生回滚,我们在同步 ETH 1.0 时非常谨慎地保持 14*1024 秒(约合 4 个小时)的延迟。我称之为对 ETH 1.0 的 “跟随距离(follow distance)”。

以太坊信标链质押总量接近1800万枚ETH:金色财经报道,据 Dune Analytics 数据显示,以太坊信标链质押总量达 17,982,953 枚 ETH,质押 ETH 占 ETH 总供应量的 14.93%。其中,流动性质押协议 Lido 的质押份额达 31.35%。此外,存款地址总数已达 100,968 个。

此前报道,以太坊基金会宣布,将于北京时间 4 月 13 日 6:27:35 在 epoch 194048 激活 Shapella 升级。本次升级将使验证者能够将他们的质押份额从信标链撤回到执行层,还为执行层和共识层引入了新功能。[2023/3/29 13:32:49]

对于创世来说,最重要的两个问题是 “何时” 与 “何人” ?具体来说,就是 “创世会在何时发生?”以及 “谁会成为创世验证者?” 这两个问题决定了信标链的创世状态,其它状态都源自创世状态。

大致过程如下:

监控 ETH 1.0 上的保证金流入情况。

等过了足够长的时间,有了足够的保证金,创建创世状态。

以太坊信标链网络验证者数量突破38万:金色财经消息,据Ethereum官方网站最新数据显示,以太坊信标链(The Beacon Chain)网络验证者数量已突破38万,截止目前为385,547个。此外,当前以太坊信标链总质押量为12,928,081ETH。[2022/5/22 3:33:38]

两天之后,通过触发创世事件来启动 ETH 2.0。

具体来说,在步骤 2 ,我们要找到第一个满足以下两个条件的 ETH 1.0 区块:(a)锁定了足够多的保证金;(b)区块中的时间戳没有过早。创世状态由这个区块决定。

影响 “何时” 和 “何人” 的三大主要参数设置如下:

MIN_GENESIS_TIME,指的是创世事件最早发生的时间。就 Medalla 而言,就是 Unix 时间 1596546000 ,即, 北京时间 8 月 4 日晚 9 点(周二)。

GENESIS_DELAY ?是 172800 秒,约合 48 小时。这是从创建创世状态到触发创世事件之间的时间间隔。客户端团队可以利用这段时间将创世状态刻录到他们的信标链节点软件中。这样一来,那些不运行验证者节点的信标链节点就不需要继续监控 ETH 1.0 链了。我们也有时间来组织创世直播和派对

以太坊2.0信标链主网正式启动:beaconcha.in官方监测数据显示,以太坊2.0信标链主网正式启动。目前而言,ETH1和ETH2是两条不同链的代币。在信标链推出后,两条以太坊链存在过渡期间。用户将以太坊代币存入存款合约,可以通过ETH2.0网络获得代币质押激励。当前ETH2.0存款合约余额为881,505枚以太坊,预计年化收益16.7%。[2020/12/1 22:46:05]

MIN_GENESIS_ACTIVE_VALIDATOR_COUNT 指的是在创建创世状态之前,我们需要在 ETH 1.0 保证金合约中锁定的有效保证金的最低笔数。就 Medalla(以及主网)而言,最少需要 16384 名验证者。

从 Medalla 测试网启动中学到的教训:虽然我们有时间组织派对了,但 44 个小时对确保启动节点状态良好、升级后的客户端软件能包含所有必要信息、终端用户易于使用来说,还是有点赶。我们有可能会提高主网的 GENESIS_DELEY。

创世状态是在首个满足以下两个条件的 ETH 1.0 区块的基础上生成的:

酒儿:DeFi后续的表现,以及以太坊信标链整体要有一个大的爆发点:金色财经报道,在11月20日举办的《金色百家谈 | Gate.io的进阶之路:DEX和金融衍生品》的直播节目中,Gate.io合伙人酒儿表示,2020年初的时候,大家谈的都是减半,但当今年已经走过半的时候,你会发现,减半的效果反而没有带来那么大的效果。随后便是一系列的热点,DeFi质押量再创新高,BTC的价格一路上涨至18000美金,以太坊信标链即将启动,可以看到疫情过后,整个国内和世界的经济恢复其实有了比较明显的起色,美国大选的热议也给BTC的价值上涨带来了强大的价值支撑。最大的感受就是之前大家群里都说百倍币、千倍币,懊悔之余,其实会发现市场的魅力就是在于不同交易对手间在策略和经验上的不同选择。

接下来,其实我认为冲高还是有压力的,从之前的经验可以看出,大牛市基本上都是有预兆,并且会有大量的圈外流量引入,比如2018年新闻曝光,需要一个非常好的点去推,但目前可以看到,这个点的表现还是不足,或者还没到成熟的位置,但值得期待的是DeFi后续的表现,以及以太坊信标链的表现。我觉得整体要是有一个大的爆发点。但是同样值得期待。[2020/11/20 21:28:49]

这个区块创建时,验证者人数不得低于 16384 (MIN_GENESIS_ACTIVE_VALIDATOR_COUNT)。

时间戳没有过早(不早于 MIN_GENESIS_TIME - GENESIS_DELAY)。

根据上述两个条件的满足顺序,创世流程可以通过以下两种方式完成:

在这种情况下,条件 1 先得到满足。在最早创世时间之前,我们已经获得了足够多的保证金。

根据 MIN_GENESIS_TIME - GENESIS_DELAY(最早创世时间减去创世时延)可知,Medalla 的条件 2 时间点是北京时间 8 月 2 日晚 9:00(周日)。

我们用来触发创世事件的 ETH 1.0 区块必须在这个时间点之后挖出。假设这个区块在北京时间 8 月 2 日晚 9:00:05 (9 点过后 5 秒)挖出。

如果保证金合约收到了至少 16384 笔有效保证金(包括这个区块里面的所有保证金交易),那么保证金合约中收到的所有保证金也都包含在创世状态中。因此,ETH 2.0 链上有超过 16384 名创世验证者。(在 Altona 测试网上,我们将 MIN_GENESIS_ACTIVE_VALIDATOR_COUNT 设置为 640 ,但是最后的创世验证者有 685 位。)

这个 ETH 1.0 区块会触发创世状态的计算。Medalla 创世事件将在这个区块的时间戳的 48 小时后准时发生。接着上文的例子,就是北京时间 8 月 4 日晚 9:00:05 。

要注意的一点是,考虑到 ETH 1.0 跟随距离,我们实际上要等待 4 小时之后才能获得创世状态。也就是说,在当前场景下,我们要等到北京时间 8 月 2 日下午 5 : 00 才能获得创世状态。

总结

如果先达到最低保证金要求,创世事件将在最早创世时间的几秒后触发。在创世事件触发的 48 个小时之前完成注册的验证者都将包含在创世状态中。

在这种情况下,条件 2 先得到满足。由于保证金流入速度较慢,没有在指定时间达到最低要求。

在这种情况下,我们用来触发创世事件的 ETH 1.0 区块必须包含第 16384 笔有效保证金。假设这个区块在北京时间 8 月 5 日晚 8:34:56 挖出。

现在,信标链状态将包含 16384 名验证者以及这个区块中其它有效保证金。因此,如果这个区块包含多笔保证金,那么信标链状态中包含的保证金将略高于最低要求。

创世时间是该区块的时间戳的 48 小时后。接着上文的例子,就是北京时间 8 月 7 日晚 8:34:56。

再强调一遍,考虑到 ETH 1.0 跟随距离,我们要等到这个 ETH 1.0 区块挖出 4 小时后才能获得创世状态。

总结

如果保证金流入速度较慢,创世事件将在包含第 16384 笔有效保证金的 ETH 1.0 区块挖出后的第 48 小时触发。创世状态将包含至少 16834 名验证者,还可能因为这个 ETH1.0 区块中包含的保证金交易数量(使验证者总数超过 16834 个)而稍有增加。

本文已经介绍了 ETH 2.0 创世机制的基本内容。

如果你想成为 Medalla 测试网上的创世验证者,请务必在北京时间 8 月 2 日晚 9:00 将保证金发送至保证金合约!

如果你没有在创世状态确定前提交保证金,你就只能按照质押时间排队等待,等到创世后才能加入验证者集合。排队时间可能需要几小时或几天。

期待在 Medalla 上见到你!

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

地球链

[0:15ms0-1:539ms