以太坊2.0会议摘要#41

会议:以太坊2.0会议#41

会议日期:2020年6月11日

会议时长: 1小时

会议视频链接:

https://www.youtube.com/watch?v=WmU3k2v4UA8

会议日程:

1.测试和版本更新

2.测试网更新-密钥安全问题

3.客户端更新

4.API WG更新

5.研究更新

6.网络更新

7.规范讨论

8.开放讨论/总结

会议主要内容:

1. 会议开始,主持人Danny先介绍会议议程,这次加入了API的部分,其它和过往的会议一样。先开始 第一个议题:测试和版本的更新。 Danny介绍说这周做了几个优化工作的PR(Pull Request,合并请求)。一旦上线,Dev会通知各个客户端去集成和测试,他也强调这个改动比较小。可能下周会出一个包含这几个PR的版本。Danny接着说Lighthouse整合了Alex的分叉选择的测试,接下去会看看如何发布版本。

Proto介绍说他正在做验证节点(validator)的工具,帮助做压力测试和提高兼容性,以便更方便地和各个客户端结合。与此同时,他在Serenity上做了修改并集成进了网络工具Rumor里面,并计划做处理多个区块的链的测试(chain test)。在E2DB上面做了开源的浏览器(explorer),可以从Lighthouse的API来观察和记录分叉选择和区块,并做成数据库的形式以便进一步的分析。Danny总结说就像SQL的测试网一样。

https://github.com/PRotolambda/e2db/

https://github.com/PRotolambda/eth2-val-tools

Mehdi代表Becon Fuzz介绍说在Prysm上能做原始的Go的编译了,这样大大帮助了将Prysm集成进模糊测试的框架中去。当解码非交互FA字符串时,Lighthouse的ENR 数据库发生了紧急状况,但很快就修复了。他们也在整合Lodestar,并发现了4个问题,当前正在解决。此外,团队还在以太坊1.0和Geth上帮助做BLS的模糊测试,同时也在Docker化以太坊2.0的模糊测试,他们会请求社区一起帮助测试问题。他们还在分析OSS的模糊测试要求,并相信不久的将来就能在Google提供的基础设施上做模糊测试。

2. 第二个议题,测试网的更新 。首先Afi的麦克风有故障,只能文字更新。他主要写了三点:

•Schlesi已经成为历史。他清除了最后一个验证节点和启动节点。

•Witti相当稳定,10万个slots,75-90%验证节点的参与度,活力近乎完美。

•Altona可能会在接下来的一周半内推出,目前只有一个客户端可以满足0.12规格的要求。他们可能会发布4个客户端。他相信Nimbus这次能提供一个Genesis验证程序。也就是说,下一步他会邀请客户端团队参与Genesis,这样他们就有机会在发布时运行自己的节点。如果Altona成功了,或许会准备一个官方的、公共的多客户端测试网。

接下来是keygen hygiene(密钥安全)的更新。Danny表示有很多可以讨论,但是现在最需要的是先教育用户正确的使用测试网,比如不将取款凭证存储在用于质押的同一台机器上,要考虑分开放。还有另外一些考虑,比如密钥储存以及如何将密钥绑定在一起。所以第一步是需要从安全性开始着手。接着Mamy,Danny和Raul有一些关于如何培训用户安全性考虑的讨论,最后集中到三个用户相关问题:1)如何将账户从一台计算机移动到另一台计算机?2)用户的密钥在哪里?3)如何安全地移动它们?这个意见之后会反馈给审计和安全公司。

Danny让Proto谈一下大家对钱包和密钥存储的讨论。Proto表示这个问题的起源是他在进行外部密钥存储的时候出现的,比如在网络压力测试下如何为不同的客户端部署1000个左右的验证节点。最早他在Prysm上用的工具是以钱包为导向的,因此工具和账户,密码等元素联系紧密,相对和客户端联系不多,主要操作都集中在钱包里面。而Lighthouse就是以密钥储存为导向的,从文件系统目录加载,密钥是分开管理的。Teku的方式和Lighthouse类似,只是文件系统结构简单一些。Proto认为应该试着把这些东西系统化。

