
錢包跳出簽名畫面時,第一件事不是找「確認」按鈕,而是先判斷你要簽的是轉帳、權限授權,還是離線訊息。接著依請求類型核對網路、網站、地址與金額;授權或訊息簽名還要看誰能動用資產、額度及期限。只要畫面讀不懂、來源不對或資訊不完整,就先拒絕。
「不用 gas」不代表沒有風險;「硬體錢包」也不會替你判斷意圖。錢包可以產生有效簽章,卻不能保證被簽署的內容符合你的目的。如果批准的是惡意授權,對方就可能依權限動用資產。本文以 Ethereum 及相容網路常見的 ERC-20、ERC-721 與訊息簽名為例,先辨認動作,再逐欄位核對;其他鏈不能直接套用所有欄位。
先分三類:轉帳、授權、訊息
先備閱讀:可先熟悉MetaMask 錢包操作、Ledger 硬體錢包與智能合約基礎,再回來判讀簽名畫面。
| 畫面常見字樣 | 你可能在做什麼 | 最高風險 | 一定要核對 |
|---|---|---|---|
| Send/Transfer | 直接把資產轉到地址 | 轉錯地址通常不可逆 | 鏈、資產、數量、to、gas |
| Approve/Increase allowance | 讓 spender 在額度內動用 ERC-20 | 無限額度可能長期有效 | token、spender、value、是否 max |
| setApprovalForAll | 讓 operator 管理某 NFT 合約內所有 NFT | 整個系列資產可被轉移 | collection contract、operator、true/false |
| Sign/Typed data/Permit | 簽署可被稍後提交的訊息 | 不立即上鏈也可能授權資產 | domain、verifyingContract、spender、amount、deadline、nonce |
| Contract interaction | 呼叫智能合約函式 | 函式可能包含轉帳、授權或複合動作 | function、inputs、simulation、合約來源 |

