区块广播:

你们最关心的Eth2.0 最近进展来了

敦刻尔克大撤退副船长发布在 ETH/以太坊
 10011  0

作者 | Ben Edgington

编译 | Jhonny


致力于 Eth2.0 方面的工作是怎样的感觉呢?Bruno ?kvorc 认为感觉就像是在全速冲刺:要真正理解的新信息的数量是非常大的。每天都要花好几个小时来学习。”这是完全正确的,这就是我过去一年半的生活。

Bruno ?kvorc 推文大意:“致力于 Eth2 方面的工作有什么感受。就是当其他人都在惬意地骑着自行车时,你却在全速冲刺,只为跟上进度 ??♂? 如果你想要这种感觉,那就加入到这个领域中来吧 ? *每一天*要真正理解的新信息的数量是非常大的。每天都要花好几个小时来学习。”


读者们可以通过此链接 [1] 来查看之前的 Eth2.0 进展更新!同时我也在致力于为新进入这一领域的人撰写有关了解 Eth2.0 相关的信息,见链接 [2],但这方面 (以及其他方面) 的工作依旧在进展中。


本周秘籍:由 Vitalik Buterin 撰写的 “Serenity Design Rationale” 文档 [3] 已经发布,且 Vitalik 会继续维护此文档。(备注:Unitimes 已经翻译此文档→点击《V神亲诉Serenity设计原理》查看此文档译文)

阶段0规范及交付

此前已经“冻结”的阶段0规范进行了一个小更新,最新阶段0规范版本为 v0.8.2,详见链接[4]。此次更新的主要部分是大量的参考测试 (reference tests) 工作 [5],目的是使实现人员 (implementers) 更容易地理解阶段0的参考测试。

预计下周将会对此规范进一步进行小更新,发布v0.8.3版本。针对此规范并不会有实质性的变动 (因为此规范已经正式冻结)。之后将会有更多相关的参考测试、说明和打字错误修正。

Paul Hauner 在 Gitter 上提出了一个有趣的话题:Eth2.0在处理区块时可能存在 DOS 向量问题吗?[6] Paul 的这一发现引发了一次非常有趣的讨论 [7]。任何人都可以发送一个区块,并声称该区块的父块是在很久之前的 slot 期间产生的;这里存在一个“skip slots”的概念 (备注:即由于不是每个 slot 都会产生区块,因此某些 slot 会被“跳过”) 使得这种情况发生。由于跳过一些 slot (以及 epoch) 依旧是需要时间来处理的,在所有这些“skip slots”被处理之前,你无法知道某个区块是否为有效区块,因为在此之前,你并不知道验证者设置是如何更改的。这样一来,网络中的任何人都可以导致节点浪费时间。

针对此问题已经讨论了一些变通方案,且 Vitalik 已经进行了有关简化 empty epoch transitions 的思考 [8]。

赏金时间到了!

现在你通过此链接 [9] 来获取赏金了!? 如果在 Eth2.0 启动之前,你在阶段0规范中发现了会导致此规范需要进行实质性变更的问题,Justin Drake 将奖励给你 5 ETH 或者 1000 DAI (届时哪个价值更高就给哪个)。

此外,在赏金方面,Protocol Labs 也已经与 EthBerlin 合作设立了一些 libp2p 开发者资助金[10],如果你正想要寻找机会进行 Hack,可以参与其中。

抵押合约

如果一切顺利,抵押合约 (Deposit Contract) 将在 DevCon V 期间部署到当前的 Eth1.0 主网上。在此之前,抵押合约将一直受到 Runtime Verification 的密切关注,当前已经出现了几个问题:

1. 在研究抵押合约的字节码时,Daejun Park 在 Vyper 编译器中发现了一个 bug,详见链接 [11]。提交给 Vyper 的报告见链接 [12],且已经存在一个修复方案 (尚未合并) [13]。

2. 同时 Daejun Park 建议对抵押数据进行校验和 (checksum) [14],目的是保护进行抵押的用户,防止因客户端提交了带有错误编码的调用数据时导致抵押的 ETH 的遗失。有关修复此问题的讨论在继续进行 [15]。如果你想要试玩一下抵押合约,PegaSys 团队的 Adrian Sutton 撰写的这篇文章 [16] 为你讲述了有关如何与 Eth1.0 链上的抵押合约进行交互;这篇文章 [17] 则是讲述有关增加 Artemis 作为信标链客户端。

