智能合约(smart contract),区块链领域人士想必都不会陌生。智能合约就是将现实合约条款的执行过程电子化并实现量化交易的一种协议,它就是通过一套以数字形式定义的承诺(commitment),让合约参与方可以在上面执行这些承诺。数字形式就意味着所有的智能合约不得不写入计算机可读的代码中。智能合约是基于区块链技术,它的出现满足了许多常见的合约条件(如支付条款,留置权,机密性,以及执行等),以及最大程度地减少恶意和偶然地异常,最大限度地减少对可信中介的依赖。
智能合约为何要通过代码审计
但这项新技术并非没有挑战,安全问题就是最重要的一环。据统计,在过去的5年间,FraVenner智能合约代码审计机构在审查过的近1000个智能合约项目中有超过25%的存在严重漏洞,有过半项目至少存在一个安全隐患,而这些安全隐患和漏洞将会给恶意攻击者带来机会,恶意侵入盗取项目资产。例如,2016年6月,The DAOEther的漏洞就造成了5000万美元的损失。当然,项目的安全问题除了能给项目造成直接的巨额经济损失外,还会严重损害项目的品牌声誉,导致项目无法正常运营甚至“流产”。
FraVenner智能合约代码审计机构建议广大智能合约项目方,在项目上链之前,务必通过进行严格的代码审计,以确保项目不存在安全问题,让所有合约得到高效执行。那么,项目方是否可以内部进行代码审计呢?理论上讲这个是可行的,至少可以为项目节省一笔审计费用,但项目方内部审计存在很明显的缺陷,首先,项目方作为项目运营方,自己的项目自己审计存在“不可信”的问题,缺乏有效的品牌背书,无法让合约参与者信服。其次,项目方此前从来没有接触过智能合约的审计,复杂的审计流程会给项目的开发者带来巨大挑战。
正所谓,专业的事情必须专业的人来做,如果项目方内部进行审计,就很容易忽略不该忽略的漏洞或安全隐患,这样一旦上链,项目就处于非常不安全状态,很大几率遭受恶意攻击而蒙受巨经济损失和严重名誉损失。因此,项目方最好是找第三方智能合约代码审计机构进行代码审计,虽然由专门从事智能合约审计的第三方对智能合约代码进行审计也不能万无一失,但至少能发现代码中的绝大部分错误漏洞,可以大大提升项目的安全性。
智能合约如何进行代码审计
智能合约代码审计一般都会围绕项目的三个方面进行,包括常见的错误(包括堆栈问题,编译和代码重入错误)、智能合约代码中可能存在的已知错误和安全漏洞以及对智能合约进行各种模拟攻击测试等,例如,为尽可能的找到智能合约中的安全问题,FraVenner智能合约代码审计机构一般都会测试各类攻击,如重入攻击(Reentrancy attack)、数值溢出(Over and under flows)、重放攻击(Replay attack)、重排攻击(Reordering attack)、短地址攻击(Short address attack)。
一般智能合约代码审计有两种基本方法:手动和自动代码分析。手动代码分析比较容易理解,就是由代码审计工程师逐行审查每一行代码,仔细查看代码的编译、重入错误和安全等问题,其中安全问题最为重要,它能直接影响智能合约是否能长期稳定的运行。自动代码分析就借助各种审计工具对代码进行全方位扫描,它的好处就是在检查代码时可以节约大量的人力和时间,还可以进行多条件复杂的渗透测试,有助于快速发现漏洞。
当然,目前所有的代码审计机构都是手动和自动代码分析相结合,FraVenner智能合约代码审计机构也不例外。首先通过自动代码分析工具对智能合约的代码进行深度扫描,找到各种已知的漏洞和安全隐患,然后再通过代码审计工程师进行一次彻底的人工代码审查,确保上述自动分析不会存在漏报或误报的问题,让智能合约保持在一个比较安全的状态。
智能合约代码审计的成本怎么计算
由于智能合约代码审计是一项非常专业且复杂的工作,所以项目方必须投入一定的成本才能顺利进行。那么,如何判定项目代码审计的成本呢?它实际上取决于一些关键因素。首先,项目的开发是项目方自有团队还是第三方外包开发团队,如果是自有团队,可能存在缺乏专业水平经验和多视觉审查项目的能力,可能会存在更多不安全因素,审计的成本将会相对高一些。其次,就是项目代码的情况,包括代码的行数、字节数、使用的函数库等等,很显然,越复杂的智能合约,其代码审计的成本就会相对较高。最后,要看项目方本身的运营能力,如果项目方缺乏应有的运营能力,缺乏对项目整体的品牌包装,则项目的代码审计成本将会相对较高。
因此,项目方与其去寻找最具成本效益的方式来进行代码审计,还不如在自身上下功夫,首先必须找到专业的第三方开发团队或专业的人才进行智能合约的开发,其次,做好项目的整体包装,进行各种必要的营销,以便吸引一些具有实力的投资机构进行投资等。在上述基础上,再去与第三方代码审计机构接洽,一定能大大降低项目代码审计的成本。
FraVenner代码审计机构简介
FraVenner源自丹麦著名安全实验室,成立于2013年,长期致力于区块链安全研究与实践,依托中国区块链发展环境,对全球近年发生的各类区块链领域的安全事故和漏洞进行全面分析与总结,成果累累,总结出了系列包括安全审计、渗透测试与应急响应、威胁监测与预防等在内的成熟解决方案,拥有了为区块链企业提供完善安全服务的能力,业务覆盖区块链生态安全的各个环节。目前,已成功为近千个智能合约项目进行了代码审计。
查看更多