刷屏的区块链 想知道的都在这里! ——区块链智能合约控制流识别的大规模实验研究
宣布时间 2019-11-01多年来,尊龙凯官网入口一连关注区块链手艺清静问题,在区块链自身清静以及区块链应用清静方面,都有响应的研究和实践探索。
尊龙凯官网入口ADLab团结电子科技大学盘算机学院(网络空间清静学院)陈厅副教授首次对以太坊区块链智能合约控制流的识别举行了大规模研究。该效果《A Large-Scale Empirical Study on Control FlowIdentification of Smart Contracts》于2019年揭晓在中国盘算机学会(CCF)推荐的B类学术聚会International Symposium on Empirical SoftwareEngineering and Measurement。
该研究剖析了目今6个主流的智能合约静态剖析工具,通过对以太坊区块链上已安排的所有合约(约500万)实验执行跟踪来评估他们的静态控制流识别能力。实验证实,一些典范的问题会导致上述盛行工具都无法识别所有的控制流(如不完整的代码模式)。同时,实验发明通过执行跟踪可以有用增强这些工具对控制流的识别。通过在OYENTE中引入执行跟踪,实现了把静态控制流剖析误报率降低百分之三十。同时,该研究获得了最佳论文提名奖。
研究内容有哪些?
研究选择了以下的六款主流面向字节码智能合约的剖析工具:
上述六款工具中,路径敏感的工具可能比路径不敏感的工具发明更多的控制转移路径,由于它们不会检查在现实条件下的路径可达性。其中OYENTE和MAIAN在处置惩罚某些合约时会触发异常,通太过析发明共有三类缘故原由:恶意无效字节码、不支持的操作和求解器异常。为了深入较量,修复了这三类导致异常的软件缺陷。
通过对每个工具举行所有以太坊区块链智能合约的实验,得出以下结论:
(1)由于接纳的手艺或者设置差别,以是目今主流工具识别的智能合约控制流数目差别加大;线性反汇编比递归反汇编能识别更多控制流,由于递归剖析在识别到不法转移目的时就阻止事情。
(2)差别剖析工具在剖析重大智能合约控制流时能力差别较大,典范缘故原由有路径爆炸、提前竣事条件和不完整的代码模式。
(3)上述的6款主流剖析工具仅针对1.7%的智能合约才华识别出相同的控制流转移。
为了提升合约剖析工具的控制流剖析能力,提出了基于执行trace的控制流识别增强。智能合约执行trace的一种获取方法是通过标准编程接口 web3.debug.traceTransaction(),但该接口需要提供合约执行的生意哈希值。同时,该接口的运行效率很低,通太过析源码发明其在获取trace之前需要做运行情形初始化、构建准确状态和重放生意纪录,加上web3编程接口是RPC挪用历程,因此效率难以提升,最终选择了对以太坊区块链终端举行插桩,由于该终端能执行所有的历史合约操作。详细来说,通过对JUMP和JUMPI操作举行了插桩,最终获得了6300万的执行trace。同时,也对这些trace举行了切割,由于合约的执行trace纪录会包括合约内的控制转移和合约间的控制转移。通过对上述工具识别的控制流和执行trace获得的控制流举行了剖析,发明执行trace可以提升上述工具的控制流识别能力,尤其是关于MAIAN和Miasm工具,提升能力皆凌驾百分之八十;纵然是最优异的控制流发明工具Porosity,提升能力也有百分之十。
为了验证基于执行trace的有用性,选择了OYENTE工具举行增强实现和验证,增强的详细算法如下图所示。
研究效果是什么?
实验效果批注,执行trace可以有用提升上述工具的智能合约控制流识别能力,能发明这些工具不可发明的控制转移。
通过对OYENTE的源码举行了修改以嵌入增强算法,及对OYENTE能识别的四种合约误差举行了实验,结论见下表。针对生意顺序依赖、时间依赖和重入类型的误差,增强OYENTE能检测更多的误差。针对未处置惩罚异常误差,增强OYENTE未能提升检测能力;对OYENTE举行源码剖析发明,这是由于这类误差是直接用合约字节码扫描来检测的,与控制流剖析无关。
此次针对以太坊区块链智能合约控制流识别的大规模深度研究,取得了多项新的发明。通过插桩以太坊客户端,网络了所有的智能合约并还原了所有的执行trace。实验证实,执行trace可以提升目今主流的智能合约剖析工具的控制流识别能力,该发明将有助于以太坊用户、开发者和研究剖析职员开展更深入的智能合约研究。
作为信息清静行业领军企业,尊龙凯官网入口坚守初心及自主立异的精神,始终重视对区块链手艺清静问题的研究与探索,全力包管用户对区块链的清静需求。


京公网安备11010802024551号