這是讓協議團隊夜不能寐的那種漏洞。 在 ZKSwap 上發生了 500 萬美元的漏洞,這是由於一個語句放錯了地方所導致的。 這裡深入探討一下事情是如何發生的,以及鏈上監控如何能夠阻止它。 🧵
1/ 在7月9日,GMX被黑客攻擊,損失了4200萬美元。 但那天還發生了其他事情,幾乎沒有人注意到:ZKSwap的橋接被悄悄抽走了500萬美元。 有趣的是?這並沒有涉及任何花哨的漏洞。只是有一個關鍵功能什麼也沒做。
2/ ZKSwap 是一個建立在以太坊上的 zk-rollup。 像許多 rollup 一樣,它使用橋接來在 L1 和 L2 之間移動資產。 作為一種保障,該橋接包括一個“出埃及模式”,這是一種讓用戶在不需要操作員的情況下重新獲取資金的方法。 理論上,這是一個很好的主意。在實踐中…
3/ Exodus 模式允許用戶手動證明他們在最後驗證的 L2 狀態中擁有代幣。 這是一種後備機制:無信任、自我保管、非互動式。 但 ZKSwap 的實現有一個致命的缺陷:負責驗證證明的功能並沒有驗證任何東西。 字面上。
4/ 這是應該阻止攻擊的代碼 👇 乍一看,它看起來像一個真正的 zk-proof 驗證器。 但仔細看看第一行:return true; 就這樣。沒有其他代碼執行。
5/ 結果是?每一筆提款的「證明」(無論多麼虛假)都通過了驗證。 合約接受了關於代幣餘額的任意聲明……並將其記入,就好像它們是真實的一樣。 這將一個無信任的後備機制變成了一個無防備的水龍頭。
6/ 攻擊者不需要華麗的漏洞利用 - 只需重複調用 exit() 並使用虛構的數據。 他們繞過了餘額檢查,跨多個代幣提現,並利用弱的 nullifier 邏輯來避免檢測。 所有這一切都在合約上寫著: ✅
7/ 這不是什麼冷門的邊緣案例。 這是資產恢復的核心邏輯,完全開放。 而且因為 Exodus 模式很少被觸發,這條破損的路徑幾個月來都未被注意到…
8/ 這裡是應該引發警報的情況: • 在長時間不活動後觸發的 Exodus 模式 • 同時發生的數十筆提款請求 • 提款餘額突然激增 所有這些都是可見的,並且可以通過實時鏈上監控來阻止。
9/ 那麼教訓是什麼? • 緊急代碼仍然是生產代碼 • 如果備用路徑無法運作,那就沒有幫助 • 實時監控不是可選的,而是生存關鍵
查看原文
3.42萬
379
本頁面內容由第三方提供。除非另有說明,OKX 不是所引用文章的作者,也不對此類材料主張任何版權。該內容僅供參考,並不代表 OKX 觀點,不作為任何形式的認可,也不應被視為投資建議或購買或出售數字資產的招攬。在使用生成式人工智能提供摘要或其他信息的情況下,此類人工智能生成的內容可能不準確或不一致。請閱讀鏈接文章,瞭解更多詳情和信息。OKX 不對第三方網站上的內容負責。包含穩定幣、NFTs 等在內的數字資產涉及較高程度的風險,其價值可能會產生較大波動。請根據自身財務狀況,仔細考慮交易或持有數字資產是否適合您。