You need to enable JavaScript to run this app.
Bankless Academy

管理代幣授權

保護你的錢包,避免不必要的智能合約互動。
開始課程

要點總結

  • 代幣授權指的是授予智能合約的許可權,讓它無需再次批准就能從錢包中花費代幣。

  • 如果使用者沒有意識到這些許可權還在,它們可能被惡意方利用。

  • Revoke.cash 這類工具讓使用者可以輕鬆檢視和撤銷代幣授權。

引言

DeFi 讓使用者掌控自己的資產,包括自己的私鑰,帶來前所未有的主權和支配力。不過,能力越大責任越大,使用者必須全權負責資產的安全和管理。

DeFi 使用者需要留意四類常見的騙局:

  • 助記詞洩露:攻擊者試圖誘騙使用者交出助記詞,從而未經授權地拿到資金。有了你的助記詞,攻擊者可以掏空你所有的資金,而且你之後往這個錢包再存錢,他們還會繼續拿走。遺憾的是,這種情況無法挽回,唯一的辦法是用新的助記詞建立一個全新的錢包。

  • 直接轉出 ETH:騙子會把 ETH 轉帳偽裝成「安全更新」之類的函式呼叫來掩人耳目。老版本騙局背後的原始簽名方式已經從 MetaMask 中移除;現代的釣魚工具改為濫用看起來很普通的簽名請求,指望你不看錢包上顯示的內容就簽名。中招意味著你無法找回這筆資金,但這個錢包仍然可以安全地用於其他交易。

  • NFT 市場掛單:要警惕假掛單和惡意合約,它們會利用你授予 OpenSea 等市場的授權。騙子可能誘騙你簽署一條鏈下訊息,把你已授權的 NFT 掛出售賣,而整個過程沒有發生任何代幣交易。

  • 代幣授權:攻擊者可能操縱許可權,拿到比最初批准的更多的資金。「Approval(批准)」是授予他人使用你代幣或 NFT 許可權的鏈上交易。「Permit(許可)」提供同樣的許可權,但只需要一個不花 Gas 的鏈下簽名。Uniswap 和大多數現代交易應用都使用這套系統(叫做 Permit2)。Permit 簽名在被使用之前不會顯示為鏈上批准,而且可以帶有過期時間;Revoke.cash 的「Signatures」檢視讓你可以檢視並取消它們。

    隨著智能合約越來越普及,代幣授權成為必需品,它讓受信任的合約不必接觸私鑰就能執行交易。代幣授權允許 dApp 自動代你轉移錢包中的代幣。這份便利提升了效率,同時也讓使用者暴露在騙局和越權存取這類攻擊面前。

在這篇文章裡,我們會討論「代幣授權」,並介紹一個社群打造的許可權管理工具。

代幣授權:理解、管理與安全

代幣授權是預先授予智能合約的許可權,讓它可以從錢包中花費代幣。它們的關鍵作用,是讓交易不必每次都為直接從錢包轉出資產而單獨授權。但一旦被濫用,代幣授權也會成為攻擊毫無防備的使用者的入口。為了應對這種風險,DeFi 使用者必須保持謹慎,瞭解安全形勢,並弄清楚代幣授權究竟是怎麼運作的。

向第三方合約授予許可權包含兩個步驟:

  1. 連線錢包:把錢包連線到 dApp 時,你只是把錢包地址分享給它的前端,讓它顯示你的餘額和活動。僅僅連線本身不會授予任何鏈上許可權。

  2. 代幣批准:要與 dApp 交易,你還需要批准它的智能合約代你轉移特定的代幣。這一步才真正授予了花費權。

透過主動管理代幣授權,使用者可以確保沒有任何合約能從錢包中提取超過最初指定的數額。幸運的是,社群打造了一些工具,能給 DeFi 使用者帶來信心和安心。

教程:使用 Revoke.cash

Revoke.cash 透過一個簡單的網站,讓使用者輕鬆管理自己的代幣授權,幫助檢視和監控授予各個 dApp 的授權。我們來看看怎麼用這個強大的社群工具保護資產,把錢包的控制權拿回來。

1. 連線你的錢包

要開始撤銷代幣授權,請前往 Revoke.cash,點選右上角的「Connect Wallet」(連線錢包)。你也可以在搜尋框裡手動輸入自己的錢包公開地址。載入完成後,你會看到該網路上所有代幣批准的列表。

2. 檢查你的授權

連線錢包後,你就可以檢查現有的批准。你可以按被授權的花費方地址排序、篩選或搜尋特定的批准。如果你懷疑最近出現了惡意批准,按「從新到舊」排序特別有用。用頁面提供的排序和篩選功能,縱覽你已經授予的代幣授權。授權是按鏈分別授予的,所以請用網路選擇器,在你使用的每條網路上重複檢查一遍。

3. 撤銷不需要的授權

