風靡全網的“最強AI” ChatGPT,能不能檢測智能合約漏洞?
作者:Beosin
一夕之間,ChatGPT突然火了,並在互聯網上掀起了一場"AI風暴"
所謂ChatGPT,是在今年11月30日,由人工智能實驗室OpenAI上線的新模型。
目前用戶與ChatGPT之間的對話互動包括了普通聊天、信息諮詢、撰寫詩詞作文、修改代碼等,甚至令用戶產生ChatGPT能否取代谷歌等搜索引擎的疑慮。
今天,我們就來研究一下爆火的ChatGPT究竟是什麼?以及能不能檢測智能合約漏洞?

在互聯網上掀起了一場"AI風暴"的ChatGPT究竟是什麼?
據官網介紹,計算模型GPT-3.5支持的通用聊天機器人ChatGPT,能回答連續性的问题、承認自己的錯誤、質疑不正確的假設,甚至拒絕不合理的需求。
從寫劇本、寫詩、設計遊戲,到給程序找bug,乃至制定一份"毀滅人類"的計劃,這個AI能做的事情超乎想象。
美國企業家馬斯克詢問了ChatGPT如何設計Twitter,AI回答稱:"為了使用戶更容易查看線程互聯網對話並與之互動,你可以將線性一維界面轉換為二維無限網格。"
12月5日,OpenAI創始人兼CEO阿爾特曼(Sam Altman)發布推文表示,ChatGPT用戶數已突破了100萬。
許多人已經測試了聊天功能,並一直在社交媒體上分享他們的交流。ChatGPT似乎也給科技億萬富翁埃隆·馬斯克留下了深刻印象,他在推特上寫道:"ChatGPT好得嚇人。我們離危險的強大人工智能不遠了。"

技術公司Replit的創始人Amjad Masad還給ChatGPT發了一段JavaScript代碼,讓它找到裡面的bug,並表示:"ChatGPT可能是一個很好的調試夥伴,它不僅分析了錯誤,還修復了錯誤並進行了解釋。"

一位用戶甚至要求ChatGPT從AI的角度寫一封信,目標是控制世界。
結果簡直令人震驚。它引起了久負盛名的人工智能的人們的回應,接管了科幻小說的世界概念,向現實邁出了一步。
擁有如此強大而驚艷的語言能力,一時間,ChatGPT悄然走到了話題中心,成為了引發熱議的新晉網紅。
目前ChatGPT仍處於免費測試階段,不限量向公眾開放,基於其破百萬的用戶數,平台所花費的成本不算小。不過,在使用過程中,用戶提供的反饋對OpenAI也是最有價值的信息,可以不斷訓練語言模型,修正錯誤答案。
"新晉網紅"ChatGPT,可以寫智能合約或者檢測合約漏洞嗎?
我們註冊並體驗了一下ChatGPT對話,我們首先讓AI自我介紹。
他回覆道,"我是Assistant,一個由OpenAI訓練的大型語言模型。我的工作是幫助人們回答各種問題,盡可能提供準確和詳細的信息。我可以回答各種問題,無論是關於歷史、科學、人文還是其他話題。"

作為一家區塊鏈安全公司,我們有了另一種想法,那就是讓他來寫一份智能合約。

寫一份簡單的合約,對ChatGPT而言好像沒有太大的難度。因為代碼太長,我們截取部分截圖展示,可以看到,他還是懂一些基礎知識的。


接下來,我們丟給ChatGPT一個相對簡單的但是有漏洞的智能合約,讓他檢測一下,我們截取部分截圖展示。

好家伙,不簡單,ChatGPT竟然還是能檢測一些簡單的問題。

看這情況,是有"兩把刷子",來,繼續上難度!

本以為他會繼續給我們驚喜,他卻來一句:"我看不懂這份這份代碼"。

然後我們加了一些註釋,讓他重新檢測。
他說了一些什麼,又像什麼都沒說。
然後建議我們使用專業的安全審核工具或者請求專業人員進行審核。

好吧,那我們先派出我們的智能合約形式化驗證工具Beosin VaaS,將剛剛測試的那幾份合約檢測了一下,可以看到,VaaS能很快檢測出合約的漏洞。

Beosin VaaS產品截圖
要知道,VaaS作為Beosin的王牌產品之一,可自動發現智能合約中存在的已知、未知漏洞及業務邏輯問題,並給出專業的修復建議,幫助開發者提高智能合約的安全能力。大家感興趣可以檢測對比一下,VaaS試用鏈接:https://vaas.beosin.com/
除此之外,經過我們的多輪對比,我們發現ChatGPT並不能解決所有的問題,比如很多漏洞還是需要審計專家嚴苛審計,才能發現問題。
比如下面這份合約的問題,設置手續費沒有限制,可能導致用戶高額手續費,ChatGPT並沒有意識到這些。

還有下面這個,在transfer函數中,如果trAmount=2被觸發,10秒內所有的傳輸地址都是dev地址。ChatGPT依然不能識別。

畢竟做安全,必須要有嚴苛安全審計流程,才能築牢安全防線。
Beosin的審計流程的規範性上,包含5個環節以上的審計步驟,自動化代碼安全掃描與安全專家和形式化驗證專家的人工審計結合。每一步均由多名安全專家和形式化驗證專家交叉操作,盡量避免因為人為因素導致的遺漏。
完成一輪審計後,Beosin會出具所發現問題的Feedback,裡面包含漏洞描述,復現方式,修復建議等,然後提交給項目方並協助項目方完成漏洞修復。我們有著海量的安全漏洞庫的積累,結合安全專家的豐富的代碼安全審計經驗,能夠直接告訴項目方應該怎麼修改代碼。這個可比ChatGPT強多了哦!
最後,形式化驗證專家又將安全審計專家凝練出的安全問題利用嚴格的數理邏輯抽象成可重用的安全屬性不變量,並交給混合機器引擎進行自動化檢測、測試、驗證,實踐證明這些可重用的安全屬性不變量可有效發現智能合約中新的微妙漏洞。
看來我們還暫時不會被ChatGPT的機器人代替。
當然,當我們在關注chatGPT的時候,更需要思考和探索的是,他火爆背後所透露出的信息,它所呈現出來的人工智能或許已進入到了全新的發展階段,科技正在慢慢改變世界。















