「人物志」为区块链大本营(ID:blockchain_camp)着力打造的人物栏目,以「趣味而不失专业,可读而不失深度」为宗旨,每期邀请区块链领域的顶级专家和开发者就行业、投融资、开发、案例、项目实践等展开探讨。
作为以太坊生态的核心,智能合约这几年发展迅速。最早的智能合约,可以追溯到1995年,由密码学家尼克萨博首次提出。智能合约在多方参与、复杂交易的场景中有明显优势。
然而,近期随着智能合约安全问题的频繁出现,智能合约的劣势也愈发明显,包括智能合约如何对实体资产进行控制,从而保证其有效地执行合约;以及如何保证代码完全反应合约方的意志而不出现漏洞等。这些问题所引起的漏洞,使DAO、Parity、BEC等著名项目的市值几乎一夜归零。
再加上智能合约一旦上传即公开且不可更改,因此现在的区块链项目,对于安全性的需求更加迫切。
针对这些安全问题,成都链安科技尝试将原本应用于军工领域的「形式化验证」方法,应用于智能合约安全审计。形式化验证(formal verification)是基于数学建模方法对系统进行描述,通过形式化验证,开发者可以对程序的安全性事先进行审查,排除逻辑漏洞和安全漏洞,从而保证合约的安全。
关于形式化验证的更多细节,近日,我们采访了链安科技创始人/CEO杨霞,就形式化验证的现状、原理以及市场情况作了深入探讨。
以下是与杨霞对话实录。
偶然打开的区块链新世界大门
区块链大本营:我了解到你的主要身份是电子科技大学的教授,在从事区块链之前有怎样的人生经历?
杨霞:我从本科到研究生到博士,一直都在电子科技大学,而且是一路保送过来的,有人说我这是「坐飞机」(笑),之后就顺理成章的留校当老师了。2012年9月开始做形式化验证;2013年,我在美国一所大学的国际级安全实验室以访问学者身份工作和学习了一年。
我为什么要做形式化验证呢?原因在于,我之前一直研究嵌入式操作系统的安全保障技术,别人就问我你怎么证明你的系统是安全的?是不是得找一个方法来证明?于是我开始探索对系统安全性和功能进行证明的方法,于是发现了形式化验证方法。其实形式化验证本来是一个很冷门的领域,受众范围也没那么广,所以基本都是在高校和研究所里在研究。我也将此技术应用于航天、航空、军事等领域的安全关键软件中。
区块链大本营:作为教师,从教育工作到一个区块链企业的创业者,是出于怎样的契机?
杨霞:我接触区块链是2016年著名的DAO系统安全事件,其实那个时候真的没有太在意。不过我有一个朋友在搞区块链,他跟我说你搞形式化验证,能不能去验证一下智能合约的安全,比如针对Dao系统的安全事件。我觉得挺有趣的就去试了一下。那时候我们还没有自动化的工具,只能靠人工进行代码的形式化描述,然后去证明。最后发现,形式化验证方法应用于智能合约安全审计效果不错。
然后我又找来了一个IBM的捐款智能合约(当时的合约不多),也验证了一下,发现了一个「Unchecked Send返回值」的漏洞