事件背景
Hinkal 是主打穩定幣隱私/保密交易的 DeFi 協議。核心缺陷在 證明與簽名沒有把「承諾 commitment、nullifier、交易 call data」綁定成不可拆分的整體:
- 正常隱私池要求:同一筆記(note)只能花費一次,nullifier 防雙花,且提取參數必須被證明覆蓋;
- 實現上,攻擊者可反覆構造新的 nullifier、stealth 地址、H0/H1 以及 calldataHash,使驗證器誤以為每次都是合法新花費;
- 入口還暴露了 prooflessDeposit()(無證明存款)一類路徑,降低了攻擊前置成本,使「先塞入再反覆 transact 抽出」成為可腳本化循環。
因此這不是用戶被釣魚簽名,而是 協議合約執行路徑/校驗邏輯被利用,可在不持有真實存款證明的情況下抽走池內 USDC。
事件經過
- 切入:攻擊者調用 prooflessDeposit() 在有缺陷的路徑上建立可操作狀態。
- 循環提取:多次調用 transact(),公開監測顯示單次約提取 2.5 萬美元 量級,重複直至池內可抽資金耗盡。
- 規模:合計抽走約 80 萬—82 萬美元 USDC。
- 換幣:USDC 在 Ethereum 上換成 ETH。
- 清洗分叉:
- 約 410 ETH 進入 Tornado Cash;
- 約 44.67 ETH 經 THORChain 換成 BTC,跨出 EVM 視線。
- 項目響應:受影響合約被凍結;團隊稱事件限於特定 Ethereum 池,並表態用戶補償口徑(以官方最終公告為準)。
資金流向
- 約 410 ETH 進入 Tornado Cash;
金額口徑
約80萬—82萬美元USDC
證據邊界
完整地址/Tx 不足時不猜補。
處置狀態
受影響合約被項目方凍結;大部分贓款已混幣或跨到Bitcoin。