Author

Topic: [20150713]为何你会觉得以太坊是安全的? (Read 345 times)

hero member
Activity: 532
Merit: 500
正当我要下笔时,我坐在伦敦办公室和琢磨如何向大家介绍我们一直以来从事以太坊协议、客户端以及P2P网络安全开发的工作。或许你还记得,我在去年底加入以太坊团队并负责安全审计。转眼间春去夏来,几个审计已经完成,现在是时候从世界计算机机房的检测中给大家分享一些成果。

有一点是明确的,就是随着这款精心制作的客户端的开发日益推进,我们越感到兴奋,虽然它是极其复杂的研究工作,加上我们在工作中还遇到更多问题,所以最好的计划开发时间表一再更改。

为了确保以太坊最大的安全性,根据开发总计划,我们在去年底开始着手安全审计。如你所知,我们的审计工作是出于安全考虑,而不是受开发时间表而进行。考虑到这一点,我们的多层审计工作是包括以下的部分:

通过建立和区块链研究人员和专门软件安全公司的协作实现新协议和算法的分析
世界一流的安全专家顾问负责协议端到端的审计
推出“发现漏洞有赏”项目
新协议和算法涵盖的安全主题如下:

燃气经济学
新设计的防ASIC工作量证明机制难题
挖矿节点的经济激励
在上个圣诞节前后和“发现漏洞有赏”项目一起推出的还有“众包”审计组件。(“众包”是这样一个过程:征求大批社区中的群众去完成一个任务)我们设立11位数额以“中本聪”为单位的奖金对在我们源代码中发现漏洞的人进行奖赏,目前在赏金项目中已经见到很多高质量的提交,同时他们获取相应的奖励。赏金项目依旧进行,我们需要更多的提交来花费所分配的预算。

安全顾问公司Least Authority 负责的首个重要的安全审计(包括燃气经济学和POW挖矿难题)在一月开始,直至今年冬天结束。我们为得到许多外部审计师的同意感到高兴,一旦审计工作和漏洞修复完成,这些审计报告就可对大众公布。在这篇博客中,我们很高兴能刊登Least Authority的审计报告和相应的博客。此外,该报告包含了ÐApp开发者有用的建议,以确保安全设计和部署合同。一旦报告有新进展,我们希望能及时跟进。

在年初,我们还联系另一家软件安全公司,让它就使用Go 语言嵌入的部分提供相关的审计。考虑到多重客户端的安全性日益受到重视,以及Gav在之前的博客所提到的内容,我们决定在七月初对所使用的Python和C++编程语言进行轻量级安全审计。我们的目标是在发布的时候就能有几个已经接受审计并可用的客户端,当然希望这越早越好。

我们对Go语言的客户端展开最大范围的审计,这又名“端到端审计”,在二月份为此召开了为期一周的研讨会,紧接着的是维持数周的定期检查和审计报告。这个审计旨在全面发现和修复漏洞,并由Gustav、Christoph和Dimitry在github上进行相应的代码测试。

ethereum

顾名思义,“终端到终端审计”的范围涵盖“一切”(从网络到以太坊的虚拟再到POW的同步层),所以至少有一个审计员要交叉检查以太坊各个核心层。最近有个顾问就审计情况做出相当简洁的总结:“说实话,以太坊的测试需求比我以前碰到的更复杂。”正如Gav在他最新的博客写道,因为网络和同步计划的显著变更,我们最终决定对Go语言的客户端作更进一步的审计,如果不是变更的话,我们这周就可完成了。端到端的C++和底层Python的审计已正在进行。

审计工作、后期的漏洞修复、还原测试、以及相关重构和重新设计(网络和同步层),这些构成了开发者忙碌进行的工作。也因为这样,修复发现的漏洞、重新设计和还原测试造成发布的一再延迟。另外,在Olympic测试阶段我们遇到在各种情况下的问题,例如连接速度慢,出现坏死、奇怪、和过时的节点等,但是我们已很好应对最艰难的挑战并从分叉中解决了问题。当要再处理这些问题时,我们能从容应对。

其实不必感到惊讶,各种审计令我们付出很大的支出,但相信投入的金钱是值得的。

以太坊的发布日益临近,我们将它的安全性和可靠性视为最高的地位,尤其是考虑到在Olympic测试期间发现的重大问题。我们对以太坊及对其进行审计的人员表示感谢,他们的工作帮我们阐明黄皮书的要点、剔除其中的模糊词汇,还帮助我们修复了一批漏洞。
Jump to: