錢包授權自查與撤銷指南:怎麼查、怎麼 revoke,把舊授權清乾淨
很多人錢被轉走那一刻才發現,問題不是助記詞外洩,而是很久以前某次「連錢包、按確認」留下的一筆授權。這篇把授權是什麼、為什麼危險、怎麼查、怎麼撤銷,一次講透——不寫死介面選單,只講你該盯哪裡。
授權到底是什麼:approve 與 allowance
先把名詞講清楚,後面才不會亂。你在以太坊、BNB Chain 這類鏈上用的代幣(USDT、USDC 等等),大多遵循同一套標準,標準裡有一個動作叫 approve,中文常翻成「授權」或「批准」。它的意思是:你允許某個智能合約,在你不必每次親自簽名的前提下,動用你錢包裡某種代幣、最高到某個額度。
這個被允許動用的額度,就叫 allowance(授權額度)。舉個生活化的比方:你去某家店辦了一張記名儲值,store 端從此能在「你設定的上限」內扣你的款,不必你每次刷卡輸密碼。allowance 就是那個上限,approve 就是你當初辦卡簽名的那一刻。
為什麼要有這套設計?因為去中心化交易、借貸、質押這些操作,合約得「代你動用」你的代幣才能完成。如果每一筆兌換都要你重新簽一次授權,體驗會很糟。所以協議的做法是:你先 approve 一次,之後合約就在額度內反覆動用。這在功能上沒問題——問題出在,這筆授權給了「誰」、給了「多少」、以及你「忘了它還在」。
授權這個概念屬於協議層的事實,不是某個 App 的設計選擇。想看更底層、中性的說明,可參考 ethereum.org 對代幣標準的解釋,以及它的 安全頁。
授權不等於轉帳
這是最多人卡住、也最容易被詐騙利用的一個誤解,所以單獨拉出來講。很多人以為「我沒按過轉帳、餘額也沒少,那就沒事」,但 approve 跟轉帳根本是兩種不同的鏈上動作,搞混它們,就會在最該警覺的那一刻放鬆。
轉帳(transfer)是你把某種代幣從自己地址送到另一個地址。它會立刻動到餘額——你錢包裡那種代幣的數字當場變少,交易紀錄上也清清楚楚記著「轉出多少、去哪」。這是大家直覺理解的「花錢」。
授權(approve)完全不是這回事。它不移動任何代幣,餘額一毛都不會少,它只是在鏈上記下一條規則:某個合約地址,從現在起可以在某個額度內動用你這種代幣。簽完授權的當下,你的資產原封不動,所以你會看到「沒扣款」「餘額沒變」——而這正是它危險的地方。動用的權力已經發出去了,只是還沒被用而已。
把兩者放在一起就很清楚:轉帳是「我現在付你一筆」,付完就結束;授權是「我授權你之後隨時來扣」,這條規則會一直掛著,直到被用掉或被撤銷。所以一筆授權帶來的風險,跟你「當下有沒有扣款」毫無關係——你看不到任何扣款,卻可能在某個你早忘了的時點,被一次把額度內的餘額搬空。詐騙頁面最愛利用的就是這個認知差:讓你簽一個授權,畫面顯示「領取成功、無費用」,你以為什麼都沒發生,其實鑰匙已經交出去了。
所以判斷一個操作安不安全,重點從來不是「這次扣了我多少」,而是「我這一簽,到底簽出去了什麼權力」。看到彈窗顯示的是 approve/授權類動作、又對著一個你不認得的合約、額度還是無限,就算它一毛錢都沒扣,也該停手。
為什麼一筆舊授權能把你的錢搬走
關鍵在於授權是「持續有效」的。你 approve 之後,那份授權不會自己過期,除非你主動把它撤銷(額度設回零),或者合約本身被設計成用完即歸零(多數一般授權並非如此)。也就是說,半年前你為了領一個空投、玩一個小遊戲、用一個沒聽過的 DApp 而簽下的授權,今天很可能還躺在鏈上,安安靜靜地等著被動用。
真正危險的場景是這樣:你連上一個看起來像「領空投」「驗證資格」「解鎖獎勵」的頁面,它彈出一個授權視窗,你沒細看就按了確認。當下什麼都沒發生——沒扣錢、沒提示、頁面甚至顯示「領取成功」。但你其實把某個代幣的動用權交給了對方控制的合約。對方不急著馬上下手,等你錢包裡那種代幣累積到一定數量,或等你忘得差不多了,再一次把額度內的餘額轉走。
這就是為什麼很多受害者堅稱「我助記詞沒給過任何人」卻還是被搬空——因為這條路根本用不到助記詞。它走的是你「親手簽下」的授權,技術上完全合法、鏈上完全有效。這也是假空投與惡意授權那一類詐騙最陰險的地方。
無限授權的問題在哪
很多 DApp 在請求授權時,預設給的不是「剛好夠這次用」的額度,而是一個天文數字——大到實際上等於「無限」。為什麼這麼做?因為對 DApp 來說方便:授權一次,之後你怎麼用都不必再簽,使用者體驗順。聽起來是替你著想,但代價全在你身上。
無限授權的問題很直接:它把上限拿掉了。如果這個合約是正派專案、沒有漏洞、沒被駭,那它頂多就是「能動用你很多錢但它不會」。可是只要其中任何一個前提崩了——合約有後門、私鑰被偷、專案方跑路、或者你一開始授權的根本就是釣魚合約——那麼你錢包裡那種代幣的全部餘額,都在它隨時可動用的範圍內。額度設成無限,等於把「最壞情況的損失」從「這次該用的數目」放大到「你全部的家當」。
有些錢包與 DApp 現在會讓你在簽名時改授權額度,把無限改成剛好夠用的數字。能改就盡量改——這不會讓你少賺,只會在最壞情況下少賠。改不了、又非用不可時,記得用完就回來把它撤掉。
怎麼查自己錢包有哪些授權
授權都記在鏈上,是公開可查的,你不需要任何人允許就能看自己的。查的方法主要兩條路,搭配著用最穩。
路徑一:區塊瀏覽器
每條鏈都有對應的區塊瀏覽器:以太坊是 Etherscan,BNB Chain 是 BscScan,其他鏈也都有各自的。把你的錢包地址貼進去,這些瀏覽器通常有一個專門看「代幣授權」的功能(常見的名稱是 Token Approvals 或類似入口)。打開後你會看到一張清單:你授權過哪些代幣、授權給了哪個合約地址、目前的額度是多少。
看的時候盯三件事:一是「合約地址」你認不認得——不認得的、或對應到你早忘了的網站的,最可疑;二是「額度」是不是無限(會顯示成一個極大的數,或直接標示為 Unlimited);三是這個授權對應的代幣,是不是你錢包裡真的有餘額的——有餘額、又是無限授權、又給了陌生合約,這三條湊齊就是該優先處理的。
路徑二:授權檢查/撤銷工具
純看區塊瀏覽器,介面偏工程、不一定好讀。市面上有一些第三方工具把「查授權」做得更直覺:連上錢包後,把你所有授權列成卡片,標清楚合約、額度、風險,並提供直接撤銷的按鈕。最為人知的一個是 revoke.cash。要強調:這類工具不是官方的、也不是本站背書的,它能省事,但你得自行評估是否信任它。下面那一節專門講該怎麼看待這種工具。
怎麼撤銷:步驟概念
這節先講 EVM 系的鏈(以太坊、BNB Chain,以及多數和它們相容的鏈),它們共用同一套授權模型,操作邏輯一致;不在這套體系裡的 TRON、Solana 等,授權概念有差,放到下一節單獨講。
EVM 上撤銷授權的本質,就是發一筆新交易,把某個合約對某個代幣的 allowance 設回零。介面五花八門、各家按鈕名稱不同,但底層做的事都一樣。下面把整段流程拆開講,只講概念,不寫死哪個選單第幾個按鈕——因為那些隨時會變,記路徑沒用,記原理才不會被介面唬住。
- 連上錢包,先確認是對的錢包、對的地址。不管你用區塊瀏覽器配合錢包、還是用第三方撤銷工具,第一步都是把錢包連上。連上之後別急著動手,先核對當前連接的地址,是不是你要清理的那一個——撤銷只能撤「這個地址自己發出過」的授權,連錯帳戶你會找不到要撤的那筆。同時看清楚當前是哪條鏈:同一個地址在以太坊和 BNB Chain 上的授權是各算各的,要撤哪條鏈的,就把錢包切到那條鏈。
- 找到「該代幣對該合約」的那筆 allowance。授權不是籠統一筆,而是「某種代幣 × 某個合約」一組一組記的。從前面查到的清單裡,定位你要處理的那一組:哪種代幣、被授權給了哪個合約地址、目前額度多少。優先鎖定「陌生合約 + 無限額度 + 該代幣有餘額」那幾筆。認得、信任、還在用的(例如你天天用的 DEX)可以留著,不必全清。
- 送出一筆把額度設為零的交易。觸發撤銷時,不管按鈕叫 Revoke、Remove 還是別的,它要做的就是對那個代幣合約再呼叫一次 approve,把給那個合約的額度從原本的數字改成 0。換句話說,撤銷本身也是一筆 approve,只是把額度設成零——這是它和「新授權」唯一的差別,也是你等下要核對的重點。
- 在錢包彈窗裡核對再簽名。這一步最關鍵:點下撤銷後,你自己的錢包會彈出一個交易確認窗,這個窗才是最後關卡,不是工具網頁上寫什麼算什麼。核對三件事——這筆交易送到的是不是「你要撤的那個代幣」的合約、它要被授權的對象是不是你要撤掉的那個合約、設定的額度是不是 0(或顯示成撤銷/取消授權)。確認它確實是「把額度設為零」,而不是又一個給出新權力的授權、更不是一筆轉帳,再按確認。看不懂、或顯示的合約跟你要撤的對不上,就停手。
- 付 gas、等上鏈、刷新確認。撤銷是一筆寫進鏈上的交易,要付該鏈的手續費(gas),這筆 gas 用的是該鏈的原生幣(以太坊上是 ETH、BNB Chain 上是 BNB),所以動手前確認那個地址裡有一點原生幣可付手續費,否則交易送不出去。送出後等它被打包確認——以太坊一個區塊約十幾秒、BNB Chain 更快幾秒,網路忙時會久一點。確認後回到清單刷新,那筆額度應該歸零或從列表上消失了。沒消失就是還沒上鏈或交易失敗,重看一次交易狀態。
幾個提醒:撤銷要花 gas,所以沒必要把每一筆都撤光,把真正可疑、用不到的清掉就好。多筆要撤時,記得每一筆都是獨立一筆交易、各付一次 gas,也各要在彈窗裡核對一次,別因為連著撤好幾筆就麻木亂簽。還有,撤銷只是把「未來能不能再動用」關掉——如果額度內的錢在你撤銷之前已經被轉走了,撤銷救不回那部分,它防的是「之後」。所以查與撤要趁早、趁定期,別等出事才做。
我們用一個測試錢包,把同一份授權分別從區塊瀏覽器和第三方撤銷工具各看了一次——讀到的內容是一致的,因為兩邊資料都來自鏈上同一份公開紀錄,工具只是換個版面呈現。實際撤一筆的體感是:它就是一筆要付 gas 的鏈上交易,簽名前彈窗顯示的應該是「設定額度」類的操作,而不是把幣轉出去;看到彈窗寫的是轉帳,就該起疑。
把它當成簽名前的三道把關。第一,查授權只是讀資料、不必簽名——任何「查一下也要你簽名解鎖」的頁面都不對勁,這一欄最該警惕。第二,撤銷彈窗裡顯示的目標合約,要跟你打算撤的那一筆對得上,對不上就停手。第三,若某頁面在你按下撤銷後反手又彈一個「請再授權以完成」的視窗,立刻離開——撤銷從不需要你再給出新授權。各工具與錢包的按鈕名稱、頁面位置都可能調整,本文不寫死選單,以你當下看到的介面為準。
非 EVM 鏈的情況(TRON、Solana 等)
前面講的都是 EVM 系的鏈。但你的資產不見得全在以太坊或 BNB Chain 上——很多人放 USDT 的 TRON、生態活躍的 Solana,都不在 EVM 那套體系裡。這些鏈一樣有「授權」的概念,但模型不完全一樣,撤銷的入口和工具也不同。原則一致,做法要換。
TRON:TRON 上的代幣(最常見的就是 TRC-20 的 USDT)也有 approve 這個動作,邏輯跟 EVM 接近——你授權某個合約在額度內動用你的代幣,同樣可能被設成無限、同樣會一直掛著。差別在於它是 TRON 自己的鏈,要查、要撤得用支援 TRON 的區塊瀏覽器和工具,並用支援 TRON 的錢包來簽。不能拿你查以太坊授權的那個入口直接套上去,地址格式、瀏覽器、簽名的錢包都不是同一套。
Solana:Solana 的模型差更多。它常見的是 token 的 delegate(委託)/approve 概念——你把某個代幣帳戶的部分動用權委託給另一個地址。表現形式和 EVM 的 allowance 不一樣,查詢和撤銷(取消委託)的入口也不同,得用 Solana 生態自己的工具和錢包。EVM 上那一套「找 allowance、把額度設零」的具體操作,照搬到 Solana 上是對不上的。
不同鏈差在哪、入口在哪、用什麼工具,這些會隨生態變,本文不寫死。你要記住的就一條原則:不管在哪條鏈,都該定期把自己的授權/委託查一遍,撤掉不認得、用不到的;但別把某條鏈的操作步驟直接搬到另一條鏈。先搞清楚你的資產在哪條鏈、那條鏈的授權怎麼查怎麼撤,再動手。跨鏈時尤其別想當然。
第三方撤銷工具怎麼看待
像 revoke.cash 這類工具確實方便:把零散的授權整理成一目了然的清單,省去你在區塊瀏覽器裡翻找。但用之前,幾件事要心裡有數。
- 它不是官方、也不是本站背書。它是第三方服務,要不要信任、信任到什麼程度,是你自己的判斷,不是別人替你打包票。
- 查授權的部分風險低,因為是唯讀。連上錢包讓它讀你的授權清單,這一步不需要你簽署會動到資產的交易,相對安全。
- 真正需要簽名的是撤銷那一筆,看清楚再簽。不管透過哪個工具撤銷,最後送出的交易都會在你自己的錢包彈窗裡出現。那個彈窗才是你的最後一道關卡——它顯示什麼、送到哪個合約,以你的錢包為準,別只看工具網頁上寫的。
- 網址要自己確認。知名工具常有人做釣魚仿冒站。要用就從可靠來源確認過的網址進,別點來路不明的連結,比對網址的方法可參考書籤登入安全金律,也可以把可疑連結丟進假域名比對器逐字看。
說到底,工具只是把鏈上資料換個好讀的樣子,決定權與最後簽名都還在你手上。把它當成放大鏡,不是當成保險箱。
撤銷之後還要做的帳戶安全檢查
撤掉可疑授權,只關掉了「這個地址未來會不會再被那些合約動用」這一個洞。它沒回答一個更要命的問題:對方當初是怎麼讓你簽下那筆授權的?如果只是你一時不察點了釣魚連結、簽了個壞授權,撤掉就差不多了。但如果你懷疑問題更深——比如曾經在某個可疑頁面輸入過助記詞或私鑰、把它截圖存在雲端、或裝過來路不明的錢包 App——那光撤授權遠遠不夠。
判斷的分水嶺是這句話:撤銷只能防「透過授權」這條路;它擋不住「對方手上有你的助記詞/私鑰」這條路。只要私鑰或助記詞有外洩之虞,對方根本不必透過授權,可以直接以你的身分把任何東西轉走,這時候你撤再多授權都沒用。所以撤銷之後,按下面這個順序再過一遍:
- 判斷私鑰/助記詞有沒有外洩風險。回想這個錢包的助記詞、私鑰,有沒有輸進過任何網頁、傳過給任何人、存在過手機相簿或雲端筆記、或者你裝的錢包 App 本身就來路不明。只要有一條中了,就要當成可能外洩來處理,別抱僥倖。怎麼識別假錢包,看假錢包與助記詞陷阱。
- 一旦懷疑外洩,把資產轉到全新錢包。這種情況下舊錢包視同報廢,不是撤幾筆授權能救的。用一個乾淨環境,產生一個助記詞從沒外洩過的全新錢包,把舊錢包裡還能搶救的資產轉過去。新助記詞只離線抄寫保存,別截圖、別上雲、別傳給任何人。怎麼從零把一個錢包設定安全,照新手錢包安全設定走。
- 順手把相關的交易所帳號也補強。同一批詐騙常常不只盯你的鏈上錢包。趁這次,把交易所帳號的 2FA 重設或換成更強的方式(用驗證器 App,別只靠簡訊),檢查有沒有不認得的登入裝置和提幣白名單,登入習慣改成從書籤進、不點搜索廣告。入口怎麼守,看書籤登入安全金律。
- 已經發生損失就先止血、留證。如果不是預防、而是錢已經被動了,先別急著到處操作,按被騙了先做的 4 件事的順序處理:保住還沒被搬走的、留好交易雜湊與時間等紀錄,再決定下一步。
一句話收尾:撤銷是把門鎖回去,安全檢查是確認小偷手上還有沒有別的鑰匙。只做前者、不做後者,等於鎖了前門卻不知道後門的鑰匙早被複製走了。
授權洩漏 vs 助記詞洩漏
這兩件事常被混為一談,但嚴重程度差很多,處理方式也不同。分清楚,你才知道出事時該做什麼。
- 授權洩漏:你簽過的某筆授權落到壞人手裡,他能動用的,只限「你授權過的那種代幣、在那個額度內」。換句話說,損失有邊界。處理方式也明確——把那筆授權撤掉,洞就補上了,這個錢包還能繼續用。
- 助記詞洩漏:助記詞(或私鑰)是錢包的最高權限,等於整把鑰匙。一旦外洩,對方能動的不是某一種代幣,而是這個錢包裡的一切,撤銷授權完全擋不住,因為他根本不需要透過授權——他可以直接以你的身分轉走任何東西。這種情況下,撤授權沒用,唯一的辦法是馬上把還能搶救的資產轉到一個全新的、助記詞從沒外洩過的錢包,舊錢包視同報廢。
所以兩條防線的層級完全不同:授權是「某扇門的鑰匙」,撤掉就好;助記詞是「整棟房子的總鑰匙」,外洩就只能搬家。也正因如此,任何要你輸入助記詞的頁面,不管它包裝成「檢查授權」「同步」還是「驗證安全」,都是直接要命的詐騙,跟撤銷授權這種正常操作是兩回事。關於助記詞陷阱,看假錢包詞條。萬一已經出事,先做哪幾件事看被騙了先做的 4 件事。
常見錯誤與風險提醒
撤銷授權本身是個正常、安全的操作,但「去撤授權」這件事,反而被詐騙拿來設了不少局。下面這幾個坑很常見,看過一遍,動手時就能繞開。
- 把假的「撤銷」頁面當真,反手簽了釣魚授權。這是最諷刺的一種:你正擔心授權安全,搜了個「撤銷授權」就點進去,結果那是個仿冒的釣魚站。它不幫你撤,反而彈一個授權窗、甚至要你輸助記詞,你帶著「我在做安全操作」的心情就簽了。記住:撤銷工具的網址要從可靠來源確認過再進,可疑連結先丟假域名比對器逐字比對;而且真正的撤銷只會請你簽「把額度設為零」,絕不會要你輸助記詞。
- 用了來路不明的「自動批量清理」工具。有些工具標榜替你把所有授權整批掃掉、按一下全部搞定,聽起來省事。但你最後簽的每一筆交易,都還是經你錢包送出的真實交易——工具若是惡意的,它送進你彈窗的可能根本不是撤銷,而是把權力交給它。別被「批量、自動」的方便沖昏頭,每一筆送出前都要在自己錢包的彈窗裡核對,看不懂就不簽。
- 撤銷時 gas 沒準備夠,交易卡住或失敗。撤銷要付該鏈的原生幣當手續費。常見的狀況是:地址裡有一堆某種代幣、卻沒留半點原生幣,結果撤銷交易根本送不出去,或網路忙時 gas 不足而失敗。動手前確認那條鏈的原生幣(以太坊上的 ETH、BNB Chain 上的 BNB)有一點餘額可付。交易顯示 pending 很久,多半是 gas 給太低,別重複猛點,先看交易狀態。
- 誤撤了天天在用的授權。把清單一口氣全清,連你常用的那個 DEX、那個借貸協議的授權也撤了,下次用它時又得重新授權一次、再付一次 gas。撤之前先分清楚:陌生的、無限的、用不到的優先撤;認得、信任、還在用的可以留著。撤銷不是清得越乾淨越好,是把該關的洞關掉。
- 撤了一條鏈就以為全部安全了。同一個地址在不同鏈上的授權各算各的,你清了以太坊,BNB Chain、TRON、Solana 上的授權還原封不動。資產分散在多條鏈的人,要一條一條過,別撤完一條就收工。
- 只撤授權、不查私鑰是否外洩。前面那節講過:如果助記詞或私鑰有外洩之虞,撤授權擋不住,要走轉新錢包那條路。把「撤銷」誤當成萬靈藥,是最危險的鬆懈。
養成定期檢查的習慣
授權這東西,不查它就一直在。與其等出事,不如把檢查變成固定動作。幾個務實的做法:
- 固定週期回頭看一次。不必天天查,但隔一段時間(例如你自己定一個月或一季)把錢包的授權清單拉出來掃一遍,陌生的、無限的、用不到的,撤掉。
- 用完就撤的習慣。為了某個一次性操作(領東西、試一個新 DApp)而給的授權,事情辦完當下就順手撤掉,別讓它留到你忘記。
- 能限額就不要無限。簽授權時若能改額度,改成夠用就好;省下的是最壞情況的損失。
- 大額資產跟日常操作錢包分開。長期持有的放一個幾乎不連任何 DApp 的「冷」地址,日常玩 DApp、領空投用另一個只放小額的「熱」地址。就算熱錢包的授權出事,傷不到本錢。
- 來路不明的一律不連、不簽。最省事的防線,是根本不去簽那些可疑授權。可疑空投連結不連錢包,是成本最低的自保。
把這幾條變成習慣,比學會多少撤銷技巧都管用——因為大部分風險,在你「沒去亂連、沒去亂簽」的那一刻就已經擋掉了。
常見問題
撤銷授權會不會把我的錢轉走或扣掉?
不會。撤銷做的事是把某個合約的動用額度設回零,它不轉移你的任何代幣。唯一的花費是這筆交易的 gas(鏈上手續費)。如果某個自稱「撤銷」的頁面在過程中要你授權新東西或轉帳,那不是撤銷,停手。
我撤了授權,之前被授權拿走的錢能追回嗎?
不能。撤銷只關掉「未來」的動用權;額度內的資產若在撤銷前已被轉走,撤銷救不回那部分。這也是為什麼要定期查、趁早撤,而不是等出事才動手。
查授權需要連錢包,會有風險嗎?
單純讀取授權清單是唯讀操作,不需要你簽署會動到資產的交易,風險低。要警惕的是「查一下也要你簽名解鎖」的頁面——查授權不需要這種簽名。會花 gas、要簽名的只有撤銷那一步。
我的助記詞從沒給過人,為什麼錢還是不見了?
很可能就是某筆舊授權被動用了。這條路不經過助記詞,走的是你過去親手簽下、技術上完全有效的授權。把錢包授權清單查一遍,多半能找到那筆陌生的無限授權。