智能合约源代码混淆技术
发布日期:
2024-05-16
浏览次数:
109

智能合约作为区块链核心技术之一,本质上是一种由程序自动执行的代码段,具有去中心化、不可篡改与公开透明等特点。近年来智能合约在数字货币、数字资产、投票、保险、金融应用、预测市场、财产管理、物联网与点对点交易等领域发挥了重要作用。然而随着区块链应用的日益普及,有关智能合约的安全威胁与攻击事件显著增加,给智能合约带来巨大的安全风险,可能导致经济损失与用户信任下降,因此如何保护好合约源代码,保证其在区块链环境中稳定运行显得尤为重要。

围绕增强智能合约安全性与防御恶意攻击等问题,提出了一种智能合约源代码混淆方法BiAn狴犴通过混淆数据流、控制流和代码布局来提高智能合约的复杂性,减少潜在攻击机会。首先,过引入不透明谓词和控制流平坦化等方法来混淆控制流,使得恶意攻击者更难破解代码结构,其次,利用特定的混淆技术,改变源码中变量的存储与结构,使代码逻辑更加难以理解,此外,BiAn还通过删除注释、替换变量名等手段进一步增强代码安全性。

本文的原创性贡献为:针对提高智能合约代码安全性需求,提出了一种源代码混淆方法BiAn。通过结合多种代码混淆技术,包括不透明谓词、控制流平坦化、数据流混淆与代码布局混淆,形成了一套针对Solidity语言特性的系统化混淆方法,提高了合约复杂性,使得经过混淆后的合约更难被逆向工程和静态分析工具破解。在评估了11种最先进的静态智能合约错误检测工具后,表明近乎100%的工具检测准确率和召回率显著下降,且反编译器整体失败率上升了40%。从而增强了智能合约抵抗逆向工程的能力,大幅提高了智能合约代码的安全性,具有潜在的应用价值。

(第一作者:张鹏程为河海大学计算机与软件学院教授、博士生导师)

原文题目为:BiAnSmart Contract Source Code Obfuscation”,于20239月发表在IEEE Transactions on Software Engineering (IEEE TSE)上,DOI10.1109/TSE.2023.3298609IEEE TSE属于中国计算机学会(CCF)推荐A类期刊,是软件工程领域国际权威期刊之一,最新影响因子为7.4,该期刊侧重于软件建模、分析和管理等方面。期刊的核心主题包括软件开发方法与技术,软件测试与验证,软件安全,数据库以及分布式处理等。