呼吁社区, 加强自身监管, 对现有智能合约做好审计工作

2018年8月17日 08:11

引言:1993年,计算机科学家和密码学家Nick Szabo最早提出了“智能合约”的概念,然而由于缺乏可编程合约的数字系统与技术,理论迟迟未能成为现实。直到区块链技术出现后,它的去中心化、不可篡改、透明可追踪等特点天然契合了智能合约,大幅减低了信任成本,使得人们对“智能合约”带有了不少“乌托邦式”的期待。然而,“智能合约”并非像人们想象的那样完美无缺。程序漏洞的出现、丢币事件的频发让人们对这一年轻技术安全性的提高有了迫切的需求。由于智能合约的不可逆性,多家公司提出了多种代码审计方案,并呼吁社区一同参与,加强自身监管,共同提高智能合约的可靠性与安全性。

程序漏洞与黑客事件的频发

2018年7月10日,加密货币钱包和去中心化交易所Bancor遭到黑客袭击,用来更新智能合约的一个钱包被入侵,价值1250万美元的以太币、100万美元的NPXS和1000万美元的BNT失窃。在此之前,2017年7月20日,以太坊钱包Parity爆出严重漏洞,导致15万个以太币(价值3200万美元)被盗。同年11月,Parity再次遭遇重创,一名经验不足的程序员意外冻结了价值1.53亿美元的以太币和其他代币。当然,业内最臭名昭著的智能合约黑客事件当属2016年的The DAO事件。攻击者通过TheDAO智能合约中splitDAO函数的漏洞,从TheDAO项目的资产池中分离出了300多万以太币,这次攻击对以太网造成了难以弥补的巨大损失。

Hosho 网络安全公司的联合创始人Hartej Sawhney在接受《比特币》杂志采访时表示:“每一个智能合约背后都是大量的资产,这是黑客入侵的主要动机。诸如Bancor之类的智能合约其可怕之处在于,在编写合约时,他们给予了项目创始人中心化的权力,这让黑客们有了可乘之机。”Bancor具有随意没收和冻结代币的权力,这一点不仅在业内招致了广泛诟病,甚至可能成为黑客进入网络的切口。Sawhney在采访中指出,“大多数智能合约都被设计为不可逆转的”,而Bancor的合约则是完全可控,这次黑客事件,很可能就是利用了开发人员用作管理项目而设置的后门。

撇开Bancor不谈,网络安全社区Hacken的首席执行官Dmytro Budorin也赞同Sawhney的观点,即这一行业所储存的大量宝贵资产是黑客染指其中的强大动力,而新兴技术的不完备让这些不速之客更加有机可乘。

“在区块链上编写代码还是一项新技术,”Budorin在接受《比特币》杂志采访时说道,“有关如何正确构建智能合约,我们仍然缺乏一个安全标准和最佳的实践方式。此外,在编写智能合约时,程序员考虑最多的是功能,而不是安全。因为程序员的主要任务是让代码正常工作,而安全通常是事后考虑的问题。”

Sagewise的首席执行官兼联合创始人Amy Wan在接受《比特币》杂志的专访时也强调了这一点。开发人员很少能够一次性写出完美的代码,即使如此,也会有无法预期的意外发生。代码是静态的,而人类却具有非凡的创造力,Wan认为,“与其说技术只是技术本身,不如说技术是与人类之间的互动”,这意味着“总有人会寻找机会测试技术的缺点,甚至吸引黑客攻击”,简而言之,“智能合约的死板性不足以适应现实世界的流动性”。

审计解决方案

