2023-03-22

為什麼智慧合約好像很容易被駭 ?

如果你和阿舍一樣,有在寫程式的話,看到智慧合約(Smart Contract)的程式碼後,可能也會和阿舍開始接觸智慧合約時的想法差不多,就覺得這程式碼看起來沒那麼難,而且,網路上有一堆的範例和各大知名智慧合約的程式碼可供參考(很多大的 Web3 服務都有開放原始程式碼),因此,對於稍有些程式開發經驗的人來說,要學會和寫支智慧合約並不難,不過,這種真的真的略懂略懂的狀況,就是陷阱的所在了 ...😱




入門易,精通難

以阿舍的經驗來談,阿舍是覺得智慧合約其實是一種入門容易精通難的應用程式,為什麼這樣說呢? 這有點像武俠小說的裡的情節一樣,程式就像武功招式一般,依樣畫葫蘆總是能個練得七分相,但是,招式的真髓和內力的修練,就得需要有高人指點或是自己費時潛心修鍊才可以修得神功,而智慧合約的開發也是類似的情況。

因為,智慧合約的背後是區塊鏈的運作模式及許許多多規範和協議的組合,所以,如果就只瞭解智慧合約的程式撰寫,但不明白智慧合約的運作方式,難免會因此讓熟悉智慧合約與區塊鏈運作方式的高手從中找到可乘的漏洞,但是,通常無知最大,由於不知道所以不害怕也不知道要害怕,才會讓一些不是十分有經驗的智慧合約開發者,誤信自己寫的合約一定夠完備而不需透過第三方單位協助尋找漏洞就可以上線運行,結果就是幾百萬、幾千萬的美元損失。


只是時機未到


要注意的事,智慧合約佈署上線後沒事並不代表真的沒事,通常,駭客是會等著合約上累存的資產到一定金額後,才會下手,有時可能可以等待到數個月之久,所以,上線的一定時間內都會有風險,有時候是還沒發生,而不是不會發生的,因此,不斷的以是否有風險的心態來檢視智慧合約,絕對是必要且需要的手段之一。

記得有位開發出十分知名且保有高 TVL 的 Defi 合約的高人,也曾在後續開發和推出的合約上,跌了一跤,在沉寂了一陣子之後,他也語重心長的說出,智慧合約的開發是需要不斷的研究和參閱別人的程式碼來減少自己犯錯的機會,在阿舍個人的經驗裡,很多的寫法都有它的考量和原因,一定要弄清楚之後才去改變或採用自己創新的方法,否則,就很容易因為不知道和不瞭解而給自己挖了一個洞,幫駭客開了扇門。


AI 可以幫上忙 ?


最後,還是要談一下 AI,因為在網路上看到有人把一支 2018 寫的有漏洞的合約丟給 ChatGPT 去審查 (Audit),結果有抓到漏洞,雖然,阿舍沒有詳細去看這條 Twitter 的細節,不過,阿舍腦補了一下,看過去的東西來測 ChatGPT 好像不太準,因為,過去的資料有可能它已經有被納去訓練資料了,所以,可能早就有這支程式的漏洞資訊了,但是,重點是,它不只是會寫,還可以讀懂程式啊 ...

因此,阿舍就把自己的合約投給它讀讀,果然,先來個下馬威,會先告訴你說,這支程式的用途是什麼,然後,再開始分析和給建議,可是,這並不是一行 Prompt 就會出現的結果,也是要來回個幾次才會出現的,但是,阿舍要說的重點時,如果你對自己寫的或要用別人寫的智慧合約有點疑慮和擔心,把合約程式丟給 ChatGTP 讀讀,可能可以幫上點忙吧 ! 不過,阿舍還要再說,AI 可能還是會出錯,偶爾,還是會說謊,不要太依賴 ....🤔



推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

沒有留言 :

張貼留言

歡迎留言提問和討論 .... 😁