永續 DEX 上的 Drainer 簽名:原理與識別

2026年5月6日

Drainer 攻擊已成為 DeFi 生態中造成重大損失的攻擊類型之一。Chainalysis 的研究指出,Drainer 即服務(Drainer-as-a-Service)生態已經高度產業化,攻擊者只需訂閱現成工具包,就可以針對永續 DEX 用戶發動精密的簽名詐騙攻擊。

對於活躍使用 Hyperliquid、dYdX、GMX 等平台交易的用戶來說,了解 Drainer 簽名的運作方式,是保護自己資產的第一步。

甚麼是 Drainer 簽名攻擊

Drainer 簽名攻擊的核心,是透過社交工程或釣魚手法,誘導用戶簽署一個看似無害、實際上會授權資產轉移的簽名請求。

它不同於直接偷取私鑰。Drainer 攻擊利用的是以太坊生態中原本合法的授權機制,包括:

  • ERC-20 代幣的 Approve 功能:允許第三方地址轉移指定數量的代幣
  • EIP-2612 Permit 簽名:透過離線簽名完成授權,毋須先發出鏈上 Approve 交易
  • EIP-712 結構化資料簽名:用於授權各類結構化操作
  • EIP-4337 帳戶抽象相關的批量操作授權

這些機制在正常使用時是合理而且必要的,但 Drainer 攻擊者會利用其技術複雜性,將惡意授權包裝成普通 DApp 互動請求。

永續 DEX 場景下的特殊風險

高頻互動製造高風險窗口

永續合約交易者經常需要與 DEX 合約互動,例如開倉、加倉、調整保證金、領取資金費率等操作都可能涉及簽名。當簽名請求出現得太頻密,用戶容易形成「見到就確認」的習慣,對異常請求的警覺性亦會下降。

大額 USDC 授權是主要攻擊目標

在 Hyperliquid 等永續 DEX 上,用戶通常需要將較大額的 USDC 授權予 DEX 合約。Drainer 攻擊者會在釣魚頁面中偽造類似授權請求,並將目標地址換成由攻擊者控制的地址。

如果用戶只是習慣性確認「USDC 授權」,而沒有仔細核對目標合約地址,就有機會將大量資金授權予攻擊者。

Permit 簽名的高危性

EIP-2612 Permit 允許用戶用鏈下簽名,而非鏈上 Approve 交易,完成代幣授權。這代表:

  • 簽名過程不會產生鏈上交易,不消耗 Gas,用戶錢包活動記錄中未必會顯示相應的「授權交易」
  • 攻擊者取得簽名後,可以自行提交鏈上交易完成授權,然後直接從用戶錢包轉走代幣
  • 從用戶角度看,在資產被轉走之前,甚至未必知道自己已簽署了一個有效授權

Permit 簽名在外觀上與一般 DApp 登入簽名,例如 Sign-In With Ethereum,非常相似,因此也是普通用戶最難識別的 Drainer 手法之一。

Drainer 簽名的技術拆解

一個典型的 EIP-712 Drainer 簽名請求,可能包含以下欄位:

類型:EIP-712 結構化資料簽名

Domain:
name: [被冒充的協議名稱]
version: 1
chainId: 1(或 42161 等目標鏈)
verifyingContract: [Drainer 合約地址,偽裝成 DEX 合約]

Message:
owner: [受害者地址]
spender: [Drainer 攻擊合約地址]
value: [用戶餘額的全部或大部分]
deadline: [未來某個時間戳]
nonce: [自動取得的當前 nonce]

如果錢包能以人類可讀的方式展示這些欄位,用戶就有機會發現 verifyingContractspender 與官方協議合約地址不一致。但如果錢包只顯示原始十六進制資料,普通用戶幾乎不可能分辨當中的差異。

如何識別 Drainer 簽名:實用檢查清單

在簽署任何請求之前,應先檢查以下項目:

  • verifyingContract 地址:是否與你正在使用的 DEX 官方合約地址完全一致,包括每一個字符
  • spender 地址:如果是 Permit 類型簽名,spender 應該是你清楚知道並信任的合約
  • value 欄位:是否請求了超出本次操作所需的金額,特別是接近你全部餘額的數字
  • deadline 欄位:是否屬於合理時間範圍;正常操作通常是幾分鐘內,而不是幾年後
  • 操作來源:這個簽名是否由你主動在官方網站發起,還是突然彈出

OneKey 的 Drainer 防護機制

OneKey 錢包在對抗 Drainer 攻擊方面提供多項實用功能:

  • EIP-712 簽名內容可視化:自動解析結構化簽名資料,以較易理解的格式展示 ownerspendervalue 等關鍵欄位,而不是只顯示原始十六進制內容
  • 合約地址風險標示:對已知惡意合約地址作出提示
  • 交易模擬預覽:對於鏈上 Approve 操作,在用戶簽名前模擬執行結果,例如展示「你將授權 X 數量的 USDC 給 Y 地址」
  • 大額授權警告:當請求授權金額超過當前持倉的特定比例時,觸發額外警示
  • 開源程式碼驗證:OneKey GitHub 倉庫讓安全研究人員可以獨立驗證相關防護邏輯的實現方式

