錢包安全
錢包授權後,資產為什麼可能被自動轉走
分清 Wallet Connect、訊息簽名、鏈上交易、ERC-20 Allowance 和 NFT Operator 權限,逐網路檢查並撤銷不必要授權。
錢包連接 DApp 後,網站通常只能看到公開地址;真正可能讓資產之後被移動的,是你接著簽下的 Token Approval、Permit 或 NFT Operator 權限。若把連線與授權混為一談,就會在網站按下 Disconnect 後誤以為所有鏈上權限已經消失。

錢包彈窗的五種動作
Connect
讓網站讀取公開地址與網路,一般不等於轉幣權限;但網站仍可分析地址活動,不要隨意連接陌生服務。
Sign Message
可用於登入或證明地址所有權。普通訊息與 Typed Data 不同;看不懂 Domain、Nonce、Expiry 和實際目的時不要簽。
Send Transaction
會改變鏈上狀態,可能是轉幣、Swap、Mint、合約呼叫或授權。核對網路、目的合約、Value 和錢包模擬警告。
Approve/Allowance/Permit
允許 Spender 在指定額度內移動 ERC-20 代幣。額度可能是當次需要、很大的上限或近似無限。Permit 看似只是簽訊息,仍可能被用來建立 Allowance。
NFT Operator
SetApprovalForAll 可能讓 Operator 管理整個系列,而不只是單一 NFT。不能把它當作普通上架確認。
為什麼 DApp 要求無限額?
大額 Allowance 可減少重複批准和 Gas,但會放大惡意合約、前端遭入侵或未來漏洞的影響。錢包允許自訂 Spending Cap 時,只授予實際需要的數量。
限制額度也不是萬能。惡意交易可能直接轉出資產;原生幣不使用 ERC-20 Allowance;Smart Account 還可能有其他權限模型。因此每次都要先辨認動作類型。
授權前八項檢查
- 網域是否來自官方書籤或已核驗來源?
- 是否選對錢包帳戶與網路?
- Token Contract 是否真實,而非只複製名稱?
- Spender Address 能否與官方文件核對?
- 額度是否符合本次操作?
- 能否把 Unlimited 改成較小額度?
- 錢包模擬與警告顯示什麼?
- 能否改用低餘額互動錢包?
不理解任何一項就取消。已支付前一筆 Gas,不代表必須批准下一個彈窗。
如何盤點現有授權
使用錢包或可信區塊瀏覽器的 Token Approval 頁。先選正確網路;Ethereum Mainnet 不會顯示 Polygon、Arbitrum、BNB Chain 等其他網路權限。
查看 Token、Spender、Allowance 和原始交易。不要只信介面顯示的品牌名稱,應比對已驗證合約標籤與官方文件。未知 Spender、不再使用的服務、無限額與舊活動授權優先處理。
撤銷步驟
- 核對撤銷工具完整網域。
- 連接正確錢包與網路。
- 精確選擇 Token 和 Spender。
- 在錢包讀取 Revoke 或歸零交易內容。
- 核對 Gas 與目的合約後簽署。
- 等待確認,再重新整理檢查 Allowance。
- 逐一檢查其他網路與 NFT Operator。
撤銷本身需要 Gas。交易仍 Pending 時不能視為完成。正常工具不需要你輸入助記詞,只需要連接錢包並簽署鏈上撤銷交易。
Disconnect、Revoke 與 Migration
Disconnect 中斷網站連線;Revoke 修改鏈上權限;助記詞或私鑰外洩時,兩者都無法讓舊錢包重新安全,必須用全新金鑰建立錢包並遷移。
撤銷不能追回已轉走資產。發現異常時保存 TXID、Token、Spender、原授權交易和網域證據,並檢查其他網路、NFT 與匯入帳戶。
無 Gas 簽名也可能建立權限
部分 Permit 流程看似只簽訊息、沒有立即送出交易,簽名仍可能被他人提交並建立 Allowance。看不懂 Verifying Contract、Chain ID、Spender、Value、Nonce 與 Deadline 時不要簽。詐騙頁常先用普通登入簽名建立信任,再要求 Permit 或 SetApprovalForAll;每個彈窗都必須重新判斷,前一個安全不代表下一個安全。
多久檢查一次?
高價值錢包可在每次 DApp 操作後檢查;一般互動錢包每月至少一次;協議發生攻擊、可疑彈窗或前端入侵消息時立即處理。撤銷前先查官方文件,確認不會影響仍在使用的操作流程。
用錢包分層限制損失
長期保存錢包不參與陌生 Mint、空投與實驗 DApp。以低餘額錢包互動、另一個錢包保存,可以限制授權失誤的最大影響。硬體錢包可隔離私鑰,卻不會阻止使用者在裝置螢幕上親自確認惡意授權。
核心原則是:連線不等於支出權限;權限依網路分開;Disconnect 不等於 Revoke;秘密外洩則需要 Migration。
