撰文: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-165supportsInterface函数),因此这是对所有现有客户端和开发工具都是完全透明的更改。实际上,其中的 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原文标题:Eth2 更新速览 (12)
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。