Danny询问Carl有没有更新。Carl回答说他有几点需要更新。首先是EIP-2333的更新。这个EIP是关于BLS的标准的。现在最大的问题是这个PR的版本太多了,需要清理。接着他介绍EIP-2334。这个EIP指定密钥存在的路径。即要为需要包含的密钥指定路径。取款密钥(withdraw key)是每个签名密钥(signer key)的配对密钥。秘密共享密钥是无论如何都需要遵循的,所以关于路径这个问题很值得我们探讨。因为根据定义我们并不知道这个路径会在哪里。

第三点Carl更新的是质押服务。直到用户得到取款密钥前,质押服务可以继续使用,并且质押服务可以单独派生签名密钥,然后取款密钥就一直是用户的。钱包将共享两种不同的记忆法,但Carl觉得这种做法让人非常困惑,并会增加丢失钥匙的概率。他个人偏好的另一个选择是使用硬件钱包,因为硬件钱包能够导出密钥库。因为密钥库是标准,所以可以将密钥保存在硬件钱包中。Danny询问有硬件钱包支持这个么?Carl说有的,但是他担心硬件钱包没有为了存储密钥库而匹配的哈希算力。

https://github.com/CarlBeek/EIPs/commit/690ddcc12c06f471acb4c06c1d6897d09338e489

后续Mehdi,Carl和Danny,Proto还有一些讨论,主要还是集中在用户如何储存密钥库和客户端的兼容性。最后Danny总结到,需要继续进行EIP标准的演进和讨论。另一个是需要发布一些指导意见说明如何在客户端使用密钥和存储密钥。他认为这个很重要,所以下周还会组织一次会议来进一步讨论这个主题。

3. 客户端的更新

Teku:v0.12的版本更新进行的很好,BLS,GossipSub1.1,分叉选择和状态转换都完成了。花了大力气在内存使用上,大量降低了热状态的内存使用。其它主要就是解决存在的问题。如果感兴趣,可以通过他们在Github上的仓库来研究PR。

Nimbus:有一些令人兴奋的进展。通过预存哈希树的根,区块和证明处理速度提高了10到50倍。客户端验证节点正在拆分中,第一个PR在v0.12版本上,并包括BLS,在编译时可以在v0.11和v0.12之间切换。EIP-2333还在PR实施中,审计将在10天内开始,并将很快公布。Grafana监控更新。测试网方面,在Witti上可以用手机启动Nimbus,它可以休眠一晚上并重新同步到区块头!发布了在手机上安装Nimbus的指南,也不再需要Go的环境。还存在一些错误需要改正,例如正在调查的Windows 32位、ARM64位问题。还有一个与分叉选择有关的问题:Protoarray 分叉选择无法最终确定。

Lodestar: 过去两周进展不大。v0.12更新进展到2/3,分叉选择完成,Gossipsub 1.1正在进行中。团队目前正在开发工具来启动临时测试网。一开始与测试网的同步是稳定的,但当还没有同步切换到gossip区块时候会出现问题,正在研究中。另外他们将要开发一个验证节点CLI,这个与钱包和密钥库的情况有关。所以他们一直在等待达成共识。一旦达成,他们会努力沿着指定的标准去实施。

Lighthouse:已经更新到了v0.12.1。测试已经通过,但仍有一些测试需要加到主线版本上去。Paul正在做分叉选择,Michael在做状态转换的逻辑。提出了一些有关规范的有趣问题,在Eth2的统计中可以给出内存使用情况。Lighthouse感谢来自外部的贡献者,在他们帮助下现在能支持Raspberry Pi规范并更新了文档。Schelesi上CPU使用量过大的问题也被解决,但还未合并到主线版本。正在选择另一家公司进行第二次独立审查。

Prysm:也已经更新在v0.12.1上了。他们关闭了Topaz测试网,发布了新的Onyx测试网,但是距离创世状态还有4000个保证金。预测周六的下午可以完成。正在Onyx上做多客户端的移动端的测试。现在才测试了Teku,然后是Lighthouse。现在他们开始支持原始的Go语言,这样用户可以开发自己喜欢的测试编辑器。