Transfer 怎麼看?先確認五個欄位
- Network:是否在你預期的鏈;同一地址在不同鏈不代表資產可互通。
- Asset:幣種與 token contract 是否正確,不能只看名稱與圖示。
- To:從可信來源取得收款地址,核對完整地址,包含中間字元;重要金額先小額測試,正式轉帳仍要重新核對。
- Amount:小數位與顯示單位是否合理;代幣精度錯誤可能讓數量看起來不同。
- Gas/fee:費用異常可能代表網路擁塞或複雜合約互動,但低費用也不是安全證明。
直接 transfer 的核心是「現在把指定資產送到指定地址」。它與 approve 不同:approve 通常先建立別人可動用額度的權限,資產可能在下一步或稍後才被 transferFrom。
Approve 怎麼看?不要只看金額,要看 spender
ERC-20 標準定義 approve:持有人允許 spender 多次動用 token,累計不超過 value。畫面上的 spender 是獲得權限的地址,它不一定等於你眼前網站的品牌名稱,也不一定是最後收款人。
- Token contract:被授權的是哪一種 token。
- Spender:誰得到 transferFrom 權限;要用官方文件或區塊瀏覽器交叉核對。
- Amount/spending cap:看最終送出的數值,分清自訂額度、目前餘額與接近無限大的額度;不同介面的 Max 不一定代表無限。
- Duration:ERC-20 approve 本身沒有到期欄位;未用完且仍有效的額度,停止使用後可主動撤銷。
- 必要性:「領空投」或「驗證錢包」卻要求大額 approve,應直接停止。
若錢包支援,優先設定只夠本次操作的 spending cap。MetaMask 官方說明也提醒,無限 allowance 可能節省後續交易費,但會增加 dApp 漏洞或惡意網站造成資產被動用的暴露。
setApprovalForAll 為什麼要特別小心?
ERC-721 標準中的 setApprovalForAll,會啟用或停用一個 operator,使其可管理持有人在該 NFT 合約中的所有 NFT。它不是只批准你畫面上看到的單一 token ID。
核對 collection contract 與 operator 地址,並確認布林值是 true 還是 false。陌生空投、領取免費 NFT 或「驗證持有」若要求 setApprovalForAll(true),風險和一般登入簽名完全不同。不要因為交易金額顯示 0 就忽略權限。
EIP-712、Permit 與 Permit2:可讀與省 gas,不等於無害
EIP-712讓複雜訊息以 typed structured data 表示,包含 domain 與 message;它改善欄位顯示及簽名適用範圍的區分,但標準本身不包含重放保護。這裡的 domain 是協議名稱、版本、鏈或驗證合約等資料,不是瀏覽器網址,也不是網站真偽認證。安全與否仍要看具體協議如何使用 nonce、chainId、verifyingContract 與 deadline。
ERC-2612 permit允許用簽名修改 ERC-20 allowance,通常包含 owner、spender、value、nonce 與 deadline。簽名可由其他人代為提交,因此「我簽完沒看到鏈上交易」不能證明後續沒有風險。deadline 限制的是這份簽名最晚何時可被合約接受;在期限內建立的 allowance,不會因 deadline 經過就自動到期。
MetaMask 的 signature phishing 說明也提醒,攻擊者可能取得離線簽名後延後使用;Permit2 等機制提高操作效率,同樣可能成為釣魚目標。看見以下欄位時要逐一核對;不同協議可能省略或使用不同名稱,不能只因欄位齊全就視為安全:
- domain.name/version:是否符合你預期的協議,但名稱本身可被仿冒,不能單獨判斷。
- chainId:簽名應適用哪條鏈。
- verifyingContract:實際驗證簽名的合約地址。
- spender/operator:誰能使用權限。
- value/amount:可動用的資產額度。
- deadline/expiration:分清簽名提交期限與授權有效期限;兩者不一定相同,過長期限要提高警覺。
- nonce:協議用來防止相同簽名重複使用的序號之一。
Uniswap 的 Permit2 文件把權限分成兩種:SignatureTransfer 以一次性簽名授權單次轉移;AllowanceTransfer 則在 Permit2 內記錄可重複使用的額度與 expiration。使用前通常還要先在代幣合約上 approve Permit2。一次性簽名用完,不代表這層代幣授權也被撤銷;看到 Permit2 名稱時,仍要確認資產、spender、金額與簽名內容。
盲簽與 Clear Signing 差在哪?
盲簽是錢包或簽署裝置無法把原始 calldata/訊息解碼成使用者能理解的欄位,只顯示十六進位資料、雜湊或模糊的「Data present」。此時你無法從自己的可信螢幕驗證真正授權內容。
Ethereum Foundation 2026 公告把 Clear Signing 的目標描述為「所見即所簽」;Ledger 開發文件則說明 ERC-7730 metadata 如何把合約函式與訊息映射成可讀欄位。它是一層顯示與驗證輔助,不會修改交易。能否顯示,還取決於該合約或訊息是否有對應描述資料,以及錢包、裝置與連線方式是否支援;安裝硬體錢包不代表每筆交易都能 Clear Signing。
Clear Signing 降低的是「看不懂」的風險,不會替你保證網站、合約、metadata、收款人或經濟結果善意。若畫面可讀但來源網域是假的、spender 不對或額度過大,仍應拒絕。交易模擬、警示、ABI 解碼與硬體螢幕要當成多層防線,而不是任何一層單獨保證。
簽名前:停、看、查
- 停:不是你主動發起的請求、突然彈窗、倒數催促或保證免費,都先取消。
- 看來源:從官方書籤進站,核對完整網域與錢包顯示的 requesting site。
- 看類型:transfer、approve、setApprovalForAll、typed data 或未知 contract call。
- 看權限:spender/operator 是誰、能動哪些資產、多少額度、何時到期。
- 查地址:用官方文件與區塊瀏覽器核對 token、collection、verifyingContract。
- 查模擬:若錢包提供 simulation/security alert,閱讀結果,但不把「無警告」當安全保證。
- 分離錢包:日常互動錢包不要放長期大額資產;小額測試只能限制當次暴露,沒有立即損失不代表 dApp 安全。
如果已經簽錯,怎麼處理?
- 先停止互動:關閉網站,不再簽第二筆「修復」或相信私訊客服。
- 判斷類型:待處理 on-chain 交易、已確認 allowance、setApprovalForAll、離線 permit,或助記詞/私鑰外洩。
- 待處理交易:若要阻止錯誤交易,查看錢包官方的取消機制。MetaMask 的 Cancel 與 Speed up用途不同:Speed up 會加速原交易,不是撤銷。取消只可能作用於尚未確認的交易,且不保證搶先成功。
- 撤銷權限:依 ethereum.org 指南查看並撤銷 allowance;撤銷需鏈上交易與 gas。
- 尚未提交的可疑簽名:查該協議如何使 nonce 失效或取消簽名。單把現有 allowance 設為 0,不一定能阻止有效的 ERC-2612 permit 之後重新建立額度;無法確認已失效時,考慮把相關資產移到安全的新地址。
- 私鑰/助記詞外洩:不要只撤銷;建立全新助記詞的新錢包並安全遷移資產。
- 保存證據:記錄網址、時間、交易雜湊、簽名畫面與地址;若有損失,聯絡平台官方、警方與 165。
斷開網站連線不等於撤銷鏈上權限。ethereum.org 明確說明,既有 token allowance 仍可能繼續有效;要在正確鏈上送出 revoke 交易並確認完成。
四種簽名畫面,逐欄位怎麼讀?
情境一:一般轉帳
轉帳畫面最直觀,但仍要把「顯示名稱」與「實際地址」分開。先確認網路與資產合約,再核對完整收款地址與金額。MetaMask 的地址投毒說明提醒,相似地址可刻意模仿前後字元,因此中間部分也要比對,不要直接複製陌生交易紀錄中的地址。若錢包顯示的資產名稱與你熟悉的名稱相同,不能因此認定就是同一枚代幣;仿冒代幣可以使用相同名稱與符號。最後看原生幣 gas 是否合理,並確認不是被引導切到陌生網路。
硬體錢包使用者要以硬體裝置上的最終畫面為準,而不是只看電腦或手機。若裝置只顯示一串無法理解的雜湊、方法代碼或「blind signing」警示,就代表你無法從可信顯示器完整確認意圖;這時最安全的動作是取消,再尋找能解碼交易的官方介面或更新支援。
情境二:ERC-20 approve
Approve 的三個主角是錢包地址、代幣合約與 spender。畫面中的 spender 才是未來可呼叫 transferFrom 的對象,不一定等同目前瀏覽器網址。金額若顯示「Unlimited」或非常大的整數,代表要特別確認授權上限;「Max」則要看介面定義,例如 MetaMask 的部分 spending cap 介面會填入目前代幣餘額。Approve 本身建立的是權限,但惡意 spender 可能在確認後立即使用,不能把它當成還有充裕時間反悔。
較保守的做法是按本次交易所需設定上限,完成後再檢查是否仍需要保留。若 dApp 要求無限授權才能使用,先確認這是否為產品必要設計、spender 是否為官方公開地址、合約是否可升級,以及你願意暴露多少資產。可以另用小額錢包與長期持有錢包分流,減少單一授權影響全部資產。
情境三:NFT 的 setApprovalForAll
這個方法的範圍不是一枚 NFT,而是某個 ERC-721 合約下由你持有或日後取得的 NFT。應核對 collection contract、operator 與布林值。true 是開啟全部操作權限,false 是撤銷。若你只打算上架一件作品,卻被要求對陌生 operator 設為 true,就應停下來重新確認。
同名 NFT 集合可能有多個合約,釣魚網站也可能把惡意 operator 包裝成市場名稱。不要只看 Logo;從項目官方文件或已驗證頁面取得合約地址,再比對完整地址。授權後把這項權限記入定期檢查清單,尤其是已停止使用的市場或鑄造網站。
情境四:EIP-712 typed data 或 permit
Typed data 讓欄位較可讀,但可讀不等於低風險。先看 domain 中的名稱、chainId 與 verifyingContract,再看 message 的 spender、value、deadline、nonce 與被授權的資產。domain.name 可能是底層協議或代幣名稱,不必與網站品牌相同;應確認這項關係是否符合該服務官方文件。若無法核對 verifyingContract 或無法理解請求目的,就不要簽。
Permit 類簽名可能不需你支付 gas,卻能交給 relayer 日後送上鏈,因此「錢包沒有跳出 gas」不能當成安全訊號。簽名提交期限很長、金額無上限、spender 陌生,或訊息隱藏關鍵欄位,都是高風險組合。即使提交期限很短,也要另外確認成功授權後會保留多久。EIP-712 規格也明確把重放防護交給應用設計,不能只因看到標準名稱就假設簽名只能使用一次。
假設案例:只想支付 100 枚代幣,卻收到 1,000 枚授權
假設小安持有 1,000 枚教學用代幣,只打算在某服務支付 100 枚;這不是實際交易或特定平台的畫面。若跳出 ERC-20 approve,spender 已核對正確,但額度是 1,000,表示允許該對象最多動用 1,000,並不只限本次 100。小安應先取消或把額度改為本次需要的 100,再確認後續付款內容;即使額度只有 100,對象錯誤仍可能損失這 100 枚。
若收到的是 ERC-2612 permit,假設額度同樣為 1,000、deadline 為十分鐘後,對方在第五分鐘提交成功,這筆額度不會在第十分鐘自動歸零。小安要查的是鏈上的剩餘 allowance;若已不需要就撤銷,並確認交易成功及額度變更。這個案例依 ERC-20 與 ERC-2612 的規則示範,不能用來推定所有 Permit2 或其他協議都有相同期限。
把權限當成有生命週期的憑證
許多人只在簽名前看一次,之後就忘記授權仍存在。更可靠的習慣,是把授權視為一張可能長期有效的憑證:建立時限制範圍,使用中監控,停止使用時撤銷,異常時隔離資產。這能把「一次判斷全對」改成多層防線。
| 階段 | 要做的事 | 不要誤以為 |
|---|---|---|
| 建立前 | 確認來源、網路、資產合約、spender/operator、金額與期限 | 連到官方網站就代表每個彈窗都安全 |
| 使用中 | 保留交易雜湊與目的,定期盤點高額或不再需要的 allowance | 斷開網站連線會同步撤銷鏈上權限 |
| 停止使用 | 透過可信工具或合約呼叫把 allowance 設為零、把 operator 設為 false | 刪除瀏覽器紀錄或錢包 App 就能取消 |
| 發現異常 | 先停止互動、查鏈上狀態、撤銷可撤銷權限;私鑰疑似外洩則考慮移轉剩餘資產 | 撤銷一定能攔下已送出或已執行的交易 |
撤銷本身通常也是鏈上交易,需要正確網路的 gas。若惡意交易已進入區塊或攻擊者掌握助記詞,單純撤銷某一項 allowance 可能不足。不要再向陌生客服提供助記詞、私鑰或遠端控制權,也不要因對方宣稱能「追回」就再次簽署訊息。
什麼情況應直接取消?
- 你無法說出這次簽名要完成的具體動作,只知道網站要求按下確認。
- 錢包、瀏覽器與硬體裝置顯示的網路、地址、金額或方法彼此不一致。
- 畫面要求無限授權或整組 NFT 權限,但你只是要登入、領取空投或驗證身分。
- 網站用倒數、客服施壓或「錯過就失效」迫使你跳過核對。
- 硬體錢包只能盲簽,而你找不到可信來源解釋 calldata 與合約目的。
- 任何人要求你把助記詞、私鑰、QR 匯出內容或螢幕控制權交出去。
拒絕尚未簽署的請求,本身不會授權移轉資產;但先前已簽出的訊息或既有授權不會因此失效。真正可信的產品應讓使用者有時間閱讀、能重新發起交易,並提供可核對的合約與權限說明。看不懂時先停,是正常的風險管理,不是操作失敗。
常見錯誤
- 只看 dApp Logo,不核對網域與合約地址。
- 看到金額 0 就以為沒有資產風險,忽略 approve 或 setApprovalForAll。
- 看到「Sign」或不收 gas 就當成登入訊息。
- 只核對地址前後數碼,忽略中間字元,被 address poisoning 誘導。
- 在硬體錢包上開啟盲簽後,完全依賴電腦畫面。
- 簽錯後相信搜尋廣告或私訊中的「撤銷客服」。
- 助記詞已外洩卻只撤銷 allowance,沒有遷移到新金鑰。

