ETH2双周刊

Eth2进展更新(截至2019/8/31)

到目前为止,我已经在 Eth2.0 范围中隐藏了一年多的时间——Eth2.0的工作强度需要我这么做。因此参加 EthBerlin 让我有机会看看周围更广阔的风景,这真是太棒了。

EthBerlin 给我的收获:整个以太体生态系统的活动水平是如此惊人!🤯今天的以太坊,即便存在着我们所知道的一些限制和局限性,依旧是奇妙地充满活力、创造力和活力的!想象一下,当我们最终释放出 Eth2.0 的全部力量时,事情将会是怎样的🚀

本期精选:花点时间听听Eth2.0研究者 Danny Ryan 在 Into The Ether 博客中说的内容 [1],他对我们过去、现在和未来进行了很好地概述。

对了,别忘了帮我赢取一件T-shirt,文章底部有说明😆

阶段0规范

阶段0规范的V0.8.3版本已经发布了[2]。此版本是为9月份进行的客户端互操作工作目标而发布的规范。此版本中,核心规范没有实质性的更改,只是一些对测试的更新、一些说明和对网络连接规范的更新。

Diederik Loerakker (Eth2.0研究员) 在 GitHub 上创建了一个非常有用的文档[3],对各客户端在实现此规范方面的各种优化进行了很好地总结。

对规范的反馈

由于阶段0和阶段1的规范已经不再处于不断更改的状态,因此现在是对这些规范进行仔细审查和评估的时候了。

Runtime Verification已经对抵押合约 (Deposit Contract) 进行了审计,我真的很高兴看到更多这样的事情正在进行:对这一切的关注是越多越好。

本周,人们已经在对阶段0的分叉选择规则和阶段1的托管证明构造进行了审视。

01. 分叉选择规则

Casper CBC 研究者 Ryuya Nakamura 阐述了一个针对 LMD GHOST 的“decoy-flip-flop”攻击[4]。这种攻击不会破坏 Eth2.0 网络的基本安全,但在某些情况下,攻击者可能会利用网络故障来使信标链在敲定区块时延迟几个小时。

[备注:LMD GHOST 是信标链使用的分叉选择规则,即拥有最多证明 (投票) 的分叉链就是Eth2.0网络中的“权威链”]

我的理解是,当网络出现故障时,攻击者 (需要控制网络中的很大一部分,但少于1/3的验证者) 可以“保存”其证明 (attestations,即对区块进行的投票),然后在之后的时间使用这些证明来延迟信标链对区块进行敲定。这暗示了对 LMD GHOST 规则的一些可操作性。

Ryuya提到一种可能的防御方式就是将该分叉选择规则修改成 FMD (fresh message driven) GHOST:验证者的证明只有在一个有限的时间内是有效的,因此攻击者不能“保存”证明。但有关 FMD GHOST 的细节尚未得到分析,且其中一个担忧是 FMD GHOST 将可能与 Casper CBC 不兼容。

02. 托管证明 (proof of custody)

与此同时,密码学家 Dmitry Khovratovich 受委托将使用 Legendre PRF 对提议的用于生成托管证明的机制进行审计。有关托管证明问题方面的介绍和背景信息,可以查看此文档:

https://github.com/ethereum/eth2.0-specs/files/3551615/legendre_proof_of_custody_uhf.pdf

在其审计文档中[5],Khovratovich 发现了最初提议的托管证明结构存在的几个问题,以及针对 Legendre PRF 本身可能进行改进的攻击。他提议了一个全新的托管证明协议[6],该协议依旧使用 Legendre PRF,且当前已经有人提议将这个全新的托管证明协议整合到阶段1规范中[7]。

以太坊基金会已经提供了一些赏金[8],用于发现针对 Legendre PRF 的潜在攻击,甚至一些赏金还将用于针对 Legendre PRF 的论文。

公开讨论的问题

以下是一些我最近注意到的有关 Eth2.0 规范仓库的公开讨论问题:

  • 针对阶段0的奖惩计算器[9]:为了使参与质押的验证者将获得的激励和风险更加透明,有人提议了创建一个针对验证者奖惩的“可视化计算器 (visual calculator)”。昨天我很荣幸能和 Collin Myers 共进午餐,他之前在这方面做过一些工作。最近 Vitalik 更新了 Collin 制作的计算表格[10].
  • Danny Ryan 提出验证者受到的“Inactivity penalty”惩罚过高[11]。按照目前的情况,当 Inactivity penalty 惩罚发生时 (即因区块停止了被敲定而对所有验证者进行的惩罚),即便是行为端正的验证者也有可能在会损失一定量的质押金。总的来说,之后可能会对激励机制进行重新调整,这会解决这个问题。
  • Vitalik 提出的极端情况:crosslinks de-finalizing [12]。Epoch 的转换使得交联 (crosslinks) 的处理更加复杂。Vitalik 提出了一些改善此问题的想法。
  • Jacek Sieka 提议为主网选择签名聚合传播策略[13]。如何才能最有效地聚合分片委员会的签名?其中一个候选方案就是使用 PegaSys 团队的 Handel 协议[14]。

开发者电话会议

8月29日开展了第24次 Eth2.0 实施者电话会议。

  • 会议议程[15]
  • 会议视频[16]
  • 会议内容初稿见 [17] 和 [18]

此次电话会议包含了很多更新信息。我就不再赘述了,我的笔记 [18] 已经对主要内容进行了简要介绍。其中由几件事情值得注意:Protocol Labs 与 EthBerlin 合作提供的赏金计划诞生了一些很棒的作品,以及有关即将迅速到来的互操作性计划 (见下文)。

研究方面

其中有些研究主题来自 ethresear.ch。

在如何维护验证者的隐私/匿名性方面受到了越来越多的关注。这方面是很重要的,原因在于:

  • 首先,由于验证者需要保持他们的私钥始终可用于对区块提议/证明进行签名,因此我们可以预料验证者的私钥将可能成为被攻击的目标;
  • 其次,如果区块提议者事先知道的太多 (比如提前知道自己将被选择为区块提议者),那么他们更容易成为贿赂或者拒绝服务攻击的目标。

上述第二个问题可以通过“secret single leader election (秘密选出单个区块提议者)”的方式加以解决,即在每个 slot 期间,某个验证者可以知晓自己是在该 slot 期间唯一被选中的区块提议者,且之后该验证者可以证明自己正确地提议了区块,但这无法提前被计算出来。

对此,PegaSys 团队成员在几个月之前提议了一个机制[19]。Justin Drake 已经对该机制的有效性进行了改进,因此现在该机制已经可以实际实现。Justin Drake 改进的方式是:Low-overhead secret single-leader election [20]。

至于第一个问题,PegaSys 团队的研究是:Anonymity: a ZKP to remove the mapping ip address/wallet’s public key of a validator [21],同时 Mikerah 也在致力于这方面的研究:Privacy-Preserving Casper FFG using Traceable Ring Signatures [22]。

另一个研究主题就是,当前围绕在 Eth1.0 链和 Eth2.0 信标链上实现不同的 ETH 发行率方面展开了很有趣的讨论。这方面的讨论带来的可能影响就是:信标链中的奖励将来自哪里?[23]

Gitter 聊天频道上的讨论

这两周在 Gitter 频道[24]上讨论的主要内容包括:

  • 以太坊基金会研究员 Protolambda 正在为 Eth2.0 仓库进行可视化[25];
  • 有关 Eth2.0 密钥存储格式的讨论[26];
  • 有关 LMD GHOST 分叉选择规则可能受到的 flip-flop 攻击的讨论 (如上文所述)[27];
  • 有关“共享验证者” (即允许多个实体共同拥有同一个验证者) 的讨论[28]。这看起来有点像用于管理 staking pools (质押池) 的智能合约系统 ,我还没有抽出时间仔细研究一下,且相关的文档也太稀少了。
  • 验证者 API 已经转移到一个新的仓库中[29];
  • 在阶段0期间,Stakes (质押金) 是不可以转移的[30];
  • 在阶段1期间或之前,质押金应该可以实现转移[31];
  • 有关“验证者何时会被奖励”的讨论[32];(对此我已经在撰写一篇文章了,文章写完一半了😅)
  • Protolambda 做的有关默克尔树和客户端优化项目的笔记[33];
  • Danny Ryan 针对 BLS 签名处理性能设定了一些期望[34];

互操作性

早在今年5月,在纽约举行的 Eth2.0 meetup 期间,Joseph Delong 提议举办一次针对各客户端的互操作性“禁闭”聚会,计划是让所有的客户端团队尝试将他们的客户端实现连接在一起 (测试互操作性),看看哪些方面可以运行,哪些方面需要修复。Joseph Lubin 提出承担此次聚会的大部分费用。

在过去的三个月里,所有的客户端团队都在为互操作性而努力工作:包括实现并通过常见的参考测试 (reference tests)、在网络连接规范方面进行协作、实现工具来快速地搭建并运行测试网络等等。在这方面,阶段0规范在6月底的冻结对此大有裨益,给了各客户端团队一些更稳定的目标。

好了,聚会的时间就要到了!

在之后的一周时间里,我们将有45人聚集在安大略省的一个偏远的湖边小屋,包括所有的客户端团队、一些以太坊基金会成员、一些 Whiteblock成员,以及致力于阶段2的 Quilt 团队和以太坊基金会的 Ewasm 团队。

Whiteblock的首席执行官 Antoine Toulme 已经被任命为此次聚会的技术指导,确保我们能够有序地取得进展,并有效地解决我们之间的分歧。

在此次聚会结束之前,我将不再更新有关Eth2.0工作的进展,但在三周之后我会发布有关此次聚会的完整报告。其间,你可以在Twitter上查看很多令人兴奋的事件😱

Jacek Sieka发布的这条推文就是一个很好的例子[35]:Nimbus 与 Lighthouse 进行通信。

祝我们好运吧!

其他新闻

  • 以太坊基金会已经宣布了一项总额超过200万美元的资助计划[36],这些资金将用于支持以太坊2.0相关的研究和开发工作。我特别高兴地看到,ConsenSys 也参与进来共同为 Lighthouse 和 Whiteblock 提供资助。
  • Lighthouse、Prysm、Lodestar、Nimbus 等客户端开发的更新已经出来了,Nimbus 还做了一次 AMA 访谈[37];
  • bitrates.com 网站发布了一篇概览 Eth2.0 的文章[38];
  • Protolambda 计划为所有对 GitHub 上的 Eth2.0 相关的仓库[39]的进展进行可视化[40],Prysmatic Labs 此前对他们的 GitHub 仓库进行了类似的操作[41];
  • Vitalik 列举了当/如果我们将 Eth1.0 链调入 Eth2.0 链中时可能会面临的问题[42]。但别担心!我们还有几年时间来解决这个问题。
  • Rocket Pool 将要推出他们的 Beta 测试基础设施[43],该基础设施将用于提供 Eth2.0 staking 服务。
  • 👕帮我赢取一件 T-shirt!👕由于 Hyperledger 投票通过了采用我们的以太坊主网客户端 Pantheon,我们正在进行一场内部的社交媒体竞争来将这个消息公布出去。请花点时间帮我点赞/转发/点击我的这推文 [44] 和 [45]。[我基本上都是占有自己的时间来写这些文章的,撰写本文时还是周六的早上,如果能穿上一件PegaSys的独家T-shirt就更棒了😂]

 

 

原文链接:https://benjaminion.xyz/newineth2/20190831.html

本文转载自 Unitimes:https://www.unitimes.pro/p/5b5013303f5f4b93be53ce9bcf8aeb90

作者:Ben Edgington

编译:Jhonny

 

文中涉及的链接:

[1]:https://ethhub.substack.com/p/talking-ethereum-20-with-danny-ryan
[2]:https://github.com/ethereum/eth2.0-specs/releases/tag/v0.8.3
[3]:https://github.com/protolambda/eth2-impl-design
[4]:https://ethresear.ch/t/decoy-flip-flop-attack-on-lmd-ghost/6001?u=benjaminion
[5]:https://github.com/ethereum/eth2.0-specs/files/3537084/Legendre.7.pdf
[6]:https://github.com/ethereum/eth2.0-specs/files/3551615/legendre_proof_of_custody_uhf.pdf
[7]:https://github.com/ethereum/eth2.0-specs/pull/1385
[8]:https://legendreprf.org/bounties
[9]:https://github.com/ethereum/eth2.0-specs/issues/1344
[10]:https://docs.google.com/spreadsheets/d/1zU1wzlDsw-BPWp5d4eJMJLHGuCbB_UJ2rPLP7eanW9I
[11]:https://github.com/ethereum/eth2.0-specs/issues/1370
[12]:https://github.com/ethereum/eth2.0-specs/issues/1277
[13]:https://github.com/ethereum/eth2.0-specs/issues/1331
[14]:https://github.com/ConsenSys/handel
[15]:https://github.com/ethereum/eth2.0-pm/issues/73
[16]:https://youtu.be/sz87_i5Uy1I?t=309
[17]:https://gist.github.com/mratsim/b481ee7c598353298f111059d688be0c
[18]:https://docs.google.com/document/d/1jA4H6uQvPsWYrOUGFJeQWqXzP6YUq6BFKfPYAI7_y3g/edit?usp=sharing
[19]:https://ethresear.ch/t/cryptographic-sortition-possible-solution-with-zk-snark/5102?u=benjaminion
[20]:https://ethresear.ch/t/low-overhead-secret-single-leader-election/5994?u=benjaminion
[21]:https://ethresear.ch/t/anonymity-a-zkp-to-remove-the-mapping-ip-address-wallets-public-key-of-a-validator/6049?u=benjaminion
[22]:https://ethresear.ch/t/privacy-preserving-casper-ffg-using-traceable-ring-signatures/6054?u=benjaminion
[23]:https://ethresear.ch/t/where-will-reward-money-on-beacon-chain-come-from/5963?u=benjaminion
[24]:https://gitter.im/ethereum/sharding
[25]:https://gitter.im/ethereum/sharding?at=5d5816e07d56bc60806f976b

[26]:https://gitter.im/ethereum/sharding?at=5d5a3cfa1db76d0ffefe923e
[27]:https://gitter.im/ethereum/sharding?at=5d5b937a53490e334d29489e
[28]:https://gitter.im/ethereum/sharding?at=5d5c50e35ba4a84f695f7a83
[29]:https://gitter.im/ethereum/sharding?at=5d5c77c52cdb146ad60c5790
[30]:https://gitter.im/ethereum/sharding?at=5d5e58f5fa99e74f6a6f5b29
[31]:https://gitter.im/ethereum/sharding?at=5d5ebb1e5ba4a84f69700d3a
[32]:https://gitter.im/ethereum/sharding?at=5d63caca35f914538d8b349f
[33]https://gitter.im/ethereum/sharding?at=5d67ec2a06e77851a311ec13
[34]:https://gitter.im/ethereum/sharding?at=5d69759129dba2421cd599d2
[35]:https://twitter.com/jcksie/status/1167461184674705412

[36]:https://blog.ethereum.org/2019/08/26/announcing-ethereum-foundation-and-co-funded-grants/

[37]:https://youtu.be/tYMQKN1XdxE?t=72
[38]:https://www.bitrates.com/news/p/examining-ethereum-20-this-is-not-your-grannys-blockchain
[39]:https://gist.github.com/protolambda/14218d5b72692c51042fd4d8526906f0
[40]:https://twitter.com/protolambda/status/1162741179349438464
[41]:https://www.youtube.com/watch?v=qzwnnb1wwyY
[42]:https://twitter.com/VitalikButerin/status/1167510279736967168
[43]:https://medium.com/rocket-pool/rocket-pool-2-v1-beta-launch-afc467c8195d
[44]:https://twitter.com/benjaminion_xyz/status/1167120980063506432
[45]:https://twitter.com/benjaminion_xyz/status/1167183611860279302