本技术提出了一种创新的智能合约库误用检测技术,该技术融合了大语言模型和静态分析。该方法首先提取库误用信息,随后构建了一种先生成后选择的提示词机制,并通过此机制利用大语言模型进行智能合约的误用检测,以提高检测的准确性和效率。
背景技术
区块链技术以其去中心化和不可变的特性以及卓越的安全性而闻名,在金融和医疗保健等关键领域找到了广泛的应用。以太坊作为首个支持智能合约的公共区块链平台,通过引入支持创建智能合约的可编程区块链,彻底改变了区块链领域,已成为最受欢迎的区块链平台之一。智能合约是自执行合同,其协议条款直接编写在代码行中,并在区块链上运行。以太坊平台允许开发者使用其主要语言Solidity编写智能合约,并在以太坊虚拟机(EVM)上部署。EVM是一个去中心化的虚拟机,它使用国际公共节点网络执行代码,这种方法带来了更高程度的透明度和信任,因为交易和合约状态被不可改变地记录在区块链上。Solidity库是一组可重用的函数,可以被其他合约调用。开发者经常将解决特定问题的常见操作或函数封装起来。当其他开发者希望实现类似的功能时,可以导入这些库并使用它们的方法来解决特定问题,智能合约开发过程中不正确的实现或应用库可能会导致合约中的缺陷,目前缺乏能够有效检测和识别智能合约中库误用模式的工具。
库误用是智能合约开发中的一个常见问题,涉及三个关键角色:创建库的开发者、使用库的合约开发者和维护库的社区,这三个角色之间的有效协作有助于开发智能合约。然而,创建库的开发者或使用库的合约开发者的不当行为被称为库误用,包括但不限于不正确的函数调用、对库函数能力的不完全理解,或未能及时更新到库的安全版本,从而引入安全漏洞等。因此,传统的库误用检测方式存在检测不精确的问题。
实现思路