根據《The Block》報導,區塊鏈安全公司 Veridise 的報告指出,零知識(Zero-Knowledge)專案的安全審計發現關鍵問題(critical issues)的可能性是其他審計類型的兩倍。
Veridise 分析了其最近的 100 件審計中發現的 1,605 個漏洞,結果顯示平均每次審計發現約 16 個問題,而在 ZK 專案審計中發現的漏洞數量略高,平均為 18 個。
但是當專注於關鍵漏洞時,Veridise 發現 ZK 審計中有 55%(20 件中有 11 件)存在關鍵問題,而其他審計(包括智能合約、錢包整合、區塊鏈實施和中繼器)的比例為 27.5%(80 件中有 22 件存在關鍵問題)。
根據 Veridise 的說法,ZK 安全性「更加具有挑戰性」,其審計會發現更多的關鍵漏洞,這是由於 ZK 協議中的複雜密碼結構和創新性,這往往能突破現有密碼學技術的界線。
「開發 ZK 電路需要對見證生成器中的操作語意進行精確推理。」Veridise 共同創辦人暨執行長 Jon Stephens 向 The Block 表示:「當那些語意沒有被正確編碼進限制條件時,就會出現錯誤,這解釋了為什麼電路中出現更多的漏洞,因為這與典型的程式設計法非常不同。」
最常見的 DeFi 漏洞
Veridise 表示,總體而言,該公司在審計中發現的最常見漏洞為邏輯錯誤(385個)、可維護性(355個)和資料驗證(304個)問題,占審計中發現的問題總數的 65%。在發現的 360 個特定於 ZK 審計的漏洞中,這三種問題也占了大多數。
該團隊表示,雖然可維護性問題不完全是安全漏洞,包括像是不良的編程實踐,但它們有時差之毫釐就會成為嚴重漏洞。
在發現的 223 種嚴重(關鍵或高級別)問題類型中,邏輯錯誤(91個)和資料驗證(35個)問題居多,其次是「約束過少的電路」(19個)、拒絕服務(16個)和存取控制(13個)漏洞等。在所有審計中,約 78% 的高嚴重性問題可追溯至這五種類型,占已發現漏洞的 174 個。
根據 Veradise 的解釋,邏輯錯誤發生在程式碼因邏輯流程中的錯誤而無法執行其預期功能時,典型的例子是智能合約錯誤地允許使用者提取超出其餘額的資金。資料驗證問題涉及未能在處理資料之前適當地驗證資料的正確性、完整性和真實性。拒絕服務問題涉及旨在破壞協議正常運作的攻擊,例如,智能契約可能被錯誤地設計為允許攻擊者消耗所有可用的 Gas。存取控制問題是指未經授權的使用者可以獲得限制區域或功能存取權的問題。
ZK 審計特有的漏洞
根據 Veridise 的說法,嚴重問題約占大多數漏洞類型的 10% 到 30%,但「限制過少的電路」有 90% 的可能性包含關鍵或高級別問題。
「限制過少的電路是零知識相關審計中特有的典型問題……當一個算術電路的約束不足以充分執行所有必要條件以檢查某些計算是否正確執行時(就會出現這種問題)。」該公司解釋說:「它們不會出現在傳統的智能合約中。」
這意味著惡意方可能會創建一個證明來欺騙驗證者接受一個假敘述為真,從而嚴重損害協議的完整性。
在 Veridise 的審計中,零知識技術經常被運用在關鍵的基礎架構協議中,例如 Layer 2 ZK-rollups、ZK-VMs 和 circom libraries。這些協議的安全性至關重要,因為它會影響建立在其上的所有去中心化應用程式(DApp)。
Veridise 宣稱從 2018 年以來,已有超過 100 億美元從各種區塊鏈和 DeFi 平台被駭走,對漏洞類型有更高的可見性是必要的,以幫助引導 Web3 專案關注最嚴重的漏洞,並主動預防它們。
相關文章:
《零知識證明:隱私問題的解決方案,零知識證明要怎麼解釋?》
《超越 WEB3,一文讀懂零知識證明的應用版圖及創業機會》