一、显而易见又明显滞后的代码审计服务
1、飞快增长的智能合约急需代码审计来保驾护航
智能合约的应用正在指数级增长,在可预见的的未来,会成为常态。然而,另一个现实是,绝大多数智能合约基本是在裸奔。智能合约代码部署后,就可以被别有用心之人研究、测试,不断加以攻击。由于区块链技术天然的亲金融属性,不安全的智能合约如果出问题就是“小概率高风险”后果,一旦出问题,损失方除了目瞪口呆的看着和咒吗,什么都做不了。
2、现有的代码审计注定成为瓶颈和潜在风险
又贵又慢;
无法避免监守自盗的风险——审计人员发现问题后,出于某种原因没有标明,并在合约部署后利用该问题进行牟利。
3、高危行业已用自动测试代替人工
对于一些重要的技术,比如计算机芯片制作造、飞机和汽车制作造,他们现在已经更多依赖自动软件测试功能,而非人工。
二、QSP为智能合约提供持续的安全认证
可以把Quantstamp看成是代码安全审计领域的Alpha-zero,后者自我学习21天后通过短围棋界打败了全人类。不过在Quantstamp他没有得到足够经验的时候,仍然还是需要很多人工的介入和帮忙的,通过分布式来平衡算力、通过多验证节点和激励机制避免作恶。随着安全库的逐渐丰富,Quantstamp对前期已经检测出的同类问题将不再需要人力干预。
这个安全库让我想起老师最爱让学生建的错题本了:错误就这么多种,每次解决一个,以后遇到的就会越来越少,成绩不就上去了么。
在实现最终理想状态之前(完全的代码自动审计),QSP网络中有以下几种参与角色:
1、贡献者:通过监管机制选出,多是安全方面的专家,参与自动化确认程序的开发。
2、确认者:Quantstamp确认节点(是以太网里的一个特殊节点),需要贡献自己的计算资源
3、BUG捕手:找出能成功攻击智能合约的bug的人,领取奖励。
4、智能合约开发者:需要进行代码审计的人。
5、智能合约用户:查看智能合约安全审计结果的人。
6、投票人员:协议中最为核心的就是监管机制,投票者的token是有锁定期的,多签名的),QSP的模块化和升级都需要基于投票结果。
总结就是:Quantstamp既有自我迭代学习能力的自动代码审计功能,也提供不作恶的人工代码审计网络,从低起点开始成长,最终实现对海量智能合约的快速自动代码审计。
三、去中介的代码审计流程
开发者目前已经可以通过官网(https://quantstamp.com/)进行提交审计需求,钱包里至少要有20万个QSP token,提交时需要发送QSP token(以驱动激励体系)。 根据程序的安全需求,开发者可以决定发送多少奖金。 然后,智能合约收到请求,并在下一个以太坊块验证节点执行一组安全检查来验证。 一旦达成共识,审计证明和报告数据将与适当的token支付交易纪录一起添加到下一个以太坊区块。
报告根据1-10的严重性系统对问题进行分类; 1是次要警告,10是主要漏洞。 如果没有发现严重的漏洞,奖励会一直保留,直到预设的代码审计时间。结束后,奖励将退还给请求审计的开发人员。
在请求审计时,开发人员会选择公共或私人安全报告。 私人报告使用智能合约的公钥加密,并可由业主/开发商解密。 通过使用审计证明哈希值,所有人都可以查看和安全报告完全匹配审计的源代码,以防止操纵报告结果。
QSP自证有效,目前利用已有技术对最近ETH被锁死的Parity多重签名钱包,进行代码审计并输出审计报告。
四、能&不能
1、系统不能确保代码的零缺陷,是通过利益导向驱动鼓励大家找错并发布。第一个找到的会得到奖励。
2、除Solidity语言外,同一套安全库可以对更多开发语言进行安全检测。
3、通过将更多黑客力量集中起来,可以实现对代码更全面(相对于人力和次数有限的wadcg并非全能)的审计,这样的审计结构足可以让开发者有底气将其作为一项安全证明,让使用者相信其代码的安全性(其作为相当于安全证书)
五、风险
1、初期QSP的代码审核效果未必比专业的审计机构做得好。这取决于初期的确认结点数、以及在自动审计水平较低的情况下,愿意参与进来人工抓bug的数量。
2、黑客圈子如果不够分散的情况下,联手合作时存在利益激励失灵的可能。
总结:
QSP是一项基础设置级的项目,它的重要性将随着智能合约的普及、或安全事件的爆发而进一步凸显。无论它处于自我迭代的哪一个阶段,对区块链的作用都不可或缺的。
更多信息:
官网:https://quantstamp.com/
官方博客:https://medium.com/quantstamp
注:由于时间问题个人未能理解的部分:
智能合约旦部署后,如何利用新的安全库进行升级?