錢包簽名請求究竟批准了甚麼:核實登入、代幣權限及交易範圍

錢包簽名請求究竟批准了甚麼:核實登入、代幣權限及交易範圍

Marcus Reid
2026年9月8日· 更新於 2026年9月10日· 8 分鐘讀完

錢包簽名請求是要求錢包以某個帳戶的私鑰,為一組資料作出授權。批准之前,應自行核實網站,判斷它屬於交易、普通訊息、登入聲明還是 typed data(結構化資料),並確認動作、帳戶、鏈、對手方、資產、額度、nonce、deadline 及 verifying contract。

關鍵要點

  • 即使簽名當下毋須支付 gas,該簽名仍可授權具實際後果的動作。
  • 要細閱錢包彈出的提示,而不只是觸發它的網頁按鈕。
  • 熟悉的域名並不會令意料之外的請求變得安全。
  • 對無法解釋、被截斷、前後不符或權限無上限的請求,一律拒絕。
  • 切勿簽署可疑網站提供的第二份「取消」簽名。

錢包簽名請求可能批准甚麼?

「簽署這則訊息」這種說法過於籠統,不足以判斷提示是否安全。錢包可以簽署幾類不同的資料,每一類的效果都不一樣。

請求類型典型用途需核對的欄位主要風險
鏈上交易轉出資產或調用合約鏈、收款方、金額、合約方法、代幣變動、gas廣播後即時執行
普通訊息證明對地址的控制權或接受一段文字完整可讀文字、域名脈絡、nonce、用途不透明位元組或可重複使用的授權
登入訊息毋須密碼完成身份認證域名、URI、帳戶、鏈、nonce、簽發時間、到期時間登入仿冒服務或遭重放
Typed structured dataPermit、訂單、委託、領取、投票或其他協議動作domain separator、verifying contract、spender、資產、額度上限、nonce、deadline他人日後提交的廣泛鏈下授權

EIP-712 訂立了結構化資料的雜湊與簽名標準,包括域分隔(domain separation)及錢包可顯示的結構化欄位;該標準明確指出其本身並不提供防重放保護。[1] 應用程式仍須正確實作 nonce、deadline、鏈、合約及驗證邏輯。

不要把判斷簡化成「交易就危險、訊息就無害」。一筆交易可能正是你打算進行的小額轉帳,而一個毋須 gas 的 typed 簽名,卻可能授權第三方日後動用你的代幣。

批准錢包簽名請求前怎樣逐項檢查?

按固定次序檢查,免得在催促之下略過任何欄位。

  1. 核實來源。 經書籤、官方文件或自行輸入的地址開啟服務。核對瀏覽器外層的網址列,而不是頁面內的標誌。
  2. 確認目前的帳戶和鏈。 即使請求本身合法,帳戶或網絡不對,仍可能產生你並不想要的授權。
  3. 判斷提示類型。 確定它是交易、普通訊息、登入聲明還是 typed data。
  4. 用一句話說出動作。 例如:「這容許合約 X 在時間 T 之前最多動用 Y 個代幣 Z。」說不出來,就拒絕。
  5. 核查對手方。 經可信來源核對 recipient、spender、operator、delegate 或 verifying contract。
  6. 界定範圍。 檢查資產、金額、授權上限、訂單條款、NFT 系列範圍,以及權限是否無上限。
  7. 檢查時效。 查看 nonce、簽發時間、deadline、到期時間及鏈識別碼。
  8. 比較意圖與效果。 「驗證錢包」按鈕不應產生轉帳、無限授權、賣單或委託動作。
  9. 不肯定便拒絕,並自行重新開始。 關閉提示遠比「先簽了看看會怎樣」安全。

MetaMask 把簽名釣魚形容為:誘使用戶簽署攻擊者可利用的資料,而網站往往說的是另一套故事。[2] 錢包顯示的欄位可以當作證據,但要記住:顯示不完整時,真正的含意可能被隱藏。

Typed data 中哪些欄位最重要?

Typed data 的設計原意是比一串原始位元組更易理解,但單憑欄位名稱並不保證安全。domain 和 message 兩部分都要看。

Domain 欄位

  • name 及 version: 標示應用程式聲稱的簽名域;
  • chainId: 在正確實作時把請求綁定至某個網絡;
  • verifyingContract: 標示預期負責驗證該簽名的合約;
  • salt 或其他 domain 資料: 可能用來進一步區分不同環境或部署。

Message 欄位

  • owner 或 signer: 應與你打算使用的帳戶相符;
  • spender、operator、delegate、recipient 或 taker: 標示誰取得權限;
  • token、collection、order 或 asset: 界定受影響的對象;
  • value、amount、cap、price 或 quantity: 限定經濟範圍;
  • nonce: 在驗證系統正確消耗它時,用來防止重複使用;
  • deadline 或 expiry: 限制授權可被提交的時間;
  • 與動作相關的欄位: 可能編碼訂單、投票、領取、提款、跨鏈操作或委託。

請經官方協議文件或自行開啟的可信區塊瀏覽器核對合約地址。提示中出現的熟悉代幣符號或域名,可以由不可信的程式碼提供,不能當作身份證明。

為甚麼 gasless 不等於無害?

簽名本身可在鏈下完成,因此錢包毋須廣播交易,也不收取 gas。但簽名依然有價值:他人日後可以把它提交予合約,用來完成身份認證、成交訂單、行使 permit 或證明你已同意。

以太坊基金會的 clear signing(清晰簽名)工作,着重令用戶更易明白交易與授權的含意,而非只顯示不透明的雜湊值。[3] 顯示得更清楚可以減少歧義,卻無法代你決定是否信任該網站、對手方、合約、資產範圍或業務目的。

遇到「沒有 gas 就沒有風險」、「這只是驗證」、「先簽,稍後再取消」一類說法,應予拒絕。要問清楚:到底是哪個驗證方會接受這個簽名,它可以引致甚麼狀態變化。

哪些不一致表示應該拒絕?

以下任何一項比對不符,便應停下:

  • 瀏覽器域名與你打算使用的服務不同;
  • 錢包帳戶或網絡並非你所選的那一個;
  • 頁面承諾的是登入,提示卻授予代幣、NFT、訂單或委託權限;
  • spender 或 verifying contract 陌生,或與官方文件不一致;
  • 金額沒有上限,或明顯高於任務所需;
  • deadline 缺失、長得異常、已經過期或無法讀取;
  • 提示包含原始位元組、被截斷的欄位,或你無法釐清的錢包警告;
  • 有「支援人員」、私訊或來電一步步指導你簽名;
  • 假空投頁面索取助記詞、私鑰、復原檔案或遙距控制權。

不要因為交易模擬顯示「結餘沒有變化」便批准。模擬未必涵蓋 permit 日後的使用、將來存入的資產、外部狀態變化、每一個內部調用,或他人憑這份簽名另行提交的交易。

如果頁面來自電郵或訊息,請對照防釣魚清單。如果是軟件意外彈出提示,請先確認它並非仿冒應用程式。這些都是日常錢包簽名安全的基本檢查。

錢包無法清楚解釋請求時怎麼辦?

拒絕它,並透過獨立途徑弄清應用程式本應發出甚麼請求。可查閱官方文件、從真實網站進入的支援團隊、合約紀錄,有需要時亦可參考另一個信譽良好的錢包對該請求的解讀。切勿把私鑰、助記詞或敏感已簽載荷貼到公開解碼器。

部分進階操作確實包含複雜資料。複雜只會改變審查方法,不能降低安全門檻。請應用程式說明請求類型、合約、方法、spender、受影響資產、額度及到期時間。若這些事實無法與提示對應,就不要簽。

硬件錢包可以令私鑰不暴露於所連接的電腦,卻無法令不透明的授權變得可以理解。若裝置只顯示一個未知雜湊值或 blind signing(盲簽)警告,你便欠缺作出知情批准所需的資料。

拒絕可疑簽名提示後還要做甚麼?

關閉網站和錢包提示。移除該網站的連線以減少後續請求,然後核實先前的交易、授權或簽名是否已經成功。中斷連線只屬清理,並不等於撤銷授權。

在不暴露復原資料的前提下,保留網址、提示類型、可見欄位、帳戶、鏈、時間,以及任何交易或簽名識別碼。經相關的錢包、瀏覽器、平台及濫用舉報途徑舉報該域名或帳戶。

如果你已經簽了,先弄清授予了甚麼權限。代幣授權可能需要安全地在鏈上撤銷;permit 可能設有 nonce 或 deadline;助記詞外洩須改用新錢包;裝置遭入侵則須隔離裝置。錢包盜幣器說明把這些機制分別對應至不同的處理路徑。

怎樣長期提高錢包簽名安全?

把長期持有的資產與用來連接新應用程式的錢包分開。在協議支援時,採用設有上限的授權、較短的 deadline 及專用於某項任務的帳戶。定期檢查 allowance,移除不再需要的權限。

把常用服務加入書籤,保持錢包軟件及擴充功能為最新版本,移除重複或閒置的錢包擴充功能。在低風險操作中練習閱讀提示;凡是說不清用途的請求,一律取消。

團隊應記錄經批准的合約及預期的簽名類型,而不是互相傳閱「正常提示」的截圖。合約升級、在新鏈上部署及新的 permit 格式,都可能令舊截圖產生誤導。

範圍更廣的加密貨幣保安事故指南,有助你把簽名風險與私鑰被盜、交易所被入侵、協議漏洞及社交工程攻擊放在一起理解。

總結

  • 先判斷錢包提示屬於哪一類,再決定是否批准。
  • 核對來源、帳戶、鏈、動作、對手方、資產、額度、nonce、deadline 及合約。
  • 把毋須 gas 的簽名視為可能可執行的權限。
  • 拒絕前後不符、資料不透明、附有盲簽警告及有人在旁指導的批准。
  • 遇到可疑簽名提示後,確認先前授予的權限是否仍然有效。
  • 透過分開錢包、界定範圍、自行核對域名及清晰簽名,養成更安全的習慣。

常見問題

每個錢包簽名都是交易嗎?

不是。錢包可以簽署交易、普通訊息、登入聲明及 typed data。部分鏈下簽名其後可以授權鏈上動作。

簽署訊息會移動代幣嗎?

會,前提是所簽的訊息屬於合約或服務會接受的 permit、訂單、委託或其他授權。要細閱確切的類型和欄位,而不是因為它叫「訊息」便放心。

簽名需要 gas 嗎?

建立鏈下簽名通常不需要。其後把它提交上鏈的一方或須支付 gas,而這份授權仍可能影響你的資產。

甚麼是 verifying contract?

它是預期負責解讀或驗證 typed data 的合約。應經獨立的官方來源確認其地址,並核對它是否對應你打算使用的網絡。

很短的 deadline 能令請求變安全嗎?

不能。到期時間只縮短了時間窗,無法修正惡意的 spender、過高的金額、錯誤的合約或非預期的動作。

為了繼續操作可以開啟 blind signing 嗎?

只有在你已自行弄清這項請求的確切內容,並信任整個流程時才可考慮。網站施壓要你略過無法讀取的細節,本身就是停止的理由。

可以再簽一個訊息來取消原簽名嗎?

不要相信可疑網站提供的「取消」簽名。部分協議支援 nonce 作廢或撤銷,但正確方法視乎原本的授權而定。

已簽名但鏈上沒有交易代表安全嗎?

不代表。這份簽名可能尚未被使用、只存在於鏈下、已經過期或正等待提交。請保留其欄位,並尋求針對該協議的指引;看不見交易並不能證明沒有任何授權存在。

免責聲明:本文只提供一般保安資訊,不構成金融、投資、交易、稅務、法律或專業事故應對建議。簽名格式、錢包顯示、合約行為和補救方式因協議及司法管轄區而異。

來源:

  1. EIP-712 — Typed structured data hashing and signing — https://eips.ethereum.org/EIPS/eip-712
  2. MetaMask — Signature phishing — https://support.metamask.io/stay-safe/protect-yourself/wallet-and-hardware/signature-phishing/
  3. Ethereum Foundation — Clear Signing — https://blog.ethereum.org/2026/05/12/clear-signing-announcement

Sources checked 2026 年 9 月 8 日。


延伸閱讀:

開啟 3 天免費試用

註冊即可免費體驗全部高級功能。

*只限新用戶;每位用戶只可獲得一次試用。

錢包簽名請求究竟批准了甚麼:核實登入、代幣權限及交易範圍 | AethoVPN