另一个有点相关的话题是对各种用于抵押的设备进行标准化 [18] 的讨论。这 (几乎) 不是需要达成共识的事项,且原则上各客户端团队可以自由地围绕这些项目做出决策,但达成一个共同的方式也是有意义的。其中一些关键的讨论包括对验证者地址进行校验和 [19]、硬件钱包、密钥库 (Keystore) [20] 以及针对 BLS 签名的备用抗量子基础设施 (比如 STARKs 可以作为一种备用的签名方案) [21]。当前有一个对应的库 [22],其中的 Python 抵押脚本正在进行开发中,且所有这些问题都在该库中进行讨论。这需要在 DevCon V 之前结束,因此要加紧进行!

开发者电话会议

8月15日进行了第23次 Eth2 实施者电话会议。正如 Hsiao-Wei Wang 所说的,从2018年8月2日第一次电话会议到现在已经整整一年了。我们已经走了这么远的路了!?

  • 此次电话会议的议程见 [23];

  • 相关视频见 [24];

  • 会议内容初稿见 [25] 和 [26],详细内容请关注此链接 [27]。

此次电话会议的一个要点就是 BLS 标准化方面的工作正在与扩容性合并在一起。Justin Drake 鼓励各客户端团队开始实现和使用这一新的标准,同时保留当前的实现,以实现互操作性。几个文档构成了这个新的 BLS 标准:一个 GitHub 库 [28]、签名规范 [29]、全新的 hash to curve 规范 [30],其中的 hash to curve 规范将是我们的主要工作。目前,这个新规范将合并到 Eth2.0 的开发分支中。

Gitter 上的讨论

过去两周以来在 Gitter 频道 [31] 上讨论的内容主要包括:

  • Paul Hauner 提到潜在的 DOS 向量问题 [32] (如上文所述),并引发了很好的讨论。

  • 另一种攻击 [33],即攻击者可以同时维护两个相互竞争的分叉从而阻止确定性 (finality) 进程吗?相关的讨论还在继续进行 [34]。

  • 是否存在空的 SSZ 向量 [35] ?且 SSZ 规范是不是太少了?

  • 之前遗漏的 BLS 测试已经合并 [36]。

  • 你是否在 CI 中缓冲参考测试数据?为了防止带宽费让以太坊基金会破产,Protolambda 希望你这么做 [37]。此前一些团队没有这么做!

  • 有人提出了奖励揭发者 (也即揭发验证者恶意行为的人) 的问题 [38]。

  • 有人提醒实施者查看V的 Serenity Design Rationale (Serenity 设计原理) 文档 [39]。

  • Danny Ryan 想要从各客户端团队看到一些 BLS 实现和状态转换基准 [40]。

  • 优化事项 [41]:Eth2.0 状态转换优化规范 [42];对 LMD GHOST 分叉选择规则的不同实现的比较 [43]。

  • 交联委员会 [44] 和轻客户端同步。

其他新闻

  • Nimbus [45]、Lodestar [46]、Prysm [47] 等最新的客户端开发更新。

  • Lighthouse 团队的 Eth2 测试环境的度量和 dashbord [48] 很棒。

  • Colin Schwarz 通过 Casper 和 信标链来解释 Eth2.0 的文章 [49],以及 Status 的新一篇 Eth2.0 系列文章讲述了如何实现 Eth2.0 的确定性 [50]。

  • Jacek Sieka 宣布了 [51] 一个非常棒的在浏览器内进行信标链状态转换的模拟 [52]。你甚至可以在运行结束时下载结果状态。Parity 的 Shasper 状态转换函数已经编译到 WebAssembly [53],你也可以在浏览器中试运行一下。

  • Jonny Rhea 已经在基于Rust语言的 libp2p 库中加入了包装器 (wrapper) [54],可以使用 C 和 Java 等语言调用该程序库,这对于实现客户端的互操作性是非常有用的。该包装器叫做 Mothra:这个很棒的视频 [55] 对此进行了解释,记得把声音打开。

  • Preston Van Loon 发布的关于 Prysm 库在过去20个月以来的代码提交可视化视频 [56]。

文中涉及的链接:

[1]:https://eth2.news/

[2]:https://eth2.info/

[3]:https://notes.ethereum.org/9l707paQQEeI-GPzVK02lA?view#

[4]:https://github.com/ethereum/eth2.0-specs/releases/tag/v0.8.2

[5]:https://github.com/ethereum/eth2.0-specs/pull/1320

