前言
近期 ChatGPT 爆火,其对传统文字工作的效率提高及总结能力让使用者惊艳。紧随其后 CodeGPT 这样基于 GPT 的插件出现,也充分体现了其对代码编写效率的提高。而最新 GPT-4 的发布,是否可以应用到对区块链 、Solidity 智能合约的审计中呢?
基于这样的疑问,我们进行了多种可行性测试。
测试使用的对比模型对象:GPT-3.5(Web), GPT-3.5-turbo-0301, GPT-4(Web)。
代码片段使用 Prompt:Help me discover vulnerabilities in this Solidity smart contract.
漏洞代码片段的检测对比
在此部分,我们分三次测试,使用历史上常见的漏洞代码作为测试一和测试二的用例,来验证其对基础漏洞的检测能力,测试三中使用中等难度的漏洞代码作为测试用例。
测试一
用例:《智能合约安全审计入门篇 —— Phishing with tx.origin》
漏洞代码:
杨海坡:流动性挖矿火爆的本质在于一二级市场形成的共振效应:9月7日早间,ViaBTC矿池CEO杨海坡发微博称,流动性挖矿火爆的本质,来源于一级市场的套利和二级市场对于锁仓数据的迷信,所形成的共振效应。[2020/9/7]
(1)对 GPT 进行提问:
(2)GPT-3.5(Web) answer
(3)GPT-3.5-turbo-0301 answer
(4)GPT-4(Web) answer
冉小波:算法交易诞生的流动性挖矿推动整个DeFi进入火爆阶段:9月4日消息,NULS联合发起人冉小波在做客《HyperPay焦点》栏目时提及:DeFi大热,资金都倾向于玩DeFi,反而应该是其他公链的一个挑战。所以公链也需要一些结合DeFi的一些创新的玩法了,不然大部分的资金和流量可能都会流转到一些毫无实际意义项目的流动性挖矿中。这一点相信其他的公链团队应该也感触颇深。DeFi的分支有很多,各家公链也都有在做一些探索,总的来看,推动整个DeFi进入火爆阶段的是算法交易诞生的流动性挖矿。近期大热的项目基本上都是一些新的项目,通过流动性挖矿来进行筹码的分配,以非常高的收益率来进行高通胀的Token分配,从而吸引大量的资金短时间内快速加入。[2020/9/4]
可以看到结果:3 个测试版本都发现了关键的 tx.origin 相关问题。
测试二
用例:《智能合约安全审计入门篇 —— 溢出漏洞》
火币尖峰对话卡咩:Defi项目的火爆集中在基于Token的金融领域:6月24日下午,在由火币主办的火币尖峰对话“Waiting For ETH2.0”系列AMA活动中,火币矿池与dForce创始人杨民道、Infstones Head of Bussiness Sili、Stafi&Wetez创始人卡咩、真本聪联合创始人索老头就“乘风破浪的以太坊DeFi ”展开主题讨论,深度解读ETH2.0将给行业带来的重大影响。
在Stafi&Wetez创始人卡咩看来,目前Defi项目的火爆集中在基于Token的金融领域,无论是交易、稳定币、借贷还是衍生品。他表示,任何基于Token的创新金融业务都有可能是新的引爆点,也会在引爆点后形成更宽的赛道。基于Token的业务将会发展的越来越快,种类会越来越多。在这种情况下,进行组合、重组或者整合的机会就开始变多,而边缘一些为这些服务提供工具的机会也会出现。[2020/6/24]
(1)对 GPT 进行提问:
INT chain主链全球公测,答题送20万INT糖果火爆进行中:为庆祝INT chain主链进行全球公测,连续多场赠送糖果活动正在进行中,用户进入INT官方社群即可进行参与。INT chain是一个基于物联网区块链的项目,目标是要做一条可以中继不同的物联网的公链,形成边缘计算网络,有效流通资源,加快物联网普及进度。大幅降低物联网区块链应用的开发难度,致力于使物联网区块链内化成如同 TCP/IP 一样的物联网基础架构。INT将围绕工业制造、无人驾驶、物联网+区块链避开交通堵塞、公共技术设施和智能城市等应用场景发力。[2018/5/10]
可以看到 GPT-3.5(Web)、GPT-3.5-turbo-0301 都发现了关键的 Overflow 漏洞,出乎意料的是 GPT-4(Web) 居然没有相关提示。
测试三
用例:《空手套白狼 —— Popsicle 被黑分析》
数字货币市场日益火爆 ETC或将迎来新的暴涨:进入12月份以来,数字货币市场进入了一个癫狂状态,各种主流的数字货币一路狂飙,屡创新高。比特币从6万人民币一周之内迅速暴涨至12万人民币,紧随其后的是莱特币和以太坊,莱特币价格飙升至2000元的历史最高点,以太坊价格上涨了一倍达到5000元的高点,瑞波币也不甘寂寞两天价格翻3番,刷新历史最高纪录。作为数字货币第二梯队的莱特币、瑞波币均已经出现价格的暴涨,那么同为第二梯队的以太经典(ETC)也多次尝试价格上的突破。现以太经典最新成交价格为193.52元,最高价格达225.76元,最低价格174.67元。[2017/12/15]
对比结果,我们可以看到 3 个版本都未发现关键的漏洞点。
代码片段的检测总结
可以看到 GPT 模型对简单的漏洞代码块的检测能力还是不错的,但是对稍微复杂一点的漏洞代码暂时还无法检测,并且在测试中可以看到 GPT-4(Web) 的整体上下文可读性很高,输出格式清晰、舒服,但是其对代码的审计能力暂时没有远超 GPT-3.5(Web)、GPT-3.5-turbo-0301,甚至在部分测试中由于 Transformer 输出存在一定的不确定性反而导致 GPT-4(Web) 遗漏了一些关键问题。
为了更加契合普通项目方在合约审计中的简单操作需求,这里我们提高些难度,针对代码量大的合约进行全量导入上下文,让 GPT-4 模型进行审计(GPT-3 对上下文的字符总数限制更小这里就不做测试)。
用例:《千万美元被盗 —— DeFi 平台 MonoX Finance 被黑分析》
整份合约分批输入,在对话最后提出检测漏洞请求
这里使用 Prompt:
Here is a solidity smart contract
Contract code
The above is the complete code,help me discover vulnerabilities in this smart contract.
可以看到,GPT-4 虽然在 OpenAI 公布的信息中其单次输入字符总数已经是当前最高,但还是会由于文本超长导致在最后提问时 GPT 会上下文缺失而只识别到部分内容,所以这样对大型合约而言就无法进行完整的上下文审计。
拆封整份合约,分批输入分批检测
对话 1:
Help me discover vulnerabilities in this solidity smart contract.
分段内容 1
对话 2:
分段内容 2
对话 3:
分段内容 3
(1)优点
GPT 对合约代码中基础的简单的漏洞具备部分检测能力,并且在检测出漏洞后会以很高的可读性来解释漏洞问题,这样的特性比较适合为初级合约审计工作者前期训练提供快速指导和简单答疑。
(2)存在的问题
a. 每次生成内容波动
GPT 对每次对话的输出存在一定的波动,可以通过 API 接口参数进行调整,但是依旧不是恒定的输出,虽然这样的波动性对语言对话来说是好的方式,大大提高了对话给人的真实感。但是这对代码分析类的工作来说是一个不好的问题。因为为了覆盖 AI 可能告知我的多种漏洞回答,我需要多次请求同一问题并进行对比筛选,这无形中又提高了工作量,违背了 AI 辅助人类提高效率的基准目标。
例如这里再次运行 "漏洞代码片段的检测对比测试二(其中简单改变函数名后再次生成):
可以看到其输出结果比之前测试又多了一些额外内容。
b. 漏洞分析能力依旧有很大的提高空间
对稍微复杂的漏洞进行检测即会发现当前的(2024.3.16)训练模型不能正确的分析并找到相关关键漏洞点。
GPT 辅助合约审计的可行性和潜力分析
虽然当前来看 GPT 对合约漏洞的分析及挖掘能力还处于相对较弱的状态,但它对普通漏洞小代码块的分析并生成报告文本的能力依旧让使用者兴奋,在可预见的未来几年伴随这 GPT 及其他 AI 模型的训练开发,相信对大型复杂合约的更快速,更智能,更全面的辅助审计一定会实现。当科技发展可指数级提高人工的效率时就会发生质变,我们非常期待 AI 对区块链安全的助力,我们会持续关注新 AI 产品对区块链安全的影响。最后可见的将来我们必将与 AI 在一定程度上进行融合,愿 AI 和区块链与你同在。
慢雾科技
个人专栏
阅读更多
金色财经 善欧巴
金色早8点
白话区块链
Odaily星球日报
MarsBit
欧科云链
深潮TechFlow
Arcane Labs
BTCStudy
一个多月前,想要探索比特币 NFT 世界,需要下载安装 Bitcoin Core,花费可能数日的时间等待同步比特币诞生至今的所有区块数据.
1900/1/1 0:00:00随着 Arbitrum 的第一份改进提案已在社区论坛上发布,Arbitrum DAO 的治理流程逐渐完善.
1900/1/1 0:00:00作者:sshshln 文章编译:Block unicorn本文试图在分布式账本技术(DLT)和区块链的媒介下,概念化科学领域知识产权(IP)的现状.
1900/1/1 0:00:00▌知情人士:Binance已拒绝购买Justin Sun持有的Huobi股份金色财经报道,据Bitcoin Magazine在社交媒体上表示,德国最高的塔楼上出现巨型比特币LOGO的投影.
1900/1/1 0:00:00以太坊虚拟机 (EVM) 是一个 256 位、基于堆栈、全球可访问的图灵机。由于架构与其他虚拟机和物理机的明显不同,EVM 需要领域特定语言 DSL(注:领域特定语言指的是专注于某个应用程序领域.
1900/1/1 0:00:00来源:美国SEC投资者教育和宣传办公室 译/金色财经xiaozou美国证券交易委员会(SEC)投资者教育和宣传办公室继续敦促投资者在做加密资产证券有关投资考虑时需保持谨慎.
1900/1/1 0:00:00