找到想撤銷的批准後,只要點選它旁邊的「Revoke」(撤銷)按鈕即可。如果你以後還需要這項批准但想降低風險,也可以點選批准額度旁邊的鉛筆圖示,把額度改成別的數值。

在以下情況下,撤銷或調整代幣授權可能對你最有利:

  1. 一份新部署的智能合約被利用,在你常用的去中心化交易所上造成漏洞。

    2023 年 4 月,知名 DEX SushiSwap 就遭遇了類似的攻擊,約 350 萬美元被從使用者處盜走。沒有撤銷代幣授權的受影響使用者仍然處在風險中。

  2. 一項惡意的治理提案更新了多份合約,意圖掏空使用者資金。

    BNB 鏈上的 DeFi 協議 Atlantis Loans 執行了一項針對多份合約的治理提案,超過 250 萬美元的資產因此受損。管理過批准額度的使用者,減輕了錢包被這項惡意提案徹底掏空的風險。

別忘了委託

自以太坊 Pectra 升級(2025 年 5 月)以來,需要複查的許可權不只有授權。一項較新的錢包功能(EIP-7702)讓你的錢包可以委託給額外的程式碼,從而支援交易打包之類的便利,但也帶來了一種新的盜幣手法:一個惡意簽名就能裝上「清掃」程式碼,把你存入的任何資產立刻轉給攻擊者,而你的助記詞從未洩露。2025 年,Wintermute 的研究人員發現,早期的錢包委託中有超過 97% 指向同一份清掃程式碼。

Revoke.cash 會在「Delegations」(委託)標籤下顯示你當前的委託,但由於委託由你的錢包而不是 dApp 控制,你需要在錢包內部撤銷不想要的委託。在 MetaMask 中,開啟帳戶詳情,把帳戶切換回標準帳戶。如果你從未主動升級為智能帳戶,那麼發現的任何委託都應當視為惡意的。


是時候加固我們的錢包防線了!希望你喜歡《探索者手冊》的這一篇:「管理代幣授權」。

如果你想擁有一份副本,方便旅途中隨時查閱,或者想支援 Bankless Academy 未來的內容,別忘了收藏這一篇。祝旅途平安,探索者!


常見問題

我該什麼時候使用 Revoke.cash?

定期使用 Revoke.cash,尤其是在你一段時間不使用某個 dApp 的時候,NFT 市場更要留意。限制批准能降低因駭客攻擊、漏洞利用或釣魚騙局造成的資金損失風險。把批准按最近時間排序,你就能發現可疑的批准並及時撤銷,防止損失擴大。

斷開錢包連線能保護我免受批准類攻擊嗎?

斷開錢包與 dApp 的連線,並不能保護你免受任何攻擊,無論是不是批准相關的。你此前授予的代幣批准在斷開連線後依然有效,因為它們儲存在鏈上。

我要怎樣避免代幣授權被利用之類的風險?

主動管理代幣授權包括:

  • 只向可信的 dApp 授予授權。

  • 定期複查代幣授權。

  • 移除不必要或可疑的授權。

  • 檢查有沒有你不認識的錢包委託。

  • 關注 dApp 的安全更新。

可以考慮使用 Revoke.cash 瀏覽器擴充套件這類第三方工具,它是一道主動防線。當你即將簽署可能有害的內容時,擴充套件會發出警告,幫你擋住釣魚騙局和其他惡意行為。

我能用 Revoke.cash 找回資金嗎?

很遺憾,Revoke.cash 無法找回被盜資金。它是一個預防工具,用來降低你成為批准類攻擊受害者的機率。不過,撤銷那些用來盜取資金的批准,可以阻止後續的盜竊。

為什麼我每次給錢包充值,錢都會被轉走?

你的錢包裡可能有「清掃機器人」,也就是一段指令碼,它盯著被入侵的錢包,在你反應過來之前迅速把新存入的資產轉走。原因之一是助記詞洩露。這種情況下撤銷批准沒有用,應該放棄這個錢包,新建一個。但同樣常見的原因是惡意的錢包委託:清掃程式碼是透過一個你被騙簽下的簽名裝上的,助記詞並沒有洩露。請檢視 Revoke.cash 的「Delegations」(委託)標籤。如果你發現了不認識的委託,請在錢包內部撤銷它(例如透過 MetaMask 的帳戶詳情)。如果沒有委託而錢還在被轉走,就應當認為助記詞已經洩露,換用一個全新的錢包。


作者

Marcus 負責出版 ENS DAO 通訊。他研究協議費用產生的盈餘收入如何補貼應用層開發和其他開源基礎設施。

編輯

Tetranome 是 Bankless Academy 的專案負責人,專注於使用者體驗、介面、設計和內容。

Trewkat 是 BanklessDAO 的作者和編輯。她熱衷於瞭解加密貨幣和 NFT,尤其關注如何把這些知識更好地傳達給他人。

贊助方

本文沒有贊助商,是你免費 Bankless Academy 教育的一部分。收藏這篇文章,支援未來的內容創作!