Nethermind:正在做以太坊1.0和2.0的集成以及升级到v0.12.1上。团队开始研究API的更新,准备做全自动的测试,并规划了一个专门做测试的人,从而提高他们的测试容量和速度。

Trinity:才更新到规范v0.11.3。在做一些优化工作来方便地调整主网的配置,同时也在提高分叉选择的效率。趁大家都在,Trinity的Alex告诉大家他们正在做一个代理合约,目的是为了验证抵押合约的BLS签名的有效性。他贴出一个链接,如果有人感兴趣可以看下去,也希望大家来帮忙提意见。Danny询问这个是不是已经部署在YOLO测试网上了,Alex回答说还没有,不过这的确是他想要做的方向。

https://github.com/ralexstokes/deposit-contract-verifying-PRoxy

4. 下一个议题是 API WG的更新 。Marin这次不能来参加会议,所以他给了一个简单的更新。Danny说/node已经被合并了,/beacon/state和/beacon/pool已经进到PR了。/beacon/block还在工作中。/config和/validator还是缺失的。Marin强调如果大家能去看一下PR,能指出哪方面缺少,或者哪方面很难实施,那将会对API很有帮助。

https://github.com/ethereum/eth2.0-pm/issues/158#issuecomment-641305001

5. Danny开始下一个议题, 研究更新 。Vitalik介绍说他和Dankrad在一些学者的帮助下,在研究Verkle树,这是一个可以用在状态储存上的默克尔树的替代品。几周前在以太研究上发表过帖子来阐述这个研究。现在问题是希望有一个东西具有所有默克尔树的属性。这是对于一大堆对象的承诺,从而可以为任何对象做证明。如果有一小部分数据被更改,你不必重新计算所有数据来证明新的承诺或新的状态的根,除了增加见证数据必须紧凑的要求。所以默克尔树的见证数据(witness)将会是每个对象大约700字节,这有点过于舒适了。

到目前为止主要的选择是凯特承诺(Kate Commitment)。假设有48个字节的证据可以证明无限数量的元素,但是,如果数据发生了变化,为了能够继续进行证明,必须对数据进行大量的重新计算,这是一种致命的错误。所以Vitalik想弄清楚到底是以怎样的方式重新计算的。关于最近的方向,他说他一直在研究Verkle树,这基本上是一种由凯特承诺做出的默克尔树风格的结构。所以Verkle树可能会在256到16000比特之间,但还没有决定。Danny问是否把状态空间和两个子集分开,分类,然后再把它们合并?Vitalik回答是的,可以做多层子集。他个人喜欢三层,每个承诺是2048比特,然后你就有3层2048,约等于80亿空间的元素。

6. 下一个议题是 网络侧的更新 。Danny说Age已经做到了用多地址连接到Discv5。他询问在协议侧和实施中有没有比较大的改变。Age回答说协议还是支持的,但是具体的实施比较困难。他们在CPU的使用量上出了问题,所以最后只能重新构建参数重来一次。现在只能支持在线对等节点ID。

7. 规范讨论开放讨论 这次没有更新。Danny宣布会议结束。

与会开发者:

  • AdityaAsgaonkar

  • Afr Schoe

  • Age Manning

  • Alex Stokes

  • BenEdgington

  • CarlBeekhuizen

  • Cayman

  • Danny Ryan

  • Dankrad

  • GrantWuerker

  • Guillaume

  • Hsiao-WeiWang

  • Jacek Sieka

  • JonathanRhea

  • JosephDelong

  • LakshimanSankar

  • Mamy

  • MattGarnett

  • Mehdi|Sigma Prime

  • PoojaRanjan

  • Protolambda

  • Raul Jordan

  • Terence(Prysmatic)

  • Tomasz S.

  • Vitalik

欢迎转发,本内容遵循CC BY-SA 2.5协议:

https://creativecommons.org/licenses/by-sa/2.5/

你的支持,是对我们的认可。来打赏我们一杯咖啡吧!**打赏地址:**

以太坊:

0x7Ba18D8d4B0E4EB06a720aF2BeC29603078c806b

Gitcoin:

https://gitcoin.co/grants/468/ethplanet