硬件錢包在 Drainer 防護中亦扮演關鍵角色。攻擊者無法在未經設備屏幕實體確認的情況下自動完成簽名,而硬件設備屏幕顯示的內容不能被電腦或瀏覽器層面的惡意程式直接篡改。

不過,硬件錢包不是「盲簽免死金牌」。如果用戶沒有理解屏幕上顯示的內容便直接確認,Drainer 攻擊仍然可能成功。

此外,定期使用 Revoke.cash 檢查你在各個 DEX 留下的歷史授權,並撤銷不再使用的授權,可以有效減少 Drainer 攻擊可利用的入口。

已知的高風險 Drainer 攻擊載體

在永續合約和加密貨幣交易場景中,以下情況特別值得留意:

  • 假冒官方 DEX 前端或空投活動頁面
  • 假冒客服、KOL、社群管理員發出的「資金遷移」或「補償申領」連結
  • 要求重新授權 USDC、WETH 或其他常用保證金資產的頁面
  • 看似只是登入或驗證身份,但實際要求簽署 Permit 或 EIP-712 授權的彈窗
  • 在市場劇烈波動時,以「快速調整倉位」或「避免爆倉」為名引導用戶簽名的釣魚網站

常見問題

Q1:Permit 簽名和普通授權(Approve)有甚麼分別?

Approve 是鏈上交易,需要 Gas,執行後可以在鏈上查到授權記錄。Permit 是鏈下簽名,不消耗 Gas,簽名後由對方提交鏈上操作;在你的錢包活動歷史中,未必會有你主動「發出」的記錄,因此更難即時發現和撤銷。兩者對資產安全都可以構成嚴重威脅。

Q2:如果我已經簽署了可疑簽名,應該怎樣做?

如果是 Approve 類型,應立即前往 Revoke.cash 撤銷授權。如果是 Permit 類型,撤銷未必有效,因為授權已在鏈下簽署完成;應立即將相關代幣轉移到新地址。處理速度非常關鍵,很多時候只有幾分鐘窗口。

Q3:使用 OneKey 硬件錢包後,Drainer 攻擊還會成功嗎?

硬件錢包可以大幅增加 Drainer 攻擊難度,因為每次簽名都需要用戶在設備屏幕上確認,而且設備屏幕顯示的內容不能被電腦端惡意軟件篡改。不過,如果用戶在未理解內容的情況下盲目確認,攻擊仍然可能成功。防護效果的上限,取決於用戶是否真正讀懂每一次簽名。

Q4:Drainer-as-a-Service 是甚麼?

這是一種將 Drainer 攻擊工具包商業化的服務模式。攻擊者毋須自行編寫程式,只需訂閱工具並按成功盜取金額分成,便可部署針對特定平台的 Drainer 攻擊。這種模式降低了攻擊者的技術門檻,亦令 Drainer 攻擊在近年更常見。可參考 Chainalysis 相關研究。

Q5:永續 DEX 平台本身會阻止 Drainer 攻擊嗎?

合法的永續 DEX 平台通常會在官方前端過濾已知惡意地址,但攻擊者往往會部署自己的釣魚頁面,繞過平台前端的防護。因此,錢包層面的防護,例如 OneKey 的簽名解析與交易模擬,是在不同訪問場景下都非常重要的一層保護。

結語:讀懂每一個簽名,才是真正的安全

Drainer 攻擊能夠成功,根本原因往往是用戶在未理解內容的情況下確認了簽名請求。技術工具可以幫你更容易讀懂簽名,但最終的保護仍然來自你對每一次簽名請求的主動檢查。

你可以下載並使用 OneKey 錢包,利用其簽名解析、交易模擬和硬件錢包確認流程,提升日常鏈上操作的安全性;如需參與去中心化永續合約交易,亦可在 OneKey Perps 中以更清晰的工作流程管理交易與風險。

**風險提示:**本文僅供教育參考,不構成投資建議、法律意見或安全保證。Drainer 攻擊手法會持續演變,文中提及的防護方法不能保證提供完整保護。鏈上資產一旦被盜,通常難以追回。請在充分了解風險後謹慎操作。加密貨幣交易具有高度市場風險,槓桿交易可能導致超過本金的損失。

使用 OneKey 保護您的加密之旅

View details for 選購 OneKey選購 OneKey

選購 OneKey

全球最先進嘅硬件錢包。

View details for 下載應用程式下載應用程式

下載應用程式

詐騙預警。支援所有幣種。

View details for OneKey SifuOneKey Sifu

OneKey Sifu

即刻諮詢,掃除疑慮。