大家好,我是 Colm,我是Slock.it的安全专家,从事分析测试智能合约。我的任务是为社区审查合约和维护DAO的白名单。
自从我发表《字节代码验证》这个帖子以来,DAO取得了很大成功,所以树大招风,DAO成为一个明确的攻击目标。我们必须保持警惕,因为对我们DAO的攻击欺诈越来越多。对付这些攻击的第一防线,你猜是啥?是白名单。
没有加入DAO白名单的地址,DAO是不会向它发送ETH的。监管者(Curator )的任务就是管理这个名单。监管者并不是在这度量一个提案的金融优点或者是否道德,而是保证提案的智能合约能够和描述的一样进行操作,添加进白名单是否安全。
很多人都想被加入进白名单,以便提交自己的提案。但是我们作为一个社区,我们需要有一套添加提案的流水过程,这样我们就可以验证这些地址的字节代码,避免受到攻击。
DAO的安全关乎DAO的成败。
我认为,监管者应该谨慎,至少在开始的几个月,不应该让不满足如下条件的提案进入白名单:
简单的钱包或账户地址应该禁止,地址应该包含进合约。
提案合约只能接受一次来自DAO的支付,而且额度是固定的。
提案合约所剩余的ETH应该允许被DAO收回。也就是说,DAO应该可以解雇承包者,并且可以收回通过智能合约转出去的资金。
第一步:写一份你的智能合约
请参考这个例子(github.com/slockit/DAO/blob/master/SampleOffer.sol),这是一个满足以上要求的一个提案。这些代码被反复测试过是安全的。如果你定义了你自己的参数,那么就可以使用它。
第二步:在DAOhub.org提交帖子
一旦你确定你的合约完全合乎上面的要求,那么你就可以在DAOhub.org论坛提交帖子(forum.daohub.org/c/theDAO/verification)。在你的帖子中,请加入配置过的智能合约地址、源代码链接、编译结构、数据、时间,还要一个谷歌视频群聊链接(优先考虑),这个被用来做身份确认。你的提案的细节也应该有一个链接。
你可能好奇,为什么使用谷歌视频群聊。这对承包者很重要,这样可以确认提案承包者的身份。我们不想有人冒充是IBM的 Andreas Antonopoulos。为了避免这样,这个合约多重签名私钥持有人都要进入谷歌视频群聊,同时大声读出他们的地址。这些会被自动记录为youtube 视频。
仅有图片是不行的,因为有photoshop。但是视频作假很困难,特别是一个人和其他当事人实时互动就更困难了。在这个互动中,你可能被要求对你控制的地址做签名。
第三步:社区评估
你在论坛的发布的帖子会被社区验证,字节代码是否和源代码匹配,合约会被分析。不管怎样,最终的决定是由监管者拍板的。
社区验证你的合约,包括字节代码的匹配,确认它对DAO不会产生攻击。这是一个人人可以参与的过程。如果你想体验这种乐趣请加入DAOhub的论坛(https://forum.daohub.org/c/theDAO/verification),或者加入DAO的slack聊天室(http://thedao.slock.it:3000/)
第四步:监管者收到一份报告
社区每个月都会发表一份关于所有提案的报告。这份报告在每个月7日发表在DAOhub.org。这么做保证在截止日前有充足的时间来让社区审视你的提案,记住,越复杂的合约需要的时间越长。
当然,我们不能让安全问题阻碍到创新。这些高级别的指导方针会随着时间的推移而改善。祝你和你的提案好运!
关于作者:Colm Herbert 是Slack.it的安全工程师,他是梅努斯大学工程学士,都柏林大学理科硕士,曾为英特尔应用安全和一支付公司工作。他是DAO的长期会员,从一月份开始,参与开发DAO1.0框架开发。
声明:此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网站所提供的信息,只供参考之用。