新的Solidity存款合约已完成形式化验证;首个公共测试网Altona下周启动,集成最新规范
来源 | Ethereum Blog
作者 | Danny Ryan
如往常一样,eth2的许多相关工作依然在持续推进。除了一些进展更新(参阅下面的Eth2现状)以及其他公开工作总结中的内容,客户端团队、贡献者、社区成员以及准验证者也一直都很忙碌!
在本文中,我们将谈到存款合约的重要动态,以及实现0.12版本规范的重大举措。
在此,我们宣布推出使用Solidity编写的、更安全的新eth2存款合约!该合约保留了之前的公共接口 (增加了EIP 165中的supportsInterface 功能),因此对于当前的客户端和开发者工具来说,这次更改毫无影响。实际上,合约的Solidity代码主要是根据初试的Vyper合约进行逐行转化,以便进行审核及形式化验证。
在过去几个月中,Alex Beregszaszi一直在致力于用Solidity重写eth2存款合约,目前已经由多位Solidity专家完成审核,并且也通过了RuntimeVerification的形式化验证,在很大程度上再次应用了最初为Vyper版本合约编写的K规范。
尽管Vyper版合约经过了严格的测试、审查和形式化验证,但对于Vyper编译器的安全性,依然存在隐虑。因为在Vyper合约进行字节码验证时,在编译器中发现了多处漏洞 (已经修复)。除了首次形式化验证,Suhabe Bugrara (ConsenSys R&D) 再次对其进行了复核与形式化验证,正式规范基于其结果进行了许多优化 (有助于简化Solidity版存款合约的验证)。尽管验证结果证明了其可靠性,但Suhabe依然认为只要使用Vyper编译器,那么就不能说字节码是安全的。
同时,ConsenSys Diligence和Trail of Bits对Vyper编译器进行了深入的安全性调查,结果发现了更多漏洞,并且引发了大家对Vyper编译器代码库系统安全性的担忧。
抛开这些调查结果,Vyper仍然是一种很有潜力的编程语言。基于Python的编译器正处于持续开发中,并且有许多贡献者都在探索如何将Vyper规范化,并且为其寻求替代编译器。
尽管对形式化验证之后的代码充满信心,但在Vyper编译器中发现的问题导致我们对字节码验证极度依赖。相比使用有问题的编译器,然后再验证这些已知 (或未知) 的漏洞并没有对字节码产生影响,不如一开始就使用安全性得到公认的编译器对字节码进行验证。
为了避免关键的存款合约在安全性上受到任何质疑,我们建议在eth2主网使用新的Solidity合同,我们也欢迎Solidity合约和EVM代码专家来对新存款合约进行审查和形式化验证。如若在存款合约中发现任何漏洞,都可以申请Eth2阶段0赏金。
注意:新的存款合约暂未被纳入规范库。我会在这周将Solidity合约并入规范,并且尽快以次要版本形式发布。在此提前宣布是为了给社区预留充分的时间对其进行审查。
自从0.12版本规范发布以来,客户端团队都马不停蹄地对其代码库进行更新和测试,以迎接公共测试网的到来。
我看到了很多来自社区 (discord/reddit等等) 的疑问:为什么一个看起来并不重大的更新却需要耗费这么长的时间来完成?尽管每个客户端的代码库和面临的挑战不尽相同,但客户端团队们都对0.12版本规范极为重视。虽然这个版本的规范更新并不棘手,但是大家在强化客户端安全性和功能性方面花费了额外的时间,以期为主网发布之前的最后一个半主要版本规范做足准备。
采用0.12版本规范的第一个公共多客户端测试网——Altona预计在接下来的7天内启动。初始时期,Altona测试网将由主要客户端团队(计划是Lighthouse/Nimbus/Prysm和Teku),Afri Schoedon和几位EF团队成员进行参与。发布之后,将公布存款合约地址,届时就可以开放给公众参与了。
如同之前的多客户端测试网,Altona更像是一个开发者网络,而不是以最终用户为主导的测试网。也就是说,Altona的首要任务是帮助客户端团队在产品环境中测试其0.12版本软件,并且使得eth2工程师能够发现并解决多客户端情境中的漏洞。即使如此,我们依然欢迎大家参与到Altona测试网中。如果Altona成功运行,那么我们会开启一个更大的、以社区为主的主网配置测试网,最少需要16,384名验证者来激活网络。
对了!Altona会使用最新的Solidity存款合约。如我所说,这对eth2客户端软件来说毫无影响,因为公共接口没有改变。十分期待在产品环境中对其进行测试!
在此我们很高兴宣布继续对Sigma Prime的多客户端模糊测试beacon-fuzz进行资助。截至目前,这个项目已经取得了巨大成功,检测出了系统中所有客户端的漏洞。
大家可以参阅Sigma Prime的博客来跟踪进展。也请大家持续关注 beacon-fuzz的扩展计划“宅家进行模糊测试”,以便能参与其中,说不定在家庭电脑上就能找到bug!
如果读者朋友们还没有阅读我几周前发布的文章,现在也为时不晚!请参阅《Eth2截至2020年6月的进展》,看完之后大家会对eth2项目的发展现状以及eth2如何成为真正的以太坊有更加清晰的认识。
声明:ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ethereum.cn,若需长期转载,请联系ethereumcn@gmail.com进行授权。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!