Gnosis的多重签名钱包和我们对安全的承诺
最近,我们在Parity团队执行的MultiSig钱包中发现了一个至关重要的程式错误。该错误意味着密钥持有者的初始密钥设置功能完全不受保护,每个人都可以随时调用密钥,并有效地控制任何使用这个不安全代码的多重签名钱包。
价值超过2亿美元的代币和以太币都受到这个bug的影响,且很可能被人盗用。对我们来说,现在主要的问题是:我们是否能百分之百确定这样的漏洞永远不会成功进入我们的多重签名钱包 ?
现实答案是:我们永远不能百分之百确定。但是,我们认为我们至少能让这些漏洞发生的概率非常小。如果只有一个人编写代码,那很可能在开发过程中会不知不觉出现漏洞和错误。因此,防止错误发生的关键就是要多个开发人员进行严格审查的流程。该过程从智能合约初始创建开始,一直到发布为止,在投入生产使用前找出所有的bug。
以下是我们为智能合约规定的绝对最低限度流程的要求列表,旨在处理价值数百万美元的生意。
实际部署之前,所有合同代码需要公开发布数月。
应该存在相应代码的自然语言说明。
正式的内部审查程序应当就位。
多个有经验的开发人员需要先浏览检查清单,并签署他们所要检查的特定错误。
至少有两名经验丰富的开发商对智能合同进行了外部审计。
公共漏洞赏金计划至少已运行一个月。
图为飞行员的检查单(通过Shopify显示)
我们的多重签名钱包在符合这些标准的情况下应如何成功?
我们于9月8日首次发布了这些代码。
虽然目前还没有钱包的自然语言说明,但我们已经编写了大量的自动化测试,并将很快提供自然语言说明。
作为审查过程的一部分,我们将根据ConsenSys开发团队创建的关于合约安全性的最佳规范,对清单进行检查。这要求多个开发人员检查已知问题的合同(可重入性,整数溢出,gas问题等)并记录这些检查。
参照前面一点。
已执行对多重签名钱包的两次全面审核——一次由Martin Holst Swende完成,另一次由ConsenSys完成。该审计结果已经在这里公布。
我们发布了一个漏洞赏金计划(另见这篇博客文章),并得到了5次实质性的bug报告。
Gnosis MultiSig钱包合同已由至少5名高级Solidity开发人员审核。在过去几个月中,参与了ICO的大多数团队也已经在使用Gnosis的多重签名钱包的实例,持有着总价值超过10亿美元的以太币和其他代币(Gnosis Vault)。
我们确实认为严格地将这些步骤规范化是必须的。未来我们设想将这种规范化将实现在区块链上,这样我们就能证明在区块链上可以满足标准的预定义设置。
虽然多重签名钱包的开发还在进行之中,但我们将在下周发布一款独立alpha版本的钱包作为电子应用程序,并详细介绍其功能。
原文链接: https://blog.gnosis.pm/the-gnosis-multisig-wallet-and-our-commitment-to-security-ce9aca0d17f6
作者: Martin Köppelmann
翻译&校对: 陈宁 & Elisa
更多文章:
项目 | Trustlines Network 中文版白皮书
汤森路透利用智能合约新服务 BlockOne IQ 开放市场数据
干货 | 为什么去中心化和分布式存储对一个更好的互联网至关重要?