買幣
行情
現貨
合約BTC
理財
活動中心
福利中心
更多
0 費狂歡節
Durable Nonce(持久 Nonce): 什麼是 Durable Nonce?Durable Nonce 是儲存在 Solana 特殊帳戶中的持久值,能讓交易在一般近期區塊雜湊的有效期限過後仍可使用。標準 Solana 交易會包含近期區塊雜湊,其有效期只有 150 個 slot。若交易未能在近期區塊雜湊過期前處理完成,通常就無法以相同的已簽署訊息成功提交。Durable Nonce 會以儲存的值取代短效區塊雜湊;只要 Nonce 帳戶未推Durable Nonce(持久 Nonce): 什麼是 Durable Nonce?Durable Nonce 是儲存在 Solana 特殊帳戶中的持久值,能讓交易在一般近期區塊雜湊的有效期限過後仍可使用。標準 Solana 交易會包含近期區塊雜湊,其有效期只有 150 個 slot。若交易未能在近期區塊雜湊過期前處理完成,通常就無法以相同的已簽署訊息成功提交。Durable Nonce 會以儲存的值取代短效區塊雜湊;只要 Nonce 帳戶未推

Durable Nonce(持久 Nonce)

2026/10/13 15:29
#Advanced
Humanity
H$0.05621-4.01%
SynFutures
F$0.003131-1.66%
PX
PX$0.0128-3.03%
Core DAO
CORE$0.01893-3.07%
Solana
SOL$107.84+0.34%

什麼是 Durable Nonce?

Durable Nonce 是儲存在 Solana 特殊帳戶中的持久值,能讓交易在一般近期區塊雜湊的有效期限過後仍可使用。

標準 Solana 交易會包含近期區塊雜湊,其有效期只有 150 個 slot。

若交易未能在近期區塊雜湊過期前處理完成,通常就無法以相同的已簽署訊息成功提交。

Durable Nonce 會以儲存的值取代短效區塊雜湊;只要 Nonce 帳戶未推進或以其他方式變更,該值就能持續使用。

因此,Durable Nonce 適用於離線簽署、延後提交交易、多方核准、冷儲存操作、排程工作流程,以及簽署者無法在短時間內核准交易的組織。

Solana 官方Durable Nonce 文件說明,此機制使用儲存在鏈上帳戶中的 Nonce 值,取消標準的 150 個 slot 有效期限。

Durable Nonce 並不會在所有情況下讓交易永久有效。

如果儲存的 Nonce 改變、Nonce 帳戶遭關閉、必要的權限變更,或另一筆交易成功消耗相同的 Nonce 值,該交易就會失效。

Solana 交易通常為什麼會過期

標準 Solana 交易包含名為

recent_blockhash
的欄位。

區塊雜湊是有時效限制的參照值,可證明交易是在近期建立。

這也有助於防止已處理的交易遭到重複提交。

驗證者會將交易中的區塊雜湊與網路近期區塊雜湊佇列比對。

目前的Solana 交易處理流程只會在一般區塊雜湊的年齡未超過 150 個 slot 的最大處理年限時接受該雜湊。

區塊雜湊過舊後,驗證者會在執行其中指令前拒絕交易。

這種過期機制可防止無限期重放,並限制驗證者必須將一般已簽署交易視為可能可執行的時間。

若簽署所需時間超過區塊雜湊的有效期,這項限制就會造成問題。

為什麼需要 Durable Nonce

有些加密貨幣交易無法在短暫的線上工作階段中完成建立、核准和提交。

公司可能需要位於多個國家的員工共同簽署。

金庫可能會將簽署金鑰存放在完全不連接網際網路的隔離電腦中。

高安全性作業可能要求交易在廣播前先完成技術、財務和合規審查。

多重簽章工作流程可能要求多台硬體裝置在不同時間簽署同一筆交易。

付款應用程式可能在某個營運時段先準備交易,之後再提交。

使用一般近期區塊雜湊時,每次區塊雜湊過期,都必須重建並重新簽署完整訊息。

Durable Nonce 讓相關各方可以簽署同一個穩定的交易訊息,並在一般區塊雜湊有效期限過後提交。

什麼是 Nonce 帳戶?

Nonce 帳戶是由 System Program 擁有的 Solana 特殊帳戶。

該帳戶會儲存支援 Durable Nonce 交易所需的狀態。

已初始化的 Nonce 帳戶包含權限公鑰、Durable Nonce 值,以及上次推進 Nonce 時記錄的每筆簽章 lamports 手續費率。

權限會指定獲准推進、重新授權或從 Nonce 帳戶提領資金的帳戶。

Durable Nonce 值是由近期區塊雜湊衍生而來的雜湊值,並儲存以供日後使用。

與手續費相關的值會保存交易手續費處理所需的資訊。

Nonce 帳戶啟用期間,必須持有足夠 SOL,以符合適用的免租金最低餘額要求。

應用程式應向網路查詢目前的最低餘額,而不是永久寫入估算金額。

Durable Nonce 與近期區塊雜湊的差異

近期區塊雜湊是在標準交易簽署前不久從網路取得。

其有效期限會在網路有限的處理視窗後結束。

Durable Nonce 則寫入鏈上帳戶,即使其衍生來源區塊雜湊已不再屬於近期雜湊,仍可繼續使用。

一般交易不需要建立或修改 Nonce 帳戶。

Durable Nonce 交易必須參照 Nonce 帳戶,並包含特定的推進指令。

若使用者能及時簽署並提交,一般而言應使用較簡單的標準交易。

Durable Nonce 會增加帳戶管理、簽署、交易大小、手續費和營運方面的要求。

Durable Nonce 與帳戶序號的差異

Nonce 一詞在不同加密貨幣系統中的用法各不相同。

部分帳戶型區塊鏈會使用遞增的帳戶交易編號,為交易排序並防止重放。

Solana Durable Nonce 並不是附加在每個錢包上的持續遞增交易計數器。

它是儲存在專用 System Program 帳戶中的雜湊值。

此值會放入交易的

recent_blockhash
欄位,並在 Nonce 推進時替換。

開發者不應將其他區塊鏈的交易計數器假設套用到 Solana Nonce 帳戶。

Durable Nonce 交易如何運作

流程從建立並初始化 Nonce 帳戶開始。

建立者會指定一個權限,負責控制之後的 Nonce 操作。

應用程式會讀取帳戶中儲存的 Durable Nonce 值。

接著,應用程式使用該值建立交易,並將其放入交易訊息的

recent_blockhash
欄位。

交易會將

AdvanceNonceAccount
指令放在指令清單的第一位。

必要帳戶會簽署完整序列化交易訊息。

由於儲存的 Nonce 不會在 150 個 slot 後過期,簽章可離線產生。

已簽署的交易會傳送至線上系統,並在組織準備好時提交。

驗證者會檢查 Nonce 帳戶是否有效、儲存值是否與交易相符,以及 Nonce 權限是否已簽署。

其餘交易指令執行前,Nonce 會先被推進。

AdvanceNonceAccount 指令

AdvanceNonceAccount
指令會要求 System Program 將儲存的 Nonce 替換為新值。

這項指令是 Durable Nonce 重放防護的重要環節。

只有在

AdvanceNonceAccount
是第一個指令時,交易執行環境才會將其辨識為 Durable Nonce 交易。

Nonce 帳戶必須放在必要的帳戶位置,且必須可寫入。

Nonce 權限必須簽署交易。

如果該指令排在交易後段,執行環境可能會將交易視為已過期的標準交易,而不是有效的 Durable Nonce 交易。

官方Nonce 辨識規則說明了必須將該指令放在第一個位置的要求。

Nonce 為什麼必須推進

Durable Nonce 值必須只能使用一次。

若不推進 Nonce,攻擊者或意外發生的程序可能會反覆提交同一筆已簽署交易。

推進帳戶會以目前網路狀態衍生的新值取代舊 Nonce。

任何使用先前值的其他待處理交易都會失效。

因此,如果預期多筆已簽署交易都能執行,通常不應讓它們共用同一個 Nonce 值。

第一筆被接受的交易會推進帳戶,使其他使用舊值建立的交易失效。

平行進行的延遲工作流程一般應使用不同的 Nonce 帳戶。

Nonce 權限

Nonce 權限是獲准控制 Nonce 帳戶重要操作的公鑰。

推進 Nonce 的交易必須由此權限簽署。

變更 Nonce 權限時,也必須由此權限授權。

從 Nonce 帳戶提領資金時,同樣需要此權限。

目前的System Program Nonce 帳戶介面說明了這些權限要求。

Nonce 權限帳戶不必與交易手續費支付者相同。

分開這些職責有助於支援組織的安全政策。

應妥善保護 Nonce 權限,因為未經授權的推進可能讓已離線簽署的交易失效。

手續費支付者與 Nonce 權限

手續費支付者是支付交易基本手續費和任何優先處理手續費的帳戶。

Nonce 權限則負責授權使用儲存的 Durable Nonce。

同一帳戶可以同時擔任這兩種角色,但兩者在邏輯上彼此獨立。

交易也可能需要資產持有人、代幣權限、程式管理員或其他帳戶簽署。

所有必要簽署者都會簽署相同的交易訊息。

變更手續費支付者通常會改變訊息,因此會使現有簽章失效,除非工作流程使用未來專為分離這些步驟而設計的格式。

離線簽署

離線簽署可讓私鑰遠離連接網際網路的裝置。

線上系統可以蒐集帳戶資訊並建立未簽署的 Durable Nonce 交易。

序列化訊息會透過受控媒體或其他經稽核流程,傳送至離線簽署裝置。

離線裝置會驗證交易並產生所需簽章。

接著,已簽署交易會傳回線上系統以供提交。

只要 Nonce 帳戶未被推進或變更,Nonce 在此流程中就會維持有效。

離線簽署可降低直接暴露於網路的風險,但無法防範惡意建立的交易。

簽署者簽署前,必須確認收款地址、金額、程式地址、代幣鑄造地址、權限、手續費和所有重要指令。

多重簽章與多方核准

當多方必須共同簽署一筆交易時,Durable Nonce 會很有用。

訊息在簽署者之間傳遞時,一般區塊雜湊可能會過期。

使用儲存的 Nonce,可讓每位簽署者有更多時間檢查並核准完全相同的訊息。

收集所有必要核准後,即可彙整最終簽章並廣播交易。

流程必須保留完全相同的序列化訊息,因為變更任何指令、地址、手續費參數或帳戶旗標都會使簽章失效。

核准流程進行期間,Nonce 帳戶也必須維持不變。

組織應監控 Nonce 帳戶,以便在提交前發現意外推進或權限變更。

延後執行

Durable Nonce 允許延後提交,但本身不會排程交易。

交易僅因使用 Durable Nonce,並不代表區塊鏈會在選定的未來日期自動執行。

仍須由使用者、伺服器、自動化系統或中繼者提交已簽署交易。

因此,提供排程付款功能的應用程式,除了 Durable Nonce 之外,還需要鏈下排程器或鏈上排程設計。

提交系統應在廣播前立即確認 Nonce 仍是最新值。

系統也應確認預定的業務條件仍然成立。

提交前交易狀態可能改變

Durable Nonce 交易保持已簽署狀態時,區塊鏈狀態仍可能發生變化。

帳戶餘額可能增加或減少。

代幣帳戶可能遭到凍結或關閉。

智能合約可能升級。

預言機價格可能改變。

治理決策可能改變程式參數。

收款帳戶可能不再符合預期狀態。

交易簽章能證明簽署者核准了序列化訊息,但無法凍結未來執行時會使用的所有外部帳戶或程式狀態。

若應用程式支援,延遲交易應加入適當限制、預期值、期限或程式層級檢查。

重放防護

重放防護可避免同一組已簽署指令遭到反覆執行。

一般 Solana 交易部分依賴近期區塊雜湊過期和網路已處理交易追蹤機制。

Durable Nonce 交易則依賴 Nonce 帳戶中只能使用一次的儲存值。

驗證者接受並推進該值後,舊的已簽署訊息就不再符合帳戶狀態。

因此,再次提交同一筆交易會在 Nonce 驗證時失敗。

這項防護仰賴正確放置推進指令,並要求適當的 Nonce 權限簽署。

Durable Nonce 交易成功時會發生什麼事?

驗證者會確認儲存的 Nonce 與交易的

recent_blockhash
相符。

驗證者會確認 Nonce 帳戶已初始化,且由 System Program 擁有。

驗證者會確認 Nonce 權限已簽署交易。

執行環境會將 Nonce 推進為新值。

其餘指令會依序執行。

若所有必要指令都成功,其狀態變更和已推進的 Nonce 會一併提交。

交易手續費會從手續費支付者的帳戶扣除。

由於舊 Nonce 已被消耗,舊的已簽署交易無法再次執行。

執行失敗時會發生什麼事?

Durable Nonce 的失敗處理方式,與「失敗交易中的所有狀態變更都會還原」這項簡化規則有重要差異。

如果交易通過 Nonce 和手續費支付者驗證,但之後的指令執行失敗,一般指令造成的變更會回復。

但 Nonce 仍會推進並提交。

交易手續費也仍會收取。

Solana 官方失敗處理文件說明,這可避免同一筆已簽署交易遭到重放,直到最終成功為止。

因此,Durable Nonce 交易失敗時,該 Nonce 仍會被消耗。

使用者必須取得新 Nonce、重建交易並重新收集簽章,才能再次嘗試。

驗證失敗時會發生什麼事?

交易可能在 Nonce 被視為有效前就失敗。

可能原因包括缺少 Nonce 帳戶、Nonce 已被消耗、儲存值與交易不符,或缺少權限簽章。

若此階段的 Nonce 驗證失敗,交易會被丟棄,且不會執行其中指令。

根據目前文件所述的行為,此類驗證失敗不會收取手續費,也不會提交任何狀態變更。

應用程式應找出確切錯誤,而不是反覆廣播同一筆無法使用的交易。

確認與重試風險

提交應用程式必須判斷 Durable Nonce 交易是已成功處理、已處理但執行出錯,還是從未被接受。

如果原始交易其實已成功,卻盲目重建並提交替代交易,可能造成非預期的重複業務操作。

Nonce 已被消耗後,盲目重送原始交易同樣無效。

應用程式應查詢交易狀態並檢查 Nonce 帳戶。

系統應區分交易最終定案與指令成功執行。

已最終確認的交易紀錄仍可能包含執行錯誤。

營運系統應核對預期的餘額和帳戶變更,而不能只依賴交易簽章是否存在。

交易手續費

每筆 Solana 交易都需要以 SOL 支付手續費。

目前的Solana 手續費文件說明,基本手續費為每個簽章 5,000 lamports,另可選擇支付優先處理手續費。

Durable Nonce 交易需要 Nonce 推進指令和相關帳戶參照,但不會免除一般簽章手續費。

簽署者增加時,基本手續費也會提高。

交易通過相關驗證階段後,即使執行失敗,仍可能消耗 Nonce 並收取手續費。

應用程式應確保手續費支付者帳戶持有足夠 SOL,Nonce 帳戶也具備足夠的免租金資金。

優先處理手續費

在網路需求高時,優先處理手續費可能提高交易進入排程的機會。

但這不保證交易一定會被納入或成功執行。

Durable Nonce 交易在包含運算預算指令時,有特殊的指令排序要求。

AdvanceNonceAccount
指令必須維持在第一個位置。

運算單位價格和上限指令不得排在它之前。

官方Solana 整合指南提醒,如果將運算預算指令放在第一位,執行環境可能無法正確辨識 Durable Nonce 交易。

Nonce 帳戶資金與免租金要求

Nonce 帳戶包含資料,在啟用期間必須維持網路要求的免租金最低餘額。

應透過適當的網路查詢,依 Nonce 帳戶資料大小取得確切最低金額。

部分提領後,不得讓 Nonce 帳戶只剩低於所需免租金最低額的正餘額。

試圖造成這種狀態的交易會失敗。

成功提領全部餘額會關閉 Nonce 帳戶。

目前的Nonce 提領介面說明了這些餘額規則。

關閉 Nonce 帳戶

可透過經授權的指令提領全部 SOL 餘額,以關閉 Nonce 帳戶。

提領必須取得 Nonce 權限核准。

關閉帳戶會使所有依賴其儲存 Nonce、但尚未提交的交易失效。

因此,組織提領全部餘額前,應先檢查是否有待處理的已簽署交易。

紀錄應註明哪些 Nonce 帳戶仍在使用、哪些交易依賴這些帳戶,以及哪些帳戶可以安全關閉。

變更 Nonce 權限

目前的 Nonce 權限可透過經授權的 System Program 指令指定新權限。

在員工離職、金鑰遷移、託管政策變更或安全事件後,輪替權限可能很有用。

變更權限後,需要舊權限的待處理交易可能會失效。

提交變更前,應仔細確認新權限。

如果指定錯誤或無法使用的公鑰,可能會影響 Nonce 帳戶之後的使用。

變更權限時,應留下紀錄並與所有待處理的離線簽署工作流程協調。

每個 Nonce 值僅能執行一筆待處理交易

技術上可以使用同一個已儲存 Nonce 值準備多筆交易。

這些互相衝突的交易中,只有一筆能成功消耗該值。

第一筆被接受的交易會推進 Nonce,使其餘交易失效。

如果工作流程預期多筆延遲交易能各自獨立執行,通常應建立多個 Nonce 帳戶。

使用同一個帳戶處理多筆待處理交易,會讓這些交易彼此競爭,而不是排成佇列。

Nonce 帳戶不會儲存未來交易清單。

Durable Nonce 與冷儲存

冷儲存會讓重要私鑰遠離一般連接網際網路的系統。

Durable Nonce 可讓冷錢包簽署者核准交易,而不必趕在標準區塊雜湊過期前完成。

線上交易建立系統應視為不受信任,因為該系統可能準備一筆會轉移資產或變更權限的交易。

冷端環境在簽署前必須解碼並顯示完整交易內容。

組織應確認程式地址、帳戶權限、手續費設定、代幣鑄造地址、收款地址和交易金額。

透過可移除媒體傳送序列化交易,也需要採取惡意軟體防護和檔案完整性檢查程序。

Durable Nonce 與金庫作業

加密貨幣金庫可使用 Durable Nonce 處理需要多層核准的提領。

交易可在收到內部申請後準備,再由不同地點的授權人員簽署。

最終操作人員可在確認所有核准完成後提交交易。

完善的金庫程序應將每個 Nonce 帳戶與一筆有紀錄的交易申請對應。

組織應防止任何部門意外推進或關閉 Nonce 帳戶。

組織也應訂定交易消耗 Nonce 後失敗時的處理方式。

Durable Nonce 與排程付款

Durable Nonce 可透過保留已簽署交易直到預定提交時間,支援排程付款。

但它本身不會在鏈上強制執行排程。

除非有其他機制阻止提早執行,否則中繼者可能會比預定時間更早提交交易。

若執行時間很重要,簽署者不應將已完全授權的 Durable Nonce 交易交給不受信任的對象。

如果程式在釋放資金前檢查網路時鐘或其他核准條件,鏈上程式可以提供更強的時間限制。

選擇設計時,也應考慮排程器無法使用時的處理方式。

Durable Nonce 與智能合約交易

Durable Nonce 可用於呼叫 Solana 程式的交易,不限於簡單 SOL 轉帳。

延遲執行智能合約會帶來額外的狀態風險。

簽署與提交之間,兌換價格可能改變。

借貸倉位可能變得不安全。

程式預期使用的帳戶可能遭到修改或關閉。

可升級程式可能在交易執行時執行不同的程式碼。

應用程式應在可行時使用明確的最低輸出、最高輸入、預期帳戶狀態和其他防護措施。

使用者應避免簽署由不受信任應用程式提供、內容不明確的 Durable 交易。

Durable Nonce 與交易模擬

交易模擬會根據某個時間點觀察到的區塊鏈狀態,估算交易可能如何運作。

模擬成功並不保證 Durable Nonce 交易之後一定成功。

提交前,相關帳戶與程式邏輯可能已改變。

Nonce 也可能在模擬與執行之間遭到消耗。

在可行時,應用程式應於預定提交時間附近進行模擬,並仍依賴程式層級的安全限制。

模擬結果不能取代對實際已簽署訊息的驗證。

安全風險

Durable Nonce 的主要風險包括金鑰遭入侵、Nonce 未經授權遭推進、指令排序錯誤、帳戶狀態過時、不安全的延遲執行,以及交易狀態處理不當。

Nonce 權限金鑰遭竊,可能使待處理交易失效或授權帳戶變更。

惡意交易建立者可能利用較長的有效期取得簽章,讓交易在未來不同條件下執行某項操作。

操作人員可能因失敗交易而意外消耗 Nonce。

若重試系統沒有正確確認原交易結果,就可能造成重複的業務操作。

安全性取決於密碼學技術,也取決於周邊營運流程。

監控 Nonce 帳戶

建立交易前,應用程式應讀取 Nonce 帳戶。

應記錄帳戶地址、權限、儲存的 Nonce、預定交易和核准狀態。

提交前應再次檢查 Nonce。

若 Nonce 值意外改變,表示待處理交易已失效。

若權限意外變更,可能代表嚴重的營運或安全事件。

組織應針對 Nonce 推進、權限變更、餘額提領和帳戶關閉設定警示。

監控應採用適當的承諾層級,並將最終定案納入考量。

目前的協議狀態

目前 Solana 交易系統仍有文件說明並支援 Durable Nonce。

不過,官方 Durable Nonce 頁面提醒,該機制未來版本可能會棄用。

Solana 改進討論曾探討一種替代交易格式,可能在保留離線 Nonce 工作流程的同時,減少驗證者的特殊處理需求。

討論或提案不代表網路變更已啟用。

使用 Durable Nonce 的開發者應持續關注官方規格、用戶端版本、啟用公告和遷移指南。

長期運作的機構系統不應假設目前的交易格式永遠不會改變。

開發者應如何實作 Durable Nonce

開發者應使用維護中的 Solana SDK 和 System Program 介面,而不是手動編碼 Nonce 帳戶狀態。

應用程式應查詢 Nonce 帳戶,並確認其擁有者、初始化狀態、權限和目前的 Nonce。

儲存的 Nonce 必須放入交易的

recent_blockhash
欄位。

AdvanceNonceAccount
必須是第一個指令。

Nonce 權限和其他所有必要簽署者,都必須簽署完全相同的訊息。

系統應儲存序列化交易與簽章,且不得修改。

提交前,應用程式應確認帳戶仍包含預期的 Nonce 和權限。

提交後,應檢查交易狀態、執行錯誤、Nonce 推進、手續費及預期帳戶變更。

使用者如何安全使用 Durable Nonce

若無須延遲簽署,使用者應優先選擇一般近期區塊雜湊交易。

應透過能清楚識別 Nonce 帳戶和權限的軟體使用 Durable Nonce。

離線簽署者應逐一檢查所有指令,不要核准無法閱讀的序列化訊息。

需要取消待處理交易時,應透過刻意推進 Nonce 來取消。

使用者應了解,取消會消耗舊值,並使所有使用該值建立的交易失效。

Nonce 權限金鑰應依帳戶價值和營運角色妥善備份與保護。

使用者應確認交易確實成功執行,不要假設 Nonce 已推進就代表預定轉帳成功。

常見的 Durable Nonce 錯誤

常見錯誤之一,是把 Durable Nonce 當成遞增的錢包交易編號。

另一個錯誤是在

AdvanceNonceAccount
前放置運算預算指令。

第三個錯誤是使用同一個 Nonce 準備多筆交易,卻期待它們全部執行。

第四個錯誤是以為 Durable Nonce 會自動排程未來執行。

第五個錯誤是忽略簽署與提交之間的區塊鏈狀態變化。

第六個錯誤是以為交易失敗後 Nonce 仍可供下次嘗試使用。

第七個錯誤是在已簽署交易仍待處理時關閉或重新授權 Nonce 帳戶。

第八個錯誤是在未查詢原交易狀態前就重送或重建交易。

第九個錯誤是將 Nonce 帳戶所需的免租金餘額寫死在程式中。

第十個錯誤是假設目前的 Durable Nonce 行為在未來 Solana 版本中永遠不會改變。

常見問題

Solana 中的 Durable Nonce 是什麼?

Durable Nonce 是儲存在 System Program 帳戶中的持久雜湊值,用來取代短效的近期區塊雜湊。

Solana 一般交易為什麼會過期?

一般交易包含近期區塊雜湊,只有在網路 150 個 slot 的處理年限範圍內才會被接受。

Durable Nonce 會在 150 個 slot 後過期嗎?

不會。它在此期限後仍可使用,直到 Nonce 帳戶被推進、關閉,或以其他方式變更而使交易失效。

Durable Nonce 會讓交易永遠有效嗎?

不會。儲存的 Nonce 被消耗,或必要帳戶和權限條件不再相符時,交易就會失效。

什麼是 Nonce 帳戶?

這是由 System Program 擁有的帳戶,會儲存 Nonce 權限、Durable Nonce 值和與手續費相關的狀態。

誰可以控制 Nonce 帳戶?

指定的 Nonce 權限可核准推進、權限變更和提領。

Nonce 權限必須支付交易手續費嗎?

不必。Nonce 權限和手續費支付者可以是不同的簽署帳戶。

哪個指令必須放在第一個位置?

Durable Nonce 交易中的第一個指令必須是

AdvanceNonceAccount
。

運算預算指令可以放在第一個位置嗎?

不可以。Durable Nonce 交易中,運算預算指令不得排在

AdvanceNonceAccount
之前。

Durable Nonce 交易可以離線簽署嗎?

可以。離線簽署是此機制的主要用途之一。

Durable Nonce 會排程付款嗎?

不會。仍須由其他系統在預定時間提交已簽署交易。

多筆交易可以使用同一個 Nonce 嗎?

可以準備多筆,但只有第一筆被接受的交易能成功消耗該 Nonce。

如何讓多筆延遲交易各自獨立執行?

通常應使用不同的 Nonce 帳戶和不同的儲存 Nonce 值。

Nonce 使用後會發生什麼事?

Nonce 帳戶會儲存新值,而使用舊值簽署的交易會失效。

後續指令失敗時會發生什麼事?

一般狀態變更會回復,但 Nonce 仍會推進,交易手續費也仍會收取。

失敗的 Durable Nonce 交易可以重新提交嗎?

Nonce 被消耗後就不行,因為必須使用新值重建交易並重新簽署。

如何取消待處理的 Durable Nonce 交易?

權限可以透過另一筆有效交易推進 Nonce,讓舊的已簽署交易無法使用。

變更權限會使待處理交易失效嗎?

會。帳戶權限變更後,使用舊權限簽署的交易可能會失敗。

Nonce 帳戶需要 SOL 嗎?

需要。帳戶啟用期間必須維持適用的免租金餘額。

可以從 Nonce 帳戶提領資金嗎?

可以,但部分提領後仍須維持免租金要求;提領全部餘額則會關閉帳戶。

Durable Nonce 是加密貨幣代幣嗎?

不是。它是儲存在 Solana System Program 帳戶中的交易狀態。

Durable Nonce 是秘密嗎?

不是。Nonce 帳戶及其儲存值都可在鏈上公開讀取。

知道 Nonce 就能竊取資金嗎?

不能。交易仍須由 Nonce 權限和其他所有必要簽署者提供有效簽章。

攻擊者可以讓已簽署交易失效嗎?

若攻擊者控制 Nonce 權限,就可能推進或變更 Nonce 帳戶,使待處理交易失效。

模擬成功就能保證之後執行成功嗎?

不能。提交前,帳戶狀態、程式、餘額、價格和 Nonce 本身都可能改變。

Durable Nonce 比一般交易更貴嗎?

Durable Nonce 需要額外帳戶狀態和推進指令;一般簽章手續費和優先處理手續費仍適用。

目前仍支援 Durable Nonce 嗎?

支援,但官方文件提醒,目前機制可能會在未來版本中棄用。

結論

Durable Nonce 可讓 Solana 交易在標準 150 個 slot 的近期區塊雜湊期限過後仍可使用。

此機制透過由 System Program 擁有的 Nonce 帳戶運作,其中包含權限、儲存的雜湊值和手續費相關狀態。

已儲存的 Nonce 會在已簽署交易訊息中取代一般近期區塊雜湊。

交易必須將

AdvanceNonceAccount
放在第一個位置,並包含 Nonce 權限的簽章。

交易獲接受後,Nonce 就會推進,舊的已簽署訊息無法重放。

若後續指令失敗,預定的狀態變更會回復,但 Nonce 仍會被消耗,手續費也仍會收取。

Durable Nonce 特別適用於隔離環境簽署、金庫核准、多方授權和延後提交。

它不會自動排程交易,也無法保護簽署者免於惡意指令或區塊鏈狀態變更。

安全實作需要監控 Nonce、精確保留訊息、清楚顯示交易、可靠檢查狀態,以及謹慎管理權限。

由於目前設計未來可能隨 Solana 版本變動,開發者應關注官方協議指引,並在必要時為營運系統的遷移做好準備。
回調還是機會?
回調還是機會?回調還是機會?
一邊爆倉,一邊掃貨——24 億 ETF 資金在賭什麼?