你以為你在「登入」,其實你在「授權」
你在網頁上登入一個帳號,和你在 Web3 裡連接錢包,這兩件事看起來幾乎一樣。你點擊一個按鈕,彈出一個視窗,確認一下,完成。介面設計讓這兩個動作感覺是同一種事,其實它們性質完全不同。
傳統的登入是身份確認。你告訴系統「我是誰」,系統讓你進來。這個過程不涉及你的資產,不涉及任何人可以代表你採取行動的權限。你的密碼驗證了你的身份,僅此而已。
在 Web3 裡,當你點擊「Connect Wallet」,你做的不是告訴對方你是誰。你是在建立一個連接,讓這個網站或協議可以看到你的錢包地址、你的資產餘額,以及在某些情況下,向你提出交易請求。這個連接本身還不是授權,但它是授權的入口。
真正的授權發生在你簽署交易的那一刻。當你在一個 DeFi 協議裡第一次操作某個代幣,系統會要求你批准一個智能合約,允許它代表你移動那個代幣。這個批准不是一次性的確認,它是一個持續有效的權限。你不是在說「這次可以」,你是在說「以後都可以」。
因為這些交易或授權的介面非常相近,普通用戶若不仔細察看,從視覺直觀上難以分辨這是兩件性質完全不同的操作,但它們帶來的後果可能天差地別。
2025 年 8 月 2 日,一個鏈上記錄可查的案例在加密貨幣社群裡引發廣泛討論:一個用戶在毫無預警的情況下,損失了超過 90 萬美元的 USDC。那筆錢不是在那天被騙走的。那個惡意授權早在 458 天前,也就是 2024 年 4 月 30 日,就已經被簽署了。攻擊者在那之後沒有立刻行動,他們耐心等待,持續監視著那個錢包。直到裡面累積了足夠多的資金,才發動攻擊。那個用戶在那 458 天裡做了什麼都沒有意義,因為那個授權在一年多前就已經存在了。
這不是說每一個授權都會帶來風險。大多數用戶與合法協議互動,不會遇到這種情況。問題在於,你在給出授權的那一刻,無法確定那個協議未來是否會一直安全。時間越長,那個不確定性就越大。
你把 100 USDC 換成 ETH,那筆交易完成後就結束了。但一個授權完成之後,其授權是永久有效的,直到你手動把它撤銷。你離開那個網站,授權還在。你幾個月沒有使用那個協議,授權還在。如果有一天那個協議不幸的被攻擊了,攻擊者就可以使用當初你給出的那個授權。
Web3 介面設計的問題在於,它沒有足夠清楚地區分這幾件事:連接錢包、簽署交易、給予授權。這三件事在視覺上都長得很像,但性質完全不同。連接錢包是讓對方看到你,簽署交易是完成一件具體的事,給予授權是把一把持續有效的鑰匙交出去。
理解這個區別,是在 Web3 裡保護自己的起點。你每次點擊確認之前,值得停下來想一下你實際上在同意什麼。
你的錢包授權是可以被看見的。ZenRealm 的錢包授權檢查工具可以把你目前所有有效的授權攤開來,你輸入錢包地址,主流 EVM 網路上的授權清單就會顯示出來。你曾經點擊過多少個確認授權的按鈕,值得親自再看清楚。
延伸閱讀: