撰文:Danny Ryan
翻译:Unitimes_David
接上一篇《Eth2 更新速览(11)》。与往常一样,在 eth2 前线继续发生着许多事情。除了撰写的进展更新 (可查看下方提及的 Eth2 状态进展) 和其他公开的总结外,各客户端团队、贡献者和社区成员/预期验证者们都很忙!
今天,本文将涵盖一些重大的存款合约 (deposit contract) 相关新闻,以及实现规范 v0.12 版本的重要步骤。
摘要
新的 Solidity 存款合约已经经过形式化验证,并添加进了 bug 赏金计划中;
实现 v0.12 规范版本的 Eth2 多客户端测试网 Altona 预计将于下周发布;
继续资助 Sigma Prime 为 beacon-fuzz (多客户端差分模糊测试) 找寻 bug 的工作;
快速插入我之前发布的冗长的 eth2 博客文章。
Solidity 存款合约 & 形式化验证
今天,我们要宣布一个全新的、更安全的 eth2 存款合约 版本,使用 Solidity 语言编写!该合约保留了相同的公共接口 (添加了 EIP-165 supportsInterface 函数),因此这是对所有现有客户端和开发工具都是完全_透明的_更改。实际上,其中的 Solidity 代码主要是对最初的 Vyper 合约逐行地翻译 (备注:最初的存款合约使用 Vyper 语言进行编写) ,以帮助进行审查和形式化验证。
在过去的几个月里, Alex Beregszaszi 使用 Solidity 语言重写了这个 eth2 存款合约,该合约已经由一个 Solidity 专家小组审核,并通过了 Runtime Verification 进行 形式化验证 ,大量重用了最初为 Vyper 版本合约编写的 K 规范。
尽管之前的 Vyper 合约经过了严格的测试、审查和形式化验证,但仍然存在着对 Vyper 编译器目前的安全性的潜在担忧。在最初的 Vyper 字节码验证期间,发现了多个编译器 bug (并进行了修复)。除了形式化验证, Suhabe Bugrara (ConsenSys 的研发人员) 还对 Vyper 存款合约和形式化验证进行了审查,这引发了对正式的规范进行了许多改进 (这最终有助于对 Solidity 合约的重新验证)。尽管 Vyper 合约的形式化验证被评估为是可靠的,但只要该合约使用 Vyper 编译器,Suhabe 就不推荐其字节码是安全的。
同时, ConsenSys Diligence 和 Trail of Bits 对 Vyper 编译器进行了安全调查报告,发现了更多的 bug,并对该编译器代码库的系统性问题提出了担忧。
_尽管有这些发现,Vyper 仍然是一种很有前景的语言_。基于 python 的编译器仍在开发中,许多贡献者正在研究对这种语言进行形式化,并研究其他编译器。
虽然我们对经过了形式化验证的字节码很有信心,但在 Vyper 编译器中发现的问题使得我们严重依赖于对字节码进行验证。最好是从一个通常被认为安全的编译器开始,然后验证字节码,而不是从一个存在已知问题的编译器开始,然后验证这些已知 (或未知) 问题没有在字节码中出现。
为了避免人们对这个_关键的_存款合约的安全性产生任何怀疑,我们建议为 eth2 主网的启动使用这个全新的 Solidity 存款合约,我们欢迎 Solidity 合约和 EVM (以太坊虚拟机) 字节码方面的专家对 该存款合约 和相关的 形式化验证 进行审查。发现的任何问题都符合 Eth2 阶段0赏金计划 。
注意,这个全新的存款合约还没有进入 eth2 规范库 中。我们将在本周整合这个新的 Solidity 合约,并很快发布一个小版本。我想要通过本文立即宣布这个事情,以便让社区有足够的时间来对其进行审查。
实现v0.12规范的 Altona 测试网
自从 Eth2 规范 v0.12 版本发布 以来,各客户端团队一直在全力更新和测试他们的代码库,以为公共测试网做准备。
我看到了很多来自社区的问题 (在 discord 聊天室、reddit 等上面),询问为何一个看起来相对较小的更新要花这么多时间来完成。尽管各客户端的代码库和相关的挑战各不相同,但各客户端团队都_非常重视_ v0.12 规范版本。虽然规范中的更新并不太繁琐,但在使这些客户端准备好实现这个主网上线前的最后半主要规范版本 (即 v0.12) 之前,已经花了额外的时间来加强安全性、优化功能和从整体上增强客户端。
首个实现 v0.12 规范的公共多客户端测试网 Altona 的发布时间即将到来,预计将在未来 7 天内发布。这个测试网将完全由相关的一些客户端团队 (计划是 Lighthouse、Nimbus、Prysm 和 Teku)、Afri Schoedon 以及以太坊基金会的一些成员控制。在该测试网推出之后,相关的存款合约地址将会发布,以允许公众参与进来。
与截至目前发布的其他多客户端测试网类似,Altona 更像是一个开发网络 (devnet),而不是一个以最终用户为中心的测试网。也就是说,Altona 首先最重要的是为了让各客户端团队在一个生产环境中检查 v0.12 软件的安全性,并让 eth2 工程师们在一个多客户端环境中解决可能出现的 bug。话虽如此,我们也欢迎你的加入并随着时间的推移推动 Altona 的成长。
如果 Altona 获得普遍成功,接下来的下一步是推出一个更大的、以社区为中心的测试网,该测试网将有着主网配置,至少由 16,384 名验证者才能启动。
哦,还有!Altona 测试网将使用上文提及的全新的 Solidity 存款合约。正如我所说的,这是对 eth2 客户端软件 100% 透明的更改,因为公共接口是一样的。对于能在生产环境中测试该合约,我还是非常兴奋的。
资助 Sigma Prime 的 beacon-fuzz 工作
我们很高兴地宣布继续资助 Sigma Prime 的多客户端差分模糊测试工作 – beacon-fuzz。截至目前,这项工作已经取得了巨大成功,在系统中的_所有_客户端中都找到了 bug 。
你可以查看 Sigma Prime 的博客文章 来跟进相关的进展。还有继续关注未来计划扩大 beacon-fuzz 的工作,即计划通过“在家里进行模糊测试”让你参与进来,也许你会通过你家里的设备找到一个 bug!
我冗长的 eth2 博客文章
如果你尚未阅读我几周前发布的博客文章,现在还不算太晚!来看看 The State of Eth2, June 2020 (中文译文参阅《 Eth2 进展速览 (截至2020年6月) _》)__,_这篇文章对 Eth2 项目截至当前的进展及其如何适应整个以太坊进行了高级概述 🚀
点击下方“阅读原文” 获取本文提及的所有链接! 👇
【文章版权归原作者所有,其内容与观点不代表Unitimes立 场。翻译文章仅为传播更有价值的信息,合作或授权联系请发邮件至 editor@unitimes.io 或添加微信 unitimes2017】
本文分享自微信公众号 - Unitimes(Uni-times)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。