据了解,智能合约是区块链的核心技术之一,是多方参与场景中的共识规则,更是智能合约是价值传递的中枢。之所以区块链出现以后安全问题变得前所未有的重要,是因为智能合约实现的是一种价值传递,区块链上的每一个数字都是价值,每个漏洞导致的数字变化,其背后就是巨额的价值损失。
首先,对于开发者,要尽量参考有价值的模版,尽量使用安全库。因为在审计过程中可以看到,很多合约的错误是重复雷同的,这就是因为采用了伪劣的核心模版。
其次,开发完成后,要进行全方位的功能和编译测试,功能上要保证满足客户需求,测试方面一是重视编译错误和警告,尤其是那些未知错误的提示;二是要具备完备的人工设计测试案例;三是进行静态分析工具测试;四是进行动态分析工具测试,进而发现执行过程中的隐藏问题。
最后,不可能完全依赖开发人员,需要第三方审计公司来帮助完善代码安全性。这些公司内部会有精度更高、更完备的测试工具,在形式化验证之后,还会进行人工漏洞复现和人工复审。