據 Zcash 基金會於 6 月 3 日發布的公告,知名隱私幣 Zcash 的 Orchard 零知識證明電路日前被發現存在嚴重的健全性(Soundness)漏洞。開發團隊緊急啟動自 2016 年以來的第二次安全協議升級,透過部署 Zebra 4.5.3 軟分叉與 Zebra 5.0.0(NU6.2)硬分叉成功修復問題。由於通報與應對迅速,該漏洞在被利用前已順利化解,未造成任何資金與隱私損失。
(前情提要:Zcash停止出塊超過4小時!緊急分叉後高度3,364,601卡死,治理危機雪上加霜)
(背景補充:Arthur Hayes:現在買隱私 Zcash 屌打比特幣)
5 月 29 日,一封來自獨立安全研究員的私訊,讓 Zcash 開發團隊的 Slack 頻道瞬間炸開了鍋。訊息裡附著一段短短的證明程式碼,幾行就足以證明:隱私幣最重要的數學地基——零知識證明的「健全性」——出現了一道裂縫。接下來的五天,是一場與時間賽跑的無聲戰爭。
漏洞細節與 Turnstile 保護機制
根據官方說明,該健全性漏洞主要存在於 halo2_gadgets 實作中。若遭到惡意利用,攻擊者可能讓 Orchard 池接受無效的狀態轉移,例如在 Orchard 內部進行雙重支付(雙花)。值得慶幸的是,得益於 Zcash 架構中的 Turnstile 機制,代幣的總供應量受到了嚴格保護,攻擊者無法憑空捏造或膨脹 ZEC 的整體發行量。
Orchard 作為 Zcash 在 2022 年 NU5 升級中引入的隱私架構核心,基於無需信任設定(Trusted Setup)的 Halo 2 證明系統,目前持有大量流通的 ZEC。因此,此次漏洞的發現與修復對整個網路的安全至關重要。
秘密協調與軟硬分叉升級
為了在修復期間避免漏洞細節外洩而遭到駭客利用,Zcash 核心工程師與基礎設施營運商、礦工及交易所展開了低調的私下協調。團隊首先於 6 月 2 日透過主網區塊高度 3,363,426 成功激活了緊急軟分叉(Zebra 4.5.3),暫時拒絕所有包含 Orchard 的交易,以此爭取修復時間。
隨後,NU6.2 硬分叉(Zebra 5.0.0)於美東時間 6 月 3 日零時正式在主網區塊高度 3,364,600 成功啟用,不僅重新啟用了修正後的 Orchard,還新增了拒絕非標準證明大小(Non-canonical)的共識規則。
官方強調,在此次危機處理過程中,使用者的隱私並未受到任何影響,Sapling 與透明交易也全程保持正常執行。這是 Zcash 自 2016 年主網上線以來,第二次因為重大安全問題而進行協議升級。基金會強烈建議所有節點營運者應盡快升級至 Zebra 5.0.0,以確保維持在正確的區塊鏈分支上。

