Eth2的进展更新 (截至2020年7月10日)

精选推荐

本期的文章荐读是Anthony Sassano的Daily Gwei 《eth1和eth2合并之路概览》

趁此机会,我想说Daily Gwei真的很棒,篇幅精简,内容准确且丰富。足以见得Anthony对于生态中许多领域的了解颇深。而且这是日刊,我很难想象每天要花多少功夫在这上面。(本条并非广告?而是完全出自本人对Anthony及其工作的钦佩)

另外,这周我觉得还值得一听的是Vitalik作为嘉宾的 Hashing it Out 播客。内容不仅限于Eth2,而是俯瞰当前以太坊生态中的方方面面。

社论

我上周突然发觉,距离我们相聚在柏林恰好两周年了,而这是我们解锁Eth2旅程的起点。 之前我们的工作方向一直是对分片和Casper进行独立设计,由Eth1上的智能合约管理。 但其局限性随后被证明:一方面,彼时的预期最低质押额是1000 ETH。

Eth2后来的雄心壮志已经远远突破了旧设计的局限性,我们可以说是从一张白纸开始重新设计这整个系统。我们是否做了对的选择?我完全相信这是正确的方向。旧设计的约束条件过于严格。(即使如此,在上面提到的播客中, Vitalik对于在起初没有采取最小可用的Proof of Stake机制表示遗憾 )

多么有收获的两年啊!? 我们目睹了巨大的创新和惊人的成就。回想起多客户端测试网从无到有,现在已经接近产品级,我仍然感觉难以置信。我从事产品开发已经25年了,我从来没有看见有哪一个重量级产品发展得如此之快。帮我个忙,如果下次你再听见这样的牢骚:Eth2到底什么时候上线?请礼貌地提醒他们这个事实。

阶段0:信标链

自上期以来的重大消息就是我们成功发布了Altona测试网 (浏览器/仪表盘)。 创世在UTC时间6月29日12:30:05顺利完成。 如果感兴趣的话可以看看由superhiz组织的录播。视频中我看起来有点不安,但随后同我的节点 Metal Albert 一样心花怒放,因为它挖出了创世区块。

当前运行中的测试网,Altona (多客户端) 以及Onyx (Prysm) 都在稳定运转,展示出向好的迹象。一个支持大规模参与的测试网络有望在2-3周内开放。请保持关注!

Least Authority发布了针对Protocol Labs的Gossipsub v1.1设计和实现的审计报告。这是我们会在Eth2中使用到的网络协议。其中有许多可调节的参数。在最近的开发者会议中,我们将很快发布一个次要规范,其中包含适用于Eth2的gossipsub参数。

说到审计,以太坊基金会也在为客户端使用的Herumi密码库寻找审计方。详情参见RFP,但要尽快了,截至时间是周二。

之前提到过BLS库产生了一个分支:Supranational的Blst库。一些客户端团队正在尝试集成,到目前为止其性能还是很可观的。有消息称,今年稍迟一些会对其进行形式化验证 (这比审计要严格许多)。

对了, hash-to-curve规范也更新到了v09版本, 但是v07和v09之间没有产生影响Eth2的实质性改变,因此对我们来说并无大碍。

以太坊基金会为ETHGlobal的HackFS提供Eth2和libp2p项目的赏金赞助。从测试网不难看出来,对于分布式系统来说,要分析并修复漏洞是一项很复杂的工作 (如果证明数量突然变少了,我们如何寻找原因?) 在这些问题上,我们亟待更好的工具。所以就看大家的了!?

工具

Jim McDonald在thegraph.com中为多个测试网 (Topaz, Onyx, Altona) 的存款合约添加了子图。这使得我们能够轻松查阅存款历史。快来The Graph上试试吧!

Protolambda发布了Rumor v2版本。Rumor是“使用Go语言编写的交互式壳层,可运行Eth2网络堆栈、连接测试网、调试客户端并为工具提取数据”。

Protolambda的工作从不单一,除此之外他还一直在构建一个脚本存储库,可用于信标节点交互或是处理Eth2数据。

区块浏览器也没有停止创新。Etherscan发布了一款支持电子邮件警报、仪表板以及其他功能的Eth2验证者浏览器[1]。详情参见BeaconScan。

