在过去的三周里,Eth2.0 进展方面的信息异常平静。但这是有重大原因的:所有人都完全专注于在一次「禁闭」聚会中实现 Eth2.0 客户端之间的互操作性。
互操作性「禁闭」
上周,除了一个Eth 2.0客户端开发团队(即Shasper客户端团队)之外,其他所有7个客户端团队都聚集在加拿大的安大略的一个偏远的湖边小屋,
目标是让各团队的信标链节点彼此通信
。加入我们的有以太坊基金会的人员、Whiteblock的人员和 Eth2.0 阶段2的团队 (包括 ConsenSys Quilt 团队和以太坊基金会的 Ewasm 团队)。我就不在这里重述整个事件了,Danny Ryan 在基金会博客中发表了一篇相关的文章[1],我之后也会对此撰写一篇文章,敬请期待。我只想说,这次聚会的成功是我们事先没有预料到的。
一些相关推文
:
• #Eth2Interop is ?[2]
• Lighthouse 和 Nimbus 客户端宣布实现互操作性[3];
• Artemis 和 Nimbus 客户端也实现了互操作性[4];
• 紧接着是 Lodestar 和 Lighthouse 客户端实现互操作性[5];
• 之后是 Prysm 和 Lighthouse 客户端实现互操作性[6];
• Artemis 和 Trinity 客户端也实现互操作性[7];
• Trinity 和 Lodestar 也实现了互操作性[8];
• 之后 Artemis、Lighthouse、Nimbus 和 Lodestar 这四个客户端实现了互操作性[9];
• 接下来 Artemis、Prysm、Lighthouse、Nimbus、Trinity 这5个客户端实现了互操作性[10]
• 最后,最重要的时刻到啦,所有这7个 Eth2.0 客户端都是实现了互操作性![11] (备注,除了Shasper客户端之外)
• 特别需要提到 Parity 团队的 Wei Tang,他不能来现场,但依旧成功地实现了 Shasper 客户端与 Lighthouse 客户端之间的通信。[12]
其他相关的现场推文
:• 各客户端团队在讨论有关链同步的问题[13];
• Nimbus 和 Lighthouse 客户端在两台树莓派 (Raspberry Pi) 设备上实现了通信。[14]
• 我把这次聚会的一些照片做成了一个相册,放在这个网址了 [18]。
第#25次开发者电话会议在9月19日举行了:
-
会议议程[19];
-
会议视频[20];
-
我做的会议笔记[21]以及 Pooja Ranjan 的笔记[22];
本次电话会议时间不长,只持续了45分钟。我觉得是因为大家在互操作性「禁闭」聚会之后有些疲倦,也想在 DevCon 会议开始前稍作喘息。
值得注意的是:
以太坊2.0规范0.8.4版本将在未来几天发布
。这将包括网络 (networking) 规范的更新,以及一些特殊的测试向量[23],涵盖此次互操作性聚会期间各团队经历的少数几次未实现共识的情况。
以太坊2.0规范的核心内容仍将处于冻结不变状态,预计不会对核心内容进行更新了
。
Eth2.0 将使用的 BLS 签名方案的标准化工作[24]是一个尚未被广泛讨论的重大主题。与以太坊2.0一样,一些下一代区块链的平台 (比如 Algorand、Chia 和 Dfinity 等) 计划在 BLS12-381 曲线上使用 BLS 签名方案,且在未来采用一种通用的方法来促进互操作性是很有意义的。
如今,Eth2.0 客户端正在使用的 BLS 签名实现与被提议的标准有所不同
,特别是关于将哈希映射到曲线上的算法 (hash-to-curve algorithm,这是待签名数据被映射到椭圆曲线上的某个点的方法)。Sigma Prime团队的Kirk Baird已经开始起草
Eth2.0 BLS 规范的更新文档
[25]。
我们当前执行 hash-to-curve 的方法是非常简单的
,但不幸的是,这种方法没有达到标准
,主要是因为这种方法并不是常量时间 (constant-time) 的。
常量时间并不是我们在Eth2.0中真正需要的特性——所有哈希的输入信息都是公开的。但是
,我们需要使用新的 BLS 签名算法,以符合全新的 hash-to-curve 标准
[26]。
作为参考,我用 Java 实现 Eth2.0 的 hash-to-curve 新标准,它通过了所有的测试向量[27]。Kirk Baird 也正实力与使用 Python 语言来加以实现[28]。与我们当前的 Java 版本[28]相比,我的实现大约多了50倍的代码行?
所有这些待完成工作的一个重要影响是,
在当前的以太坊1.0链上部署验证者抵押合约 (Deposit Contract)
[29]
的时间将可能会延迟
。
最初,我们计划在10月份日本大阪举行的 DevCon 会议期间部署该抵押合约,但
现在看来这不太可能实现了
。
其中的问题在于,部分验证者登记流程涉及到生成 BLS 签名:在 BLS 签名方案实现标准化之前,我们无法确保该登记流程不会发生变动。但我们应该能在接下来几周内完成准备工作,因此
这应该不会推迟明年第一季度启动信标链的计划
。
简单地说,有几件事。Vitalik 对于阶段2的实现方式有了一些不同的想法[30]。实现阶段2的团队在此次互操作性聚会期间对此进行了深入的讨论。在发表意见之前,我需要更多地消化它。Ryuya Nakamura 继续思考有关
针对 Casper FFG 共识机制的攻击。
他继续有关Flip-flop攻击
[31]方面的研究,并发表了相关的分析文章:《
Analysis of bouncing attack on FFG
》[32],以及之后发表的《
Prevention of bouncing attack on FFG
》[33]。
如果下方内容由遗漏的地方,非常抱歉。
-
除了实现互操作性之外,Lighthouse和Prysm客户端都已经更新了。[34] & [35]
-
Lighthouse客户端团队成员 Mehdi 在 EthBerlin 会议期间的演讲PPT:《
以太坊2.0的性能与安全性
》[36]
-
David Hoffman 通过推特分享了 Vitalik 在 Ethreal 峰会期间的问答内容[37],其中有些关于Eth2.0的内容很棒。
-
Colin Schwartz 在 Medium 上发表的文章:《
Ethereum 2.0: A Complete Guide. Ewasm
》[38]
-
Julin Chiu 对 Casper FFC 的解释性文章:《
Casper FFG: Consensus Protocol for the Realization of Proof-of-Stake
》[39]
作者:Ben Edgington编辑:Summer来源:Unitimes