
Nonce 是僅能使用一次的數字或計數器,目的是確保某項操作僅執行一次且順序正確。你可以將它想像成排隊號碼或一次性驗證碼,使用後或過期便會自動失效。
在區塊鏈領域,Nonce 主要有三種型態:帳戶層級的順序編號(用於控制同一地址的交易順序)、挖礦過程中不斷變化的值(用於尋找符合網路難度的區塊哈希),以及登入簽章中的挑戰碼(防止舊訊息被重播)。無論是哪種應用,Nonce 的核心功能都是確保唯一性並防止重播。
如果沒有 Nonce,歷史交易或簽章可能會被重複提交,導致重播攻擊。重播攻擊指的是攻擊者複製並重新發送曾經有效的資訊,造成系統重複執行本不應再次發生的操作。
Nonce 也用來確保同一地址的交易順序受到控制。若缺乏這項機制,後發的轉帳可能會在先前交易之前被執行,破壞智能合約邏輯,甚至導致資金鎖定或策略失效。因此,主流區塊鏈協議層皆採用 Nonce 機制,以確保一致性與安全性。至 2025 年,這一機制已成為 EVM 生態、區塊鏈登入標準以及PoW 網路的核心基礎。
在以太坊及其相容鏈上,每個地址都有一個從 0 開始的交易計數,這就是帳戶的 Nonce。你發起的下一筆交易必須使用現有的計數值;一旦交易被區塊打包,帳戶 Nonce 就會自動加 1。
若設定的 Nonce 低於當前計數,節點會回傳「Nonce 太低」錯誤,因為該編號已被使用。若設定過高,網路會等待缺漏的中間交易,導致流程停滯。錢包通常會自動管理這個計數,避免手動設定錯誤。
舉例來說:如果當前 Nonce 為 10,下一筆交易應使用 10。若第 10 筆交易卡住未被打包,可用相同 Nonce 但更高手續費重發類似交易,以取代未確認的交易,加速礦工或驗證者的處理速度。
在比特幣工作量證明機制下,礦工會不斷調整區塊頭中的 Nonce 欄位,尋找符合網路難度要求的區塊哈希。工作量證明類似於「猜密碼」,第一個找到有效解的礦工將獲得區塊提案權與獎勵。
比特幣區塊頭的 Nonce 長度為 32 位元。當所有可能值都嘗試完畢後,礦工會調整其他可變欄位(如時間戳或交易順序,進而影響 Merkle Root),以擴大哈希搜尋空間。本質上,這就是「不斷嘗試不同數字直到成功」。
在錢包登入或網頁簽章流程中,伺服器會產生一組隨機Nonce並嵌入待簽名訊息。簽章後,該 Nonce 就會被標記為已用;每次登入都必須使用新的 Nonce,即使舊訊息被複製也無法再次驗證。
例如,以太坊登入標準通常在訊息中包含「Nonce」、「網域名稱」和「過期時間」等欄位,作為一次性挑戰。許多 DeFi 授權和訂單簽章也會用 Nonce 標記單次指令或版本號,方便撤銷舊指令或防止重複執行。
一般情況下無需手動設定 Nonce,錢包會自動管理。但學會查詢方式有助於處理進階情境。
第 1 步:於區塊鏈瀏覽器輸入你的地址,查詢最新確認交易的編號,並檢視佇列中的待處理交易。大多數瀏覽器會顯示每筆交易的 Nonce,便於推算下一個可用值。
第 2 步:於錢包進階設定中查詢目前帳戶 Nonce。有些錢包支援臨時「自訂 Nonce」,使用時需格外留意,避免與待處理交易衝突。在 Gate 的 Web3 錢包或相關服務中,Nonce 由系統自動管理,可於設定或交易詳情中查詢。
第 3 步:若需手動設定 Nonce(如更換卡住的交易),務必先確認交易佇列狀態,避免跳過必要的中間交易。設定錯誤可能導致後續交易長時間受阻。
常見錯誤包括「Nonce 太低」、「Nonce 太高」及「交易卡住」。具體處理方式如下:
第 1 步:出現「Nonce 太低」時,代表該編號已用或有未確認交易使用了相同 Nonce。請檢查錢包的待處理清單與區塊瀏覽器中的卡住交易,避免用已用過的 Nonce 發送不同內容。
第 2 步:出現「Nonce 太高」時,代表中間編號缺漏。你可以等待前序交易被打包,或依序發送空交易補齊(此為進階操作,需衡量手續費與風險)。
第 3 步:若有交易卡住,可用相同 Nonce 並提高手續費重發相同功能的交易,取代原有交易並加快打包速度。確認後,帳戶 Nonce 會自動遞增。
風險提醒:Nonce 設定錯誤可能導致後續交易受阻或資產管理異常。手動操作前務必檢查交易佇列與手續費設定,避免操作失誤帶來資金風險。
同一地址的交易必須依 Nonce 順序執行,但能否優先打包則取決於你設定的手續費。手續費越高,交易被優先處理的機率越大;使用相同 Nonce 發送新交易可取代未確認的舊交易(即「加速」)。
實際操作中,帳戶內順序由 Nonce 決定,帳戶間的競爭則取決於交易手續費。若手續費設定過低,某些 Nonce 的交易可能長期待處理,進而阻塞所有後續操作。
Nonce 是交易排序、挖礦運作與簽章安全的基礎,確保唯一性與順序正確。遞增 Nonce 可防止帳戶重播與亂序執行;比特幣挖礦中的變數 Nonce 用於搜尋符合難度的哈希值;登入簽章中的隨機 Nonce 則可防止訊息重播。實務上建議由錢包自動管理 Nonce;若需手動調整,務必核查佇列與手續費,特別是在使用 Gate Web3 錢包或相容工具時,以降低交易卡住與資產風險。
重設 Nonce 會使先前發送但未確認的交易失效。建議待所有待處理交易經礦工確認或拒絕後再重設。如果有交易卡住,可提高 Gas 費並用相同 Nonce 重發,覆蓋原交易。
Nonce 不符通常是因多筆已確認交易導致本地計數未同步或發送順序錯誤。解法:於 Gate 或區塊瀏覽器查詢帳戶已確認交易數,下一筆交易的 Nonce 應與該數值一致。若錢包本地出現錯誤,可嘗試清除快取或重新匯入帳戶。
並發交易需分配連續的 Nonce。例如當前 Nonce 為 5,第一筆用 5,第二筆用 6,第三筆用 7,依序類推。即使同時發送,所有交易仍會依 Nonce 順序執行。礦工通常會根據 Nonce 排序,無需擔心亂序。
離線簽章需手動指定 Nonce,無法自動取得。操作步驟為:先在連網設備查詢當前帳戶 Nonce → 在冷錢包簽章軟體輸入該值 → 用連網設備廣播已簽章交易。Nonce 錯誤會導致網路拒絕,離線操作前請務必確認正確性。
是的,每條區塊鏈都有獨立的 Nonce 計數。在以太坊主網發送 10 筆交易(Nonce 0–9)不會影響 Polygon 上的計數,後者會從 0 開始。每條鏈獨立管理帳戶狀態。使用 Gate 進行跨鏈操作時,切換網路會重設 Nonce 計算,建議切換後即時核查,避免混淆。


