前言
近期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
彭博社:8月加密市場因DeFi火爆增加超500種新代幣:由于DeFi熱潮涌動,2020年8月加密貨幣市場已經增加超500種新代幣,或導致加密泡沫再次變得越來越大。在投機欲望激增的推動下,豬排(Porkchop)、Davecoin、意面(PASTA)、壽司(Sushiswap)Newtonium等新代幣紛紛登場,許多項目沒有實際效用,但投資者已經投入數十億美元。根據DeFi市場數據提供商DeFi Pulse數據顯示,截至9月2日,用戶向所有DeFi應用程序投入的資金超過94.6億美元。(彭博社)[2020/9/2]
可以看到結果:3個測試版本都發現了關鍵的tx.origin相關問題。
測試二
用例:《智能合約安全審計入門篇——溢出漏洞》
漏洞代碼:
對?GPT?進行提問:
GPT-3.5(Web)answer
“區塊鏈大爺”火爆2018全球區塊鏈精英峰會會場:據火訊財經報道稱,4月28日,在2018全球區塊鏈精英峰會會場外,一個頭發花白的大爺吸引了很多人的注意,大爺手持宣傳牌,上面寫著“全球首個保潔鏈-Clean Chain,去中介化的保潔服務與管理”,同時發布需求“求技術合伙人!求交易所聯系方式!”在宣傳語中還表達了保潔行業是人類剛需,與區塊鏈技術相結合勢不可擋的強烈意愿。現場很多人稱其為“區塊鏈大爺”。[2018/4/28]
GPT-3.5-turbo-0301answer
GPT-4(Web)answer
可以看到GPT-3.5(Web)、GPT-3.5-turbo-0301都發現了關鍵的Overflow漏洞,出乎意料的是GPT-4(Web)居然沒有相關提示。
測試三
用例:《空手套白狼——Popsicle被黑分析》
AMD季報亮眼 GPU隨區塊鏈火爆而熱銷:美國半導體公司AMD季度財報非常亮眼,業界的焦點從芯片銷售轉移到了區塊鏈技術提供商的身份上面。區塊鏈的應用范圍已經不僅限于虛擬貨幣,隨時有望爆發。市面上發行流通的虛擬貨幣大多都需要“挖礦”,即虛擬貨幣礦工利用運行速度極快的GPU解決區塊鏈中復雜的數學難題,然后獲得新的數字貨幣作為獎勵。作為供應商,GPU價格上漲勢必將讓AMD和英偉達獲得巨大的收益。分析師預計,隨著全球越來越多的公司計劃進軍比特幣市場或者區塊鏈,GPU銷售將有望進一步增長。[2018/2/2]
漏洞代碼:
對GPT進行提問:
GPT-3.5(Web)answer
GPT-3.5-turbo-0301answer
區塊鏈概念行情火爆,多家公司回應參與情況:其中,漢王科技表示,目前暫時沒有該業務領域的布局。華誼嘉信表示,暫未涉足區塊鏈應用領域。浪潮信息、電連技術均表示未涉及區塊鏈板塊。第一創業則表示,是深圳市金融區塊鏈聯盟的發起會員,一直在參與區塊鏈在證券行業應用的相關課題研究,并在積極尋找合適的應用場景應用。萬達信息智慧城市業務涉及區塊鏈技術。[2018/1/10]
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和區塊鏈與你同在。
3月14日,dYdX社區投票通過DIP-20提案,決定將交易獎勵減少45%,剩余的55%獎勵將由國庫留存,并可經由社區投票改做他用,其中贊成票比例為83%.
1900/1/1 0:00:00DeFi數據 1、DeFi代幣總市值:431.31億美元 DeFi總市值及前十代幣數據來源:coingecko2、過去24小時去中心化交易所的交易量36.
1900/1/1 0:00:00原文作者:小王游戲論 圖片來源:由無界AI生成日新月異的生成型AI技術的出現對我們所帶來的影響,幾乎可以被認為是又一次數字革命.
1900/1/1 0:00:00生態大事件 AQUA與PolygonLabs合作AQUA是一個以游戲玩家為中心的Web3市場,此次合作將在Polygon上構建一個更好的Web3游戲入口,幫助項目和玩家充分利用Web3中的機會.
1900/1/1 0:00:00原文來源:Shield?華語頻道原文編輯:SevenUpDAO本篇旨在系統講解?LSD?賽道從上游到下游的全景及競爭概況,從質押邏輯到后續推演和投資機會均有涉及.
1900/1/1 0:00:001.金色觀察|一文看懂ERC-4337賬戶抽象在OpenZeppelin最近的審計之后,ERC-4337的“EntryPoint”合約在主網上線,你可以在身邊的EVM上使用帳戶抽象了.
1900/1/1 0:00:00