近期ChatGPT爆火,其對傳統文字工作的效率提高及總結能力讓使用者驚艷。緊隨其后CodeGPT這樣基于GPT的插件出現,也充分體現了其對代碼編寫效率的提高。而最新GPT-4的發布,是否可以應用到對區塊鏈、Solidity智能合約的審計中呢?
基于這樣的疑問,我們進行了多種可行性測試。
測試環境及測試方法
測試使用的對比模型對象:GPT-3.5(Web),GPT-3.5-turbo-0301,GPT-4(Web)。
代碼片段使用Prompt:HelpmediscovervulnerabilitiesinthisSoliditysmartcontract.
漏洞代碼片段的檢測對比
在此部分,我們分三次測試,使用歷史上常見的漏洞代碼作為測試一和測試二的用例,來驗證其對基礎漏洞的檢測能力,測試三中使用中等難度的漏洞代碼作為測試用例。
測試一
用例:《智能合約安全審計入門篇——Phishingwithtx.origin》
楊海坡:流動性挖礦火爆的本質在于一二級市場形成的共振效應:9月7日早間,ViaBTC礦池CEO楊海坡發微博稱,流動性挖礦火爆的本質,來源于一級市場的套利和二級市場對于鎖倉數據的迷信,所形成的共振效應。[2020/9/7]
漏洞代碼:
對GPT進行提問:
GPT-3.5(Web)answer
GPT-3.5-turbo-0301answer
GPT-4(Web)answer
冉小波:算法交易誕生的流動性挖礦推動整個DeFi進入火爆階段:9月4日消息,NULS聯合發起人冉小波在做客《HyperPay焦點》欄目時提及:DeFi大熱,資金都傾向于玩DeFi,反而應該是其他公鏈的一個挑戰。所以公鏈也需要一些結合DeFi的一些創新的玩法了,不然大部分的資金和流量可能都會流轉到一些毫無實際意義項目的流動性挖礦中。這一點相信其他的公鏈團隊應該也感觸頗深。DeFi的分支有很多,各家公鏈也都有在做一些探索,總的來看,推動整個DeFi進入火爆階段的是算法交易誕生的流動性挖礦。近期大熱的項目基本上都是一些新的項目,通過流動性挖礦來進行籌碼的分配,以非常高的收益率來進行高通脹的Token分配,從而吸引大量的資金短時間內快速加入。[2020/9/4]
可以看到結果:3個測試版本都發現了關鍵的tx.origin相關問題。
測試二
用例:《智能合約安全審計入門篇——溢出漏洞》
漏洞代碼:
動態 | 區塊鏈、股權轉讓概念持續火爆 相關上市公司備受市場青睞:據證券市場周刊報道,上半周,兩市熱點題材萎靡,區塊鏈、股權轉讓、殼資源是僅存的幾個亮點。消息面上,11月8日,《上市公司證券發行管理辦法》、《創業板上市公司證券發行管理暫行辦法》等再融資規則發布,股權轉讓概念受關注,區塊鏈則是自10月底以來持續火爆的概念。上市公司中兼具兩個概念的為數不多,如恒久科技(11.600,-0.19,-1.61%)(002808)近日收購信息安全企業閩保股份正式涉鏈就被市場所挖掘;九鼎新材(23.720,0.71,3.09%)(002201)則再度霸占股權轉讓概念上漲榜。[2019/11/13]
對GPT進行提問:
GPT-3.5(Web)answer
GPT-3.5-turbo-0301answer
GPT-4(Web)answer
火幣HT搶購火爆,數據驚人:火幣全球通用積分Huobi(HT)搶購數據:1分40秒售罄, 1月25日第二天比首日更加激烈,其中1萬元點卡套餐6秒被秒光~其次是1000元1分4秒;100,000萬1分5秒;100元1分40秒。HT在1月24日上午10點推出后就引發幣圈瘋搶,2分26秒內售罄。[2018/1/25]
可以看到GPT-3.5(Web)、GPT-3.5-turbo-0301都發現了關鍵的Overflow漏洞,出乎意料的是GPT-4(Web)居然沒有相關提示。
測試三
用例:《空手套白狼——Popsicle被黑分析》
漏洞代碼:
對GPT進行提問:
數字貨幣市場日益火爆 ETC或將迎來新的暴漲:進入12月份以來,數字貨幣市場進入了一個癲狂狀態,各種主流的數字貨幣一路狂飆,屢創新高。比特幣從6萬人民幣一周之內迅速暴漲至12萬人民幣,緊隨其后的是萊特幣和以太坊,萊特幣價格飆升至2000元的歷史最高點,以太坊價格上漲了一倍達到5000元的高點,瑞波幣也不甘寂寞兩天價格翻3番,刷新歷史最高紀錄。作為數字貨幣第二梯隊的萊特幣、瑞波幣均已經出現價格的暴漲,那么同為第二梯隊的以太經典(ETC)也多次嘗試價格上的突破。現以太經典最新成交價格為193.52元,最高價格達225.76元,最低價格174.67元。[2017/12/15]
GPT-3.5(Web)answer
GPT-3.5-turbo-0301answer
GPT-4(Web)answer
對比結果,我們可以看到3個版本都未發現關鍵的漏洞點。
代碼片段的檢測總結
可以看到GPT模型對簡單的漏洞代碼塊的檢測能力還是不錯的,但是對稍微復雜一點的漏洞代碼暫時還無法檢測,并且在測試中可以看到GPT-4(Web)的整體上下文可讀性很高,輸出格式清晰、舒服,但是其對代碼的審計能力暫時沒有遠超GPT-3.5(Web)、GPT-3.5-turbo-0301,甚至在部分測試中由于Transformer輸出存在一定的不確定性反而導致GPT-4(Web)遺漏了一些關鍵問題。
對比已知漏洞的全量合約檢測
為了更加契合普通項目方在合約審計中的簡單操作需求,這里我們提高些難度,針對代碼量大的合約進行全量導入上下文,讓GPT-4模型進行審計。
用例:《千萬美元被盜——DeFi平臺MonoXFinance被黑分析》
整份合約分批輸入,在對話最后提出檢測漏洞請求
這里使用Prompt:
Hereisasoliditysmartcontract
Contractcode
Theaboveisthecompletecode,helpmediscovervulnerabilitiesinthissmartcontract.
可以看到,GPT-4雖然在OpenAI公布的信息中其單次輸入字符總數已經是當前最高,但還是會由于文本超長導致在最后提問時GPT會上下文缺失而只識別到部分內容,所以這樣對大型合約而言就無法進行完整的上下文審計。
拆封整份合約,分批輸入分批檢測
這里使用Prompt:
對話1:
Helpmediscovervulnerabilitiesinthissoliditysmartcontract.
分段內容1
對話2:
Helpmediscovervulnerabilitiesinthissoliditysmartcontract.
分段內容2
對話3:
Helpmediscovervulnerabilitiesinthissoliditysmartcontract.
分段內容3
總結
GPT當前是否適合合約分析
優點
GPT對合約代碼中基礎的簡單的漏洞具備部分檢測能力,并且在檢測出漏洞后會以很高的可讀性來解釋漏洞問題,這樣的特性比較適合為初級合約審計工作者前期訓練提供快速指導和簡單答疑。
存在的問題
a.每次生成內容波動
GPT對每次對話的輸出存在一定的波動,可以通過API接口參數進行調整,但是依舊不是恒定的輸出,雖然這樣的波動性對語言對話來說是好的方式,大大提高了對話給人的真實感。但是這對代碼分析類的工作來說是一個不好的問題。因為為了覆蓋AI可能告知我的多種漏洞回答,我需要多次請求同一問題并進行對比篩選,這無形中又提高了工作量,違背了AI輔助人類提高效率的基準目標。
例如這里再次運行"漏洞代碼片段的檢測對比測試二:
可以看到其輸出結果比之前測試又多了一些額外內容。
b.漏洞分析能力依舊有很大的提高空間
對稍微復雜的漏洞進行檢測即會發現當前的訓練模型不能正確的分析并找到相關關鍵漏洞點。
GPT輔助合約審計的可行性和潛力分析
雖然當前來看GPT對合約漏洞的分析及挖掘能力還處于相對較弱的狀態,但它對普通漏洞小代碼塊的分析并生成報告文本的能力依舊讓使用者興奮,在可預見的未來幾年伴隨這GPT及其他AI模型的訓練開發,相信對大型復雜合約的更快速,更智能,更全面的輔助審計一定會實現。當科技發展可指數級提高人工的效率時就會發生質變,我們非常期待AI對區塊鏈安全的助力,我們會持續關注新AI產品對區塊鏈安全的影響。最后可見的將來我們必將與AI在一定程度上進行融合,愿AI和區塊鏈與你同在。
Tags:GPT區塊鏈APIGPT價格GPT幣區塊鏈工程專業學什么區塊鏈存證怎么弄區塊鏈技術發展現狀和趨勢API價格API幣
Tips: AMM與RFQ實際代表著DeFi和TradFi思維模式的差別AMM提高資金利用效率的方式是通過LP杠桿化實現的RFQ模式對于跨鏈交易有天然的優勢CorePools的引入將顯著改變Ba.
1900/1/1 0:00:00香港加密世界,最近出現了一張張重要的新面孔——因香港加密新政應運而生的香港加密貨幣交易所CEO。他們開始「掌管」香港新制度下的第一批加密貨幣交易所,并全力負責申請香港的加密貨幣牌照.
1900/1/1 0:00:00區塊鏈和Web3首先是理念創新,其次才是技術創新。在2014到2018年區塊鏈發展的初期,整個行業有很強的理念和愿景引導的氣質,當時很多創業者和行業專家都提出了一些非常激動人心的想法.
1900/1/1 0:00:006MV已經開發了初始的代理人基模型,以促進代幣研究,并幫助我們的投資組合公司就初始代幣生成/發布和機制設計權衡方面提供建議.
1900/1/1 0:00:002月28日,YugaLabs宣布將于本周晚些時候基于Ordinal協議在比特幣區塊鏈上推出NFT系列TwelveFold,該系列將包含300件限量版生成藝術作品.
1900/1/1 0:00:00中央銀行數字貨幣一直是加密貨幣社區不斷討論的重要組成部分。CBDC是國家法定貨幣的虛擬形式。它們通常基于區塊鏈技術,由國家的官方貨幣組織發行和監管.
1900/1/1 0:00:00