簽名前,先確認這筆請求與原本要做的事情相同,再看誰取得權限、能動用多少資產,以及哪個期限真正會使權限失效。Clear Signing 能協助讀懂內容;是否應該批准,仍要依這些細節判斷。
FAQ
連接錢包會不會讓網站直接拿走資產?
單純連線通常是讓網站看見地址並提出請求,不等於授權轉走資產;真正風險取決於之後簽署的交易與訊息。仍要確認網站來源,避免它誘導你簽惡意內容。
approve 之後把錢包斷線,權限會消失嗎?
不會。鏈上 allowance 與網站連線狀態是兩件事。要撤銷必須在對應鏈上修改 allowance,並等待交易確認。
Clear Signing 顯示可讀內容,就一定安全嗎?
不是。可讀內容讓你比較能驗證意圖,但仍要核對網域、合約、地址、金額、權限與 metadata 來源。安全警示和模擬也可能有誤判或漏判。
離線簽名可以取消嗎?
離線簽名沒有通用的取消按鈕,要看協議是否提供使 nonce 失效或撤銷簽名的方法。尚未提交的 ERC-2612 permit 可能在有效期內重新建立 allowance,不能只因現有額度歸零就認定已解除風險;移走資產也不會刪除簽名。若無法確認失效,先停止操作,查協議官方文件,避免再把相關資產存回風險地址。
參考來源
錢包介面、警示、支援標準與撤銷工具會更新,實際操作前請回到錢包與協議官方文件。
- ERC-20 Token Standard
- ERC-721 NFT Standard
- EIP-712 Typed Data
- ERC-2612 Permit
- ethereum.org:撤銷 token access
- MetaMask:Signature phishing
- Ethereum Foundation:Clear Signing
- Ledger Developer:Clear Signing overview
本文為入門教學,非投資、法律或稅務建議,也不保證資安結果。法規與市場可能變動,請以官方最新公告為準。若疑似私鑰外洩或已發生資產損失,請立即停用可疑流程、保存證據並尋求官方與警方協助。