同时,beaconcha.in也在持续添加新功能:根据涂鸦字符串构建仪表板、为验证者添加标签、注册验证者时对存款进程进行跟踪,他们还发文阐释了存款程序和验证者状态。

释义性文章

最近的文章大多与信标链节点和验证者的运行相关。参考以下:

▲ Attestant的Steve Berryman:在Altona测试网中安装并运行PegaSys Teku验证者

▲ CoinCashew:如何使用Ubuntu系统和Lighthouse客户端在ETH 2.0 Altona测试网中进行质押

▲ Hive Blog:使用树莓派4B 8GB运行Altona测试网验证者

▲ 设置Prysm验证者的详细教程。其中许多部分适用于所有客户端。

目前为止,这些文章多多少少都比较技术化,主要受众也是不惧繁琐的用户。如果觉得这些文章不适合你,不用担心,之后也会有许多类似DAppNode的简便即用性选择。

然而这也提醒我们,运行自己的节点需要付出一定工作量并承担相应的责任。这并不是一劳永逸的事,需要长期的投入和维护。

如果大家对多个Eth2的客户端感到困惑,Somer Esat对客户端的当前状态做了一次梳理 《以太坊2.0与七个客户端》 。Somer的文章很有帮助,我可以确定其中关于Teku的信息是准确无误的。(本文还有中文版)

这里我尴尬地承认在上期遗漏了一篇文章 (特别是我已经审校过其草稿?)。 Mara Schiedt致力于探索在以太坊2.0中使用秘密共享验证者,以增强网络的强韧性和多样性。 Eth2协议从一开始将这类去信任地多方计算功能加入了设计,尽管有些担心参与者最后会选择捷径,但我希望这能成为现实。

Bison Trails宣布对Eth2进行支持,并发布了一篇Eth2设计和路线图科普文章。

Ivan on Tech再次为我们解构ETH 2.0:读懂eWASM和EVM

Everstake也开启了一个Eth2系列,首篇:什么是以太坊2.0?

媒体

这期开始我将尝试新开一个板块,这个板块囊括了播客、推特和其他新闻,而收集的新闻放在这里是最合适的。

在我写这篇文章的同时,以太坊基金会开发团队正于Reddit上举办AMA问答活动。这些一直都值得关注——我们可以看看到目前为止一些很有价值的问答。去年开发团队举办的AMA问答由Ethhub整理并发布,以供参考。

Tyler Smith在twitter上发表了系列推文,内容是关于未来6-12个月内以太坊将面对的风险与机遇。不只是讲Eth2,但推文重点在Eth2上:

在ETHPlanet主办的夏令营里,Vitalik、Danny和Karl Floersch讨论了Eth2和以太坊扩容问题。可在YouTube上看重播(由于网络连接出现问题,链接跳过了前13.5分钟)。这是一次很好的概述性谈话。

另一个采访:播客MikoBits与Quantstamp的Kacper Bak进行了一场Eth2的深入探讨。(顺便说一下,Quantstamp对Prysm的安全性进行了审计。)

Bernhard Mueller和Vitalik讨论了如何简化Eth2路线图,并以系列推文展示出来。

与以往一样,关于信标链的发布日期有各种猜测。预测市场在这方面应该很在行: 信标链能不能在2020推出呢?Omen市场目前的比是55:45。Evan Van Ness押注500 USDC,赌信标链将于2020上线。而Polymarket市场预测比从56:44变为74:26?‍♀️

与此同时,Justin仍然坚持上线日期为1月3日。Vitalik和Danny想要加快上线进度。我非常期望今年以内可以上线,并且我们与Teku的所有产品规划都围绕着这个目标进行。再看一个关于上线日期的漫画。

图片源自推特 @preston_vanloon

研究工作

Aditya Asgaonkar发文分析了Eth2的弱主观性时期。之前提到,他的结论有些令人吃惊。我以为我们假设Eth2的弱主观性时期为几个月,但根据Aditya的计算更倾向于一两周。

弱主观性时期的出现是由于PoS协议何如适用于新入网的节点或是离线一段时间之后重新同步的节点。这不会影响大多数保持同步的节点。问题是,一旦验证者离开了网络,他们就可以随意制造历史区块或者历史证明,并且不会受到惩罚 (因为其无法被罚没)。

如果有一定数量的验证者这样做,那么他们可能会诱使新节点遵循错误的链。对此,我们采取的一种防御机制是限制验证者加入和离开网络的速率。但即使如此,Aditya表示即使验证者数量庞大,也可能会在几周内退出大量验证者,从而引发上述问题。

此问题的解决方案是让新节点在弱主观性时期内的某个位置能找到值得信任的检查点。这就能确保节点始终同步正确的链。Aditya提出了几种实现方式,我们也在最近的开发者电话会议中进行了讨论。

对于客户端开发人员而言,这可能意味着全然不同的工作流程。我们正在组建工作组讨论解决方法。显然,我们需要尽可能以去信任方式来分布这些检查点。

来自ethresear.ch:

Alex Vlasov (ConsenSys TXRX团队): 通过时间同步漏洞去匿名化。 贴文探讨了更多如何通过时间同步漏洞进行网络攻击,主要攻击点是对验证者进行去匿名化,Jonny Rhea (同样来自TXRX团队) 最近也一直在研究这个问题。

我们如何能够保护验证者的隐私呢?问题在于, 如果一个攻击者提前知道轮到我提议区块,那么我会被攻击者有选择地进行低成本DoS攻击。 这就导致网络为攻击者敞开了大门。

我们有方法使得每个slot的区块提议者无法被提前知晓,也即秘密领导人选举。但这涉及到复杂的密码学技术。

另外一种相对简单的方式是每个slot都随机选择多个提议者,期望值为1。这可以通过验证者签名秘密进行,但可能会导致每个slot出现多个甚至没有区块提议者。这两种方案各有其利弊。

Danny Ryan提出了一种结合两者优势的方案: 公开领导人选举 (PSLE) + 秘密随机备选选举 (SPBE)。 该方案的主要理念在于,如果真的发生了网络攻击,那我们可以放出烟雾弹,直到出现可靠的解决方案。

常规会议

实现者会议

7月9日进行了第43次会议。

▲ 会议议程

▲ 会议视频

▲ 我的速记以及Mamy的笔记

除了常规会议内容,我们还讨论了一些特殊话题:

▲ 事故响应:Sigma Prime的Mehdi正在组建一个跨团队工作组,以规定如何对事故进行响应,为的是随时应对信标链上发生的故障。

▲ 弱主观性:我们对上文中Aditya的弱主观性报告的结果进行了讨论。然而在大多数情况下,我们这群开发人员性格都比较内向,因此在电话会议中没有太多的讨论。但是,Aditya将召集另一个工作组,我希望在组内大家能热烈地讨论。

同时,我很期待Sigma Prime即将发布的”Fuzzing@Home”设置,该设置将其模糊测试 (fuzz-test) 环境放入Docker中,这样就可以通过大规模分布式的方式对客户端实现进行测试。

客户端团队

▲ 客户端团队Prysm的更新。顺便说一句,我们现在每两周发布一次Teku更新,读者可以查看我们的更新日志,而不是去看一篇辞藻华丽的文章。

▲ 我们修复了Teku中的一个细小bug,Adrian Sutton将此事件写了下来。摘要:晚到的区块 (late-arriving blocks) 导致了令人惊奇的竞争状态。

▲ 今天上午Lodestar团队的Cayman出席了台北以太坊交流会,并对其产品套件进行了演示:Web中的Eth2。点击此处浏览ppt。事实证明,Lodestar团队整理了一些我以前没有注意到的好工具:

  • https://simpleserialize.com 事实上,我听说过这个

  • https://enr-viewer.com <-我一直都期待着这个

  • https://bls-keygen.com

写在最后…

我的Gitcoin上的第六轮二次方匹配 (CLR) 捐赠计划收到了48位小伙伴的捐赠。非常感谢!你们太好啦?

至于如何完善我的规范注释项目,我的脑海里有更大的蓝图,不仅仅是只完成信标链部分。?在接下来的几周内,我将继续我的工作。

原文链接:https://hackmd.io/@benjaminion/wnie2_200710

来源 | What’s New in Eth2

作者 | Ben Edgington