
錢包跳出簽名畫面時,第一件事不是找「確認」按鈕,而是先判斷你要簽的是轉帳、權限授權,還是離線訊息。接著核對鏈、來源網域、收款或合約地址、函式名稱、資產、數量、spender/operator、期限與 nonce。只要畫面讀不懂、來源不對或資訊不完整,就先拒絕。
「不用 gas」不代表沒有風險;「硬體錢包」也不會替你判斷意圖。私鑰只是在正確簽署你批准的內容。如果批准的是惡意授權,簽章仍會忠實生效。
先分三類:轉帳、授權、訊息
先備閱讀:可先熟悉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:精確額度、錢包餘額上限,或接近無限大的數值。
- Duration:一般 allowance 可能沒有自動到期;使用後需主動撤銷。
- 必要性:「領空投」或「驗證錢包」卻要求大額 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;它改善可讀性和網域分離,但標準本身不包含重放保護。安全與否仍要看具體協議如何使用 nonce、chainId、verifyingContract 與 deadline。
ERC-2612 permit允許用簽名修改 ERC-20 allowance,通常包含 owner、spender、value、nonce 與 deadline。簽名可由 relayer 稍後提交,因此「我簽完沒看到鏈上交易」不能證明請求沒有效果。
MetaMask 的 signature phishing 說明也提醒,攻擊者可能取得離線簽名後延後使用;Permit2 等機制提高操作效率,同樣可能成為釣魚目標。看見以下欄位時要逐一核對:
- domain.name/version:是否符合你預期的協議,但名稱本身可被仿冒,不能單獨判斷。
- chainId:簽名應適用哪條鏈。
- verifyingContract:實際驗證簽名的合約地址。
- spender/operator:誰能使用權限。
- value/amount:可動用的資產額度。
- deadline/expiration:到期時間;過長或無限期要提高警覺。
- nonce:協議用來防止相同簽名重複使用的序號之一。
盲簽與 Clear Signing 差在哪?
盲簽是錢包或簽署裝置無法把原始 calldata/訊息解碼成使用者能理解的欄位,只顯示十六進位資料、雜湊或模糊的「Data present」。此時你無法從自己的可信螢幕驗證真正授權內容。
Ethereum Foundation 2026 公告把 Clear Signing 的目標描述為「所見即所簽」;Ledger 開發文件則說明 ERC-7730 metadata 如何把合約函式與訊息映射成可讀欄位。它是一層顯示與驗證輔助,不會修改交易。
Clear Signing 降低的是「看不懂」的風險,不會替你保證網站、合約、metadata、收款人或經濟結果善意。若畫面可讀但來源網域是假的、spender 不對或額度過大,仍應拒絕。交易模擬、警示、ABI 解碼與硬體螢幕要當成多層防線,而不是任何一層單獨保證。
簽名前 10 秒:停、看、查
- 停:不是你主動發起的請求、突然彈窗、倒數催促或保證免費,都先取消。
- 看來源:從官方書籤進站,核對完整網域與錢包顯示的 requesting site。
- 看類型:transfer、approve、setApprovalForAll、typed data 或未知 contract call。
- 看權限:spender/operator 是誰、能動哪些資產、多少額度、何時到期。
- 查地址:用官方文件與區塊瀏覽器核對 token、collection、verifyingContract。
- 查模擬:若錢包提供 simulation/security alert,閱讀結果,但不把「無警告」當安全保證。
- 分離錢包:日常互動錢包不要放長期大額資產;陌生 dApp 先用低價值地址測試。

如果已經簽錯,怎麼處理?
- 先停止互動:關閉網站,不再簽第二筆「修復」或相信私訊客服。
- 判斷類型:待處理 on-chain 交易、已確認 allowance、setApprovalForAll、離線 permit,或助記詞/私鑰外洩。
- 待處理交易:使用同錢包官方的 cancel/speed up 機制;能否成功取決於鏈與交易狀態。
- 撤銷權限:依 ethereum.org 指南查看並撤銷 allowance;撤銷需鏈上交易與 gas。
- 高度風險簽名:若可能在有效期內被利用,考慮把相關資產移到新地址,並保留足夠 gas。
- 私鑰/助記詞外洩:不要只撤銷;建立全新助記詞的新錢包並安全遷移資產。
- 保存證據:記錄網址、時間、交易雜湊、簽名畫面與地址;若有損失,聯絡平台官方、警方與 165。
斷開網站連線不等於撤銷鏈上權限。ethereum.org 明確說明,既有 token allowance 仍可能繼續有效;要在正確鏈上送出 revoke 交易並確認完成。
四種簽名畫面,逐欄位怎麼讀?
情境一:一般轉帳
轉帳畫面最直觀,但仍要把「顯示名稱」與「實際地址」分開。先確認網路與資產合約,再核對收款地址前後數碼與完整金額。若錢包顯示的資產名稱與你熟悉的名稱相同,不能因此認定就是同一枚代幣;仿冒代幣可以使用相同名稱與符號。最後看原生幣 gas 是否合理,並確認不是被引導切到陌生網路。
硬體錢包使用者要以硬體裝置上的最終畫面為準,而不是只看電腦或手機。若裝置只顯示一串無法理解的雜湊、方法代碼或「blind signing」警示,就代表你無法從可信顯示器完整確認意圖;這時最安全的動作是取消,再尋找能解碼交易的官方介面或更新支援。
情境二:ERC-20 approve
Approve 的三個主角是錢包地址、代幣合約與 spender。畫面中的 spender 才是未來可呼叫 transferFrom 的對象,不一定等同目前瀏覽器網址。金額若顯示「Unlimited」「Max」或非常大的整數,通常表示授權上限很高;它不會立刻把錢轉走,但會在授權仍有效且 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 與你正在使用的網站不一致,或 verifyingContract 無法從官方來源核對,就不要簽。
Permit 類簽名可能不需你支付 gas,卻能交給 relayer 日後送上鏈,因此「錢包沒有跳出 gas」不能當成安全訊號。Deadline 很長、金額無上限、spender 陌生,或訊息刻意隱藏關鍵欄位,都是高風險組合。EIP-712 規格也明確把重放防護交給應用設計,不能只因看到標準名稱就假設簽名只能使用一次。
把權限當成有生命週期的憑證
許多人只在簽名前看一次,之後就忘記授權仍存在。更可靠的習慣,是把授權視為一張可能長期有效的憑證:建立時限制範圍,使用中監控,停止使用時撤銷,異常時隔離資產。這能把「一次判斷全對」改成多層防線。
| 階段 | 要做的事 | 不要誤以為 |
|---|---|---|
| 建立前 | 確認來源、網路、資產合約、spender/operator、金額與期限 | 連到官方網站就代表每個彈窗都安全 |
| 使用中 | 保留交易雜湊與目的,定期盤點高額或不再需要的 allowance | 斷開網站連線會同步撤銷鏈上權限 |
| 停止使用 | 透過可信工具或合約呼叫把 allowance 設為零、把 operator 設為 false | 刪除瀏覽器紀錄或錢包 App 就能取消 |
| 發現異常 | 先停止互動、查鏈上狀態、撤銷可撤銷權限;私鑰疑似外洩則考慮移轉剩餘資產 | 撤銷一定能攔下已送出或已執行的交易 |
撤銷本身通常也是鏈上交易,需要正確網路的 gas。若惡意交易已進入區塊或攻擊者掌握助記詞,單純撤銷某一項 allowance 可能不足。不要再向陌生客服提供助記詞、私鑰或遠端控制權,也不要因對方宣稱能「追回」就再次簽署訊息。
什麼情況應直接取消?
- 你無法說出這次簽名要完成的具體動作,只知道網站要求按下確認。
- 錢包、瀏覽器與硬體裝置顯示的網路、地址、金額或方法彼此不一致。
- 畫面要求無限授權或整組 NFT 權限,但你只是要登入、領取空投或驗證身分。
- 網站用倒數、客服施壓或「錯過就失效」迫使你跳過核對。
- 硬體錢包只能盲簽,而你找不到可信來源解釋 calldata 與合約目的。
- 任何人要求你把助記詞、私鑰、QR 匯出內容或螢幕控制權交出去。
取消簽名不會讓你失去已在錢包中的資產,也不代表你永遠不能使用該服務。真正可信的產品應讓使用者有時間閱讀、能重新發起交易,並提供可核對的合約與權限說明。看不懂時先停,是正常的風險管理,不是操作失敗。
常見錯誤
- 只看 dApp Logo,不核對網域與合約地址。
- 看到金額 0 就以為沒有資產風險,忽略 approve 或 setApprovalForAll。
- 看到「Sign」或不收 gas 就當成登入訊息。
- 只核對前四碼地址,被 address poisoning 誘導。
- 在硬體錢包上開啟盲簽後,完全依賴電腦畫面。
- 簽錯後相信搜尋廣告或私訊中的「撤銷客服」。
- 助記詞已外洩卻只撤銷 allowance,沒有遷移到新金鑰。

FAQ
連接錢包會不會讓網站直接拿走資產?
單純連線通常是讓網站看見地址並提出請求,不等於授權轉走資產;真正風險取決於之後簽署的交易與訊息。仍要確認網站來源,避免它誘導你簽惡意內容。
approve 之後把錢包斷線,權限會消失嗎?
不會。鏈上 allowance 與網站連線狀態是兩件事。要撤銷必須在對應鏈上修改 allowance,並等待交易確認。
Clear Signing 顯示可讀內容,就一定安全嗎?
不是。可讀內容讓你比較能驗證意圖,但仍要核對網域、合約、地址、金額、權限與 metadata 來源。安全警示和模擬也可能有誤判或漏判。
離線簽名可以取消嗎?
取決於協議。部分簽名有 deadline、nonce 或鏈上撤銷機制;有些只能等到期或移走相關資產。若不確定,先停止操作並查協議官方文件。
來源與研究截止日
發布前複查(2026-08-04):MetaMask 簽名釣魚與 Ledger Clear Signing 官方文件均可開啟;介面與支援範圍可能更新。
研究截止日:2026-08-01。錢包介面、警示、支援標準與撤銷工具會更新,實際操作前請回到錢包與協議官方文件。
- 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
本文為待人工審稿的教育初稿,不是可直接發布版本,不構成投資或資安結果保證。若疑似私鑰外洩或已發生資產損失,請立即停用可疑流程、保存證據並尋求官方與警方協助。



