Zcash 升級將在第 3,543,405 區塊鎖定 Sprout 幣,即使持有正確金鑰也一樣
重點速覽
- •NU7 升級在區塊 3,543,405 啟用後將終止 Sprout 支出,因為其後仍然有效的兩種交易格式——第 5 版與第 6 版——均不支援該池。
- •Sprout 持有人必須依靠第三方復原工具(如 Sovright 開發的 Argos 應用程式),因為已棄用的 zcashd 是最後一個能夠建構 Sprout 交易的維護中軟體。
- •復原速度取決於備份:儲存可支出 note 資料的錢包檔案可在幾秒內掃出,而裸金鑰需要約 26 GB、耗時數小時的全鏈掃描。
- •留下的 Sprout 資金不會被銷毀,仍計入 Zcash 的已發行供應量,且 ZIP 2003 指出 Sprout 支出可能永不回歸。
- •任何 Sprout 轉帳的確認應來自支援 NU7 的節點軟體(如 Zebra 7.0.0),因為過時節點可能仍在線並遵循 NU7 之前的鏈。

根據 CoinDesk 的報導引用的 ZecStats 數據,截至週四上午,Zcash 的 Sprout 隱匿池中仍有約 12,226 枚 ZEC,較一週前的約 22,263 枚減少。大部分流出發生在週日,當天約有 9,094 枚 ZEC 離開該池。以 CoinDesk 使用的每枚 1,300 美元價格計算,剩餘部分價值約 1,600 萬美元。
截止點是區塊 3,543,405——即 ZIP 259(NU7 網路升級的部署規範)設定的主網啟用高度,並在 Zcash 基金會的 Zebra 7.0.0 發布公告中重申。CoinDesk 報導指出,Blockchair 顯示週四 05:24 UTC 時鏈上區塊高度為 3,542,391,以目前 75 秒的區塊目標計算,啟用時間約在週五 02:30 UTC 前後。實際進度由礦工決定,因此該估計可能向任一方向偏移。因此,這個日期是共識有效性邊界,而非有保證的服務截止期限:決定性的事件是區塊被開採,而錢包與託管機構可能採用各自的營運截止時間。
在錢包中看似相同的兩種故障
期限背後的規則範圍比 Sprout 更廣。ZIP 2003 規定自 NU7 起禁止所有第 4 版交易,ZIP 259 則指出這包括僅透明的交易與 Sapling 支付。Sprout 受到影響是因為兩種存續格式均不支援它:隨 NU5 推出的第 5 版,以及隨 NU6.3 推出的第 6 版。
因此,拒絕發送交易的錢包可能面臨兩種問題之一,而其中只有一種能在啟用後倖存:
仍留在 Sprout 中的幣。 會出什麼問題:唯一能夠支出它們的交易格式將失效。區塊之後:不存在受支援的替代格式。期限於區塊 3,543,405 關閉。
過時錢包中的透明或 Sapling ZEC。 會出什麼問題:軟體建構的第 4 版支付會被網路拒絕。區塊之後:餘額仍可支出,支援第 5 或第 6 版的軟體可以重新建立該筆支付——對舊支付重新簽名則行不通。只要軟體更新,期限之門保持開啟。
預先準備的支付需要另行檢查。ZIP 259 提醒,第 5 版與第 6 版交易在啟用前後也不是自動有效,因為其簽名綁定了共識分支 ID。在升級前儲存或離線簽名的支付,若在截止區塊之後才進入區塊,無論其格式為何都可能失敗。
託管餘額由持有它們的平台負責。Zcash 基金會的公告直接針對錢包、交易所及其他代替用戶建構交易的服務說明第 4 版規則。
復原資料決定時鐘
對 Sprout 持有人而言,更棘手的問題是找到仍能建構該筆轉帳的軟體。ZIP 2003 指出,在 NU6.3 前不久棄用的 zcashd,是唯一仍提供 Sprout 錢包功能的維護中軟體,其移除意味著共識規則在啟用前仍接受 Sprout 支出,但持有人只能依靠第三方復原工具來建立這些支出。
識別幣是第一步。Zcash 的地址文件列出以 zc 為前綴的 Sprout 隱匿地址,以及以 zs 為前綴的 Sapling 地址。前綴顯示地址屬於哪個池,而非該處是否仍有餘額。
備份比地址更關鍵。Zcash 的備份說明將舊式隱匿金鑰與 Sapling 地址背後的種子分開處理。Argos 復原應用程式的開發者在文件中補充了兩點:ZecWallet Lite 的種子無法重建該錢包獨立生成的 Sprout 金鑰;而 zcashd 的 wallet.dat 完全沒有主種子,因為其金鑰逐一儲存——只有檔案內的金鑰可以從中復原。
備份的內容也決定救援所需時間。根據 Argos 1.2.0 的發布說明,已儲存可支出 Sprout note 資料的錢包檔案可以在幾秒內完成掃出而無需掃描。沒有該 note 資料的金鑰,例如獨立的支出金鑰或匯入 zcashd 時未進行重新掃描的金鑰,則需要一種嘗試解密鏈上歷史中每筆隱匿交易的掃描,因為不存在 Sprout 地址的索引。開發者網站指出,在主網上進行裸金鑰 Sprout 掃描約需傳輸 26 GB 資料,並警告掃描會耗時數小時。在截止時間以小時計的情況下,這一差距可能決定轉帳是否根本可行。
目的地也是固定的。Sprout 價值只能轉入 Sapling 池,因此發布說明要求使用 zs1 地址或包含 Sapling 接收器的統一地址。將資金再轉往 Orchard 是持有人之後另行執行的交易。
在期限壓力下審查救援工具
Argos 是 Sovright 開發的第三方桌面應用程式,在 ZecWallet Lite 停止維護後問世。開發者網站稱該應用程式經 Least Authority 獨立審計,在本機處理種子與金鑰,僅在讀取公開區塊資料與發送最終掃出時連接網路。對於大額餘額,開發者建議使用全新的電腦,因為恢復原廠設定無法清除長期使用機器上韌體層級的惡意軟體。
按下掃出之前:
- 下載。 macOS 與 Windows 版本均經程式碼簽署。每個 GitHub 版本都附有 SHA256SUMS 檔案與建構證明,可用
gh attestation verify <file> --repo sovright/argos驗證。 - 分成。 掃出審核包含一項對 Sovright 的選擇性捐贈,預設為 10%。兩項輸出都會在確認前顯示,請審慎設定該數字。
- 管道。 開發者表示其支援團隊絕不會要求種子、錢包檔案、密語或金鑰。在任何平台上提出此類要求均屬詐騙。
掃出確認後,開發者建議棄用舊的復原資料,因為復原機器上的惡意軟體可能已擷取這些資料。原始錢包檔案應保留至其涵蓋的每個池都被清空為止。
只有升級後的節點才能確認轉帳
已簽名並廣播的 Sprout 轉帳,只有在被納入啟用高度之前的區塊時才算數。從何處讀取確認也很重要。ZIP 259 免除了舊節點軟體須在升級前過期的通常要求,並警告未受支援的節點可能繼續在線並遵循 NU7 之前的分支。Zcash 基金會的公告指出,未升級的節點將遵循不同的鏈。使用過時節點查詢的持有人可能看到升級後網路不承認的轉帳,因此確認應來自支援 NU7 的軟體,例如 Zebra 7.0.0——首個支援主網 NU7 的穩定版 Zebra。
流出過程也是公開的。ZIP 2003 的隱私章節指出,價值離開 Sprout 會改變該池的可見餘額,而短暫的流出期使時間與特殊金額更容易與特定持有人連結起來。週三僅有約 40 枚 ZEC 移動,遲來的提款幾乎沒有周圍流量可供混入。
留下的幣仍計入帳面
由 Daira-Emma Hopwood 撰寫的 ZIP 2003 不會註銷或銷毀 Sprout 資金。啟用時該池的餘額仍計入 Zcash 的已發行供應量,包括 ZIP 237 中網路可持續性機制的計算。因此,Zcash 的供應量核算會繼續計入目前無法移動的幣。
該提案留下一條理論上的回頭路:若社群認為值得,可以重新啟用第 4 版交易,或增加另一種取回機制。提案也說明 Sprout 支出可能永不回歸。
接受這一成本的理由在於節點安全。ZIP 2003 指出,自 Sapling 升級以來,Sprout 一直與 Sapling 共用 Groth16 證明系統與 BLS12-381 曲線。其 JoinSplit 電路以及對 nullifier 與 note 承諾的處理,仍加重接受新交易之程式碼的負擔,包括作為阻斷服務攻擊面。由於 Sprout 幾乎無人使用,節點實作沒有什麼動力去優化這條路徑。升級範圍如何確定,可見 Coindoo 關於 NU7 幣持投票的報導。
成本落在狹窄的群體上:Sprout 金鑰存放於未經檢查或已遺失的備份中的持有人。公開的池餘額無法區分兩者。決定故事結局的數字,是區塊 3,543,405 被開採後 ZecStats 數據中的 Sprout 池價值,它將顯示此次升級留下了多少 ZEC。日後若出現提出取回機制的 ZIP,將是存取權可能恢復的唯一跡象。
來源:Coindoo