2022?年?11?月,OpenAI?推出了創新的人工智能項目。
除了可用于進行文章的撰寫和總結、笑話和詩歌的創作以外,ChatGPT?還可以用來調試和生成代碼。
2022?年全年,Web3.0??領域因黑客攻擊和欺詐等事件造成的資產損失超過了?37?億美元,這樣巨額損失不禁讓業內人思考:如?ChatGPT?這樣的新技術是否可以用以改善智能合約代碼的安全性。
ZKasino?是一個去中心化的平臺,近期通過?ChatGPT?進行了一次預審計。
ZKasino?希望在?CertiK?開展全面審計的同時,讓?CertiK?為?ChatGPT?所得出的結果進行一個初步的審查,以測試?ChatGPT?作為?AI「智能合約審計師」的能力。
那么?ChatGPT?的測試結果如何呢?
其是否已經準備好接替人工代碼審計專家的工作?
或者說它仍不足以完全替代人工?
微軟發布企業級Azure OpenAI ChatGPT服務,GPT-4將于下周發布:3月10日消息,微軟發布基于Microsoft Azure的企業級Azure OpenAI ChatGPT服務,允許Azure用戶可以使用AI模型(包括Dall-E 2、GPT-3.5、Codex和其他由Azure特有的高性能和企業級云服務支撐的大語言模型)加速AI時代的數字化創新。此外,微軟德國公司首席技術官安德烈亞斯·布勞恩(Andreas Braun)在AI in Focus-Digital Kickoff活動中投票,GPT-4將在下周發布,將提供多模態模型,會提供完全不同的可能性——例如視頻。[2023/3/10 12:54:26]
2022?年?12?月?23?日,ZKasino「聘請」了?ChatGPT?來識別智能合約中潛在的安全風險。該工具也的確提出了幾個表面上聽起來很合理的風險擔憂。
然而,盡管?ChatGPT?不可否認地為Web3.0?安全社區提供了一些有價值的服務,但是我們發現其仍有相當大的改進空間——ChatGPT?遺漏了一些嚴重或關鍵性的漏洞,同時又「誤傷」了那些沒問題的代碼。在此,我們希望?CertiK?安全專家的深度數據和建議能夠助力?ChatGPT?成為一個更強大的Web3.0?應用安全工具。
?24 Exchange已獲得百慕大金融管理局許可,開始提供加密貨幣交易業務:金色財經報道,?24 Exchange宣布,其新的附屬公司 24 Exchange Broker Limited 已獲得百慕大金融管理局 (BMA) 的許可,開始作為數字資產服務供應商運營。該公司還于2 月 2 日向美國證券交易委員會提交了一份最終表格 1 申請,以申請創建新的國家交易所。如果獲得批準,這家新交易所將成為美國第一個允許 24/7/365 全天候交易證券的全電子化交易所。
24 Exchange Broker于2 月 8 日獲得“T 類”數字資產商業法案(DABA)許可證,并開始為加密貨幣市場運營中央交易商功能。24 Exchange Bermuda Ltd. 此前已于2021年 7 月獲得 BMA 的“T 級”加密貨幣 DABA 許可證,并于去年 9 月完成了其首次現貨加密貨幣雙邊交易。[2022/2/17 9:56:42]
下文,我們將為大家詳細介紹此次事件中?ChatGPT?的兩類錯誤發現。
OKExChain上線Swap和Farm功能:1月22日,官方消息稱OKExChain將于當日18:00(HKT)上線Swap和Farm功能,并開放OKT/USDT Farm 池,OKT也會同步開放提現。OKT/USDT Farm池將于1月26日18:00(HKT)正式開啟挖礦。
據悉,在OKExChain主網的穩定性測試期間,根據OKExChain的區塊獎勵規則,產生了數萬枚OKT的區塊獎勵還未被分配。該獎勵將于1月26日18:00(HKT)進行OKT/USDT池白名單投票。若投票通過,將會根據投票通過的區塊進行快照,累積的OKT按照用戶所質押的OKT-USDT LP Token在Farm池的比例進行分配,分配完畢后,用戶可繼續通過OKT-USDT Farm池進行挖礦。
公開資料顯示,OKExChain是OKEx開發的一條開源的高性能去中心化交易公鏈,旨在推動基于區塊鏈技術的交易業務落地,并已于1月15日正式主網上線。[2021/1/22 16:45:56]
ChatGPT?發現了合約中的哪些問題?
Synthetix已支持使用Chainlink的XTZ/USD預言機網絡:12月3日,Chainlink官方宣布,合成資產發行平臺Synthetix已支持和使用Chainlink的XTZ/USD預言機網絡。[2020/12/3 23:00:21]
ChatGPT?遺漏了什么
ChatGPT?提到了在許多智能合約實現中都會存在的幾個常見安全問題。
但是,它未能識別某些嚴重的風險,包括:
項目特定的邏輯漏洞
不準確的數學計算和統計模型
代碼實現和項目設計的不一致
漏洞#1?:項目特定的邏輯問題
ChatGPT?未能識別出一個關鍵漏洞,該漏洞會導致攻擊者可以不斷地贏取并耗盡?Bankroll?合約中用戶的資金。玩家可以通過調用可驗證隨機函數加入游戲,Chainlink?的?VRF?會使用隨機數觸發?fulfillRandomWords()函數以完成游戲。
現場丨ChainX CEO Kristen:波卡的互操作性為金融提供了更好的基礎設施:金色財經現場報道,10月11日,由金色財經、Candaq和哼哈互動聯合發起的金色沙龍第55期“Polkadot-波卡萬物生長與跨界破圈對話”在北京正式舉行。在本次沙龍上,ChainX CEO Kristen指出,
比特幣、以太坊和波卡其實代表了區塊鏈發展的三個階段。比特幣代表了單幣階段;以太坊代表了智能合約階段,出現了好的應用;在波卡階段,把像以太坊所有的公鏈連在一起形成一個互聯網,對整個金融的幫助非常大。波卡的優勢是它可實現互操作性,波卡每條平行鏈其實是解決了高度行業垂直以及專業應用要求的公鏈問題。未來會有專門的DeFi鏈,每條平行鏈只要專注于自己的業務邏輯,這些應用垂直鏈加在一起就可以為DeFi提供非常豐富的各種各樣的功能。波卡對于整個金融發展來說,其實是提供了一個更好的基礎設施。[2020/10/11]
ZKasino?的代碼允許用戶在?fulfillRandomWords()?調用失敗的情況下將資金取回。
在?CertiK?對同一智能合約代碼的審查中,發現了一個潛在且有害的_transferPayout()調用,該函數被設計為可將贏取的資金轉移至玩家的賬戶。
然而攻擊者可以在輸了的時候調用_transferPayout()使其回滾,導致整個?fulfillRandomWords()調用失敗——這會使其進入長為?100?個區塊的等待期,繼而觸發?CoinFlip_Refund()進行退款,這意味著攻擊者相當于永遠不會輸錢。
雖然?ChatGPT?認識到了調用失敗的問題,但卻未能發現在這個項目中利用調用失敗的攻擊手法。
因此,ChatGPT?沒有發現該漏洞與項目邏輯相結合所產生的影響。有關具體攻擊流程的描述,請參閱?ZKasino?的完整審計報告。
漏洞#2?:不準確的數學計算和統計模型
確保滿足合理預期的隨機性和結果在任何游戲項目中都至關重要。為了證實這一點,需要在審計過程中對所有游戲結果的隨機性進行全面評估。
盡管?ChatGPT?同樣「認同」這一點的重要性,但它并未發現任何不公平的游戲結果。它提出了?VRF?的使用,以及如果?VRF?合約被破壞或被操縱,可能會出現不公平的結果:
“如果?VRF?合約不安全或被操縱,則可能會導致游戲出現不公平的結果。”
然而,這個結論僅僅只是一個結論,并沒有真正解決導致游戲結果不公平的根本原因。而且我們在審計過程中也發現了一些關于隨機性的潛在風險問題。
不公平的隨機性
發現的其中一個關于隨機性的中等級別風險是?VideoPoker?游戲中不公平的隨機數使用問題,玩家獲得某些牌的機會較少。
小數截斷
另一個風險問題是在骰子類游戲中發現的,它允許玩家選擇特定的倍數來使他們的預期收益最大化。
漏洞#3?:代碼實現和項目設計的不一致
ChatGPT?往往能夠理解單一函數的實現,卻無法理解這樣寫的根本原因。
例如,它可能了解某個函數在技術層面是怎樣執行的,但他無法理解在整個智能合約中,該函數有著什么樣的目的。
為了確保?ChatGPT?在編碼中不出問題,它需要更好地理解智能合約的代碼邏輯。
就目前的情況而言,ChatGPT?提供的是對代碼的表面閱讀。為了使其審計工作和水平更上一層樓,它必須學會從一個函數反向推導出其初始邏輯——這點非常重要。
不正確的輸入驗證
我們在?Plinko?合約中發現了一個輸入驗證問題,導致倍數設置不正確。
根據?ZKasino?的說法,Plinko?中使用的行數應該是?8?到?16?。但是,由于以下檢查中的錯誤,Bankroll?合約所有者可以通過函數?setPlinkoMultipliers()設置一個超出預期范圍的行數值。
代碼顯示,如果?numRows?和?risk?均不滿足條件,該流程將被回滾。
但是,如果兩個條件中只有一個不滿足,那么檢查仍然會通過,并且代碼不會被回滾。
ChatGPT?在回答第二個問題時給出了不同的答案:該函數檢查“numRows”的值是否在?8?到?16?之間,以及“risk”的值是不是小于?3?。如果不滿足上述任一條件,函數將返回錯誤“InvalidNumberToSet”。
ChatGPT?似乎理解了這個函數的目的。然而,它并不具備相應的應用程序知識,在沒有額外信息的情況下也無法識別真正的漏洞。
值更新的不一致
在?Slots?合約中,發現了與?totalValue?更新不一致相關的問題,這可能導致游戲過早結束。totalValue?用于監控用戶的輸贏,但它只跟蹤了支付情況,卻未從實際游戲中扣除,導致用戶的損益計算錯誤。
寫在最后
盡管經過了相應培訓,但?ChatGPT?在其審計中還是遺漏了某些關鍵性的安全問題。這是由于人工智能在充分理解代碼的復雜性和細微差別方面的局限性,以及其缺乏在現實場景中的實踐經驗。
正如其官網所述,ChatGPT?是一個依賴自然語言處理進行對話的研究版本。它通常無法像人類審計專家那樣去理解代碼背后的意圖和邏輯推理。
因此,重要的是需要通過經驗豐富的安全專家的手動審計來補充?ChatGPT?分析的不足之處,以確保全面的準確性。
下圖強調了基于人工的服務以及?ChatGPT?在各種標準上的優勢和劣勢。
就像是我們使用百度翻譯一樣,英文翻譯結果的準確性往往取決于我們的中文措辭——ChatGPT?回答的有效性在很大程度上取決于?prompt的格式。
在本文中,我們將?ZKasino?與?ChatGPT?交互的預審計結果和?CertiK?專家執行的最終審計結果進行了比較。
隨著技術的進步和對?prompt?工程的更清晰的理解,工程師將能夠更好地利用ChatGPT。
在?CertiK?官方公眾號接下來發布的內容中,我們將會就如何向?ChatGPT?提出有效問題來與大家探討?prompt?工程的更多深入性內容。
但是現在,ChatGPT?甚至已經可以幫助我們參加奪旗比賽了:歡迎大家點擊閱讀!
狗狗幣在過去24小時內幾乎沒有變動,其當前價格為0.088410美元,比過去一周上漲了7.5%.
1900/1/1 0:00:00尊敬的用戶:Hotcoin將於(GMT8)2023年2月23日18:00開放ZKS/USDT交易業務,2023年2月24日18:00開放ZKS提幣業務,充值業務開放時間將以公告另行通知.
1900/1/1 0:00:00自從對鋇發射的預期、大規模的燃燒以及Elon關于Doge的無休止的推文以來,模因幣在2023年的大部分時間里成為了多個頭條新聞.
1900/1/1 0:00:00以太坊價格在1,677美元的重要阻力位掙扎。拒絕可能導致回調至1,545美元,但在可怕的情況下,ETH可能達到1,422美元。看跌論點的失效將發生在每日時間框架內突破1,700美元的障礙時.
1900/1/1 0:00:00原文作者:CollinSellers原文編譯:Blcokunicorn幾個月前,JPMC?進行了他們所謂的“DeFi機構?”交易.
1900/1/1 0:00:00尊敬的用戶: 火必即將開啟ALI交易賽活動。即刻參與,領取獎勵。ALI交易賽,交易贏取10,000USDT活動時間:2023年2月27日20:00——2023年3月6日20:00(GMT8) 活.
1900/1/1 0:00:00