[6]:https://github.com/sigp/lighthouse/issues/485

[7]:https://gitter.im/ethereum/sharding?at=5d48ec074635976e0439b243

[8]:https://github.com/ethereum/eth2.0-specs/issues/1340

[9]:https://github.com/ethereum/eth2.0-specs/issues/1345

[10]:https://github.com/libp2p/devgrants

[11]:https://github.com/ethereum/eth2.0-specs/issues/1341

[12]:https://github.com/ethereum/vyper/issues/1563

[13]:https://github.com/ethereum/vyper/pull/1572

[14]:https://github.com/ethereum/eth2.0-specs/issues/1357

[15]:https://github.com/ethereum/eth2.0-specs/pull/1362

[16]:https://www.symphonious.net/2019/08/13/into-eth-2-eth-1-and-the-deposit-contract/

[17]:https://www.symphonious.net/2019/08/14/into-eth-2-adding-artemis/

[18]:https://github.com/ethereum/eth2.0-specs/issues/1356

[19]:https://github.com/ethereum/eth2.0-specs/issues/1183

[20]:https://github.com/ethereum/eth2.0-specs/pull/1361

[21]:https://github.com/ethereum/eth2.0-specs/issues/1342

[22]:https://github.com/CarlBeek/eth2.0-deposit-tooling

[23]:https://github.com/ethereum/eth2.0-pm/issues/68

[24]:https://youtu.be/Av74vZRXeKo?t=427

[25]:https://gist.github.com/mratsim/5e3f38d04c4c33ae714b30819eacf1c9

[26]:https://docs.google.com/document/d/197ZK_cyxcwAF3V5yQ7DIPKFJ0zz2VMt7gGiSWbutygg/edit#

[27]:https://github.com/ethereum/eth2.0-pm/issues/69

[28]:https://github.com/cfrg/draft-irtf-cfrg-bls-signature

[29]:https://tools.ietf.org/html/draft-irtf-cfrg-bls-signature-00

[30]:https://tools.ietf.org/html/draft-irtf-cfrg-hash-to-curve-04

[31]:https://gitter.im/ethereum/sharding

[32]:https://gitter.im/ethereum/sharding?at=5d48ec074635976e0439b243

[33]:https://gitter.im/ethereum/sharding?at=5d494585757b7b19c86437ce

[34]:https://gitter.im/ethereum/sharding?at=5d4a3fb8d7fc954750120948

[35]:https://gitter.im/ethereum/sharding?at=5d4ae1db2612bb718c26b86b

[36]:https://gitter.im/ethereum/sharding?at=5d51a9c9a4efe3718dee29a7

[37]:https://gitter.im/ethereum/sharding?at=5d52893fbeba830fff84a353

[38]:https://gitter.im/ethereum/sharding?at=5d52c04953490e334de50a0f

[39]:https://notes.ethereum.org/9l707paQQEeI-GPzVK02lA?view#

[40]:https://gitter.im/ethereum/sharding?at=5d55780e90bba62a127eefe6

[41]:https://gitter.im/ethereum/sharding?at=5d558ac6beba830fff9ab8a4

[42]:https://notes.ethereum.org/FV1QczVpQSeI84ly_n2XKg

[43]:https://github.com/protolambda/lmd-ghost

[44]:https://gitter.im/ethereum/sharding?at=5d56ad981db76d0ffee24ea8

[45]:https://our.status.im/nimbus-development-update-aug-5/

[46]:https://medium.com/chainsafe-systems/lodestar-update-d354c861a01f

[47]:https://medium.com/prysmatic-labs/ethereum-2-0-development-update-32-prysmatic-labs-1fce63459403

[48]:https://twitter.com/sigp_io/status/1161181422813470720

[49]:https://medium.com/chainsafe-systems/ethereum-2-0-a-complete-guide-casper-and-the-beacon-chain-be95129fc6c1

[50]:https://our.status.im/two-point-oh-justification-and-finalization/

[51]:https://twitter.com/jcksie/status/1158854814958272513

[52]:https://arnetheduck.github.io/state_sim/index.html

[53]:https://github.com/paritytech/shasper/pull/174

[54]:https://github.com/jrhea/mothra

[55]:https://twitter.com/JonnyRhea/status/1161948145749766144

[56]:https://twitter.com/preston_vanloon/status/1162500817850703874

  • 正序
  • 最新
沙发,很寂寞......
登录 账号发表你的看法,还没有账号?立即免费 注册