由于智能合约的目的是用来存储、移动和分配资产,一个小小的代码错误就可能导致让成千上万的投资者血本无归。而且由于整个编程具有的不可逆性,一旦智能合约发布人们就会对此无能为力,因此修复的关键就落脚到了开发的初始阶段与执行阶段。目前,有多家网络安全公司开始参与到智能合约的代码审计领域中来,从不同角度提出了多种提升安全的审计方案。

  1. 网络安全社区Hacken的CEO Budorin表示:“确保一个智能合约的最好方法是设置一名安全工程师,进行两次不同的独立审计,并在部署前的一段时间内启动一个发现漏洞赏金计划。” 目前,在HackenProof的平台已经看到了该公司的“白帽社区审计”,他们对VeChainThor、Neverdie、Legolas Exchange、NapoleonX、Shopin和Enecuum等行业项目进行了测试。Budorin和他的团队发现,漏洞赏金为项目在上线前提供了可靠的第三级缓冲区。“漏洞赏金平台”吸引了一群第三方网络安全专家(同时有几十或上百人)来测试客户端的软件,这些测试可以持续几个月甚至几年。
  2. 网络安全公司Hosho的审计核心则更多侧重于一些手工任务,发现自动化工具可能遗漏的代码错误,比如智能合约的令牌算法与白皮书的业务模型之间的差异。Hosho的CEO Sawhney 认为,一些公司认为他们拥有世界上最好的工程师,所以他们认为自己不需要审计,即使他们正在接受审计,所雇佣的审计公司也并不专业。而Hosho的团队则包括“来自infosec、defcon社区的专业人士,这些人都是做QA(质量保证)工作多年的白帽。” Hosho的审计结果会最终会以一个带有加密印章的GPG文件形式呈现,就像一个证书,代表真实性和最终(或者至少最近)版本的审计结果,证明它自质检后没有被篡改。
  3. Sagewise则提供了一个不同的路径。该公司首席执行官Wan指出,区块链公司应当专注于开发,“雇佣一家声誉良好的安全审计公司,将一套包罗万象的安全网络纳入智能合约,比如Sagewise的SDK。”Sagewise SDK集成了智能合约来监控恶意输入。它使开发人员有机会冻结有问题的智能合约并相应地调整它。“用户会收到他们在智能合约上执行任务的通知,如果这些任务是无意的,他们有能力冻结智能合约。然后,他们就可以花时间去修正任何需要修正的问题,无论是修正一个编程错误来修改智能合约,还是解决争端。”
  4. 总部位于西雅图的创业公司Solidified正在开发一个去中心化的智能合约审计平台,旨在使流程更加简易,并提供一个透明的、负责任的智能合约安全度量标准。该公司最近与Innogy New Ventures进行了一轮种子融资,以开发安全领域的新项目——Bug预测市场,据说,该平台已经在其社区聚集了200多名审计专家。在这个市场中,安全专家可以对合约在某个日期之前是否会发现严重的漏洞下注。该公司的白皮书称,这些用户“通过以可靠的令牌形式押注收入和声誉,对代码的安全负责”。审计员通过投标接受审计工作,评估失误的人将把股份转让给那些在bug奖励期间纠正他们错误的人。由此,智能合约所涉及的风险将被准确地模式化和资本化,而不是外部化,这一过程将为智能合约审计提高透明度,并带来问责制。Solidified将于2019年第一季度发布一个测试版的Bug预测市场,同时对安全-信心指标进行测试,2019年第三季度,在主网上推出Bug预测市场,为去中心化审计和Bug奖励平台的开发拉开大幕。据了解,该平台的代币销售已经开始,并将持续到2018年10月23日。

社区参与监管

除专业的审计工作之外,社区也可以提醒开发人员和团队谨慎行事。Wan认为,就像游戏中的裁判一样,使用这些合约服务的人们需要采取行动,要求开放人员进行改进。否则,此类安全漏洞将继续发生。Sawhney同样认为,“安全保障方面的压力(还不足够),安全方面的监管力度也不够”。

为了把自我监管纳入行业待办事项清单的前列,Hosho将参加9月份在柏林举行的网络安全公司峰会。Sawhney希望ETHBerlin能产生一个自我管理组织(SRO),“为我们的工作提供一份证书,就像四大财务审计一样”。

此外,Budorin发现,社区在记录漏洞方面做得很好,“区块链社区需要收集、存储和分析在智能合约中发现的所有已知漏洞,并定期举行安全会议,以讨论区块链的安全问题,制定安全指南,以便新一代区块链程序员对这些问题有更充分的准备。”作为对该此会议的回应,今年10月,Hosho将主持HoshoCon会议,这是第一批关注区块链网络安全的会议之一。从2018年10月9日到11日,社区成员将聚集在内华达的拉斯维加斯,共同聆听、学习和讨论行业在加强自身安全方面将如何做得更好。