作者:Zooko Wilcox、Jason McGee 與 Shielded Labs 的 Taylor Hornby
摘要
Shielded Labs 正與 Zcash 基金會、Tachyon Group、Valar Group 以及 Zcash 開放開發實驗室(ZODL)合作,提出一項名為「Ironwood」的提案,旨在恢復使用者驗證 Zcash 流通供應量健全性的能力。
上週,在 Zcash 的 Orchard 池中發現了一個重大的偽造漏洞。該漏洞已透過由 ZODL 及其他生態系統參與者協調的緊急網路升級進行修復,並已於 6 月 2 日完成。
儘管我們認為該漏洞被利用的可能性很低(原因詳見我們的揭露報告),但 Orchard 的隱私特性使得使用者無法自行驗證這一點。
Ironwood 將允許使用者驗證 Zcash 的流通供應量是否正確。使用者將在 Ironwood 啟動後立即獲得此能力,只需簡單加總活躍池中的餘額即可。他們無需推論他人的動機或行為,也無需等待從 Orchard 池遷移,即可驗證 Zcash 的總流通供應量是否正確。
Ironwood
Ironwood 的目標是恢復每位 Zcash 使用者驗證 Zcash 供應完整性的能力。這種可驗證性因偽造漏洞的存在而受損。啟動後,使用者將能立即透過運行節點,獨立驗證 Zcash 的流通供應量是否健全。
為達成此目標,Ironwood 將:
- 使用已修復近期偽造漏洞的 Orchard 電路,建立一個新的隱私池。
- 拒絕任何在舊 Orchard 池中建立新輸出的交易,將其視為無效。
- 透過 AI 輔助安全審計與形式化驗證等技術,提高對程式碼庫的信心,旨在確保不存在其他偽造漏洞。
Ironwood 為何有效
Ironwood 改變了 Orchard 池內可能發生的事情。
啟動後,任何在 Orchard 池中建立新輸出的交易都將被拒絕。這意味著 ZEC 將無法再在該池內繼續流通。從那時起,Orchard 池中的資金只能透過轉運門(turnstile)離開該池。
轉運門是 Zcash 用於池間轉帳的鏈上會計機制。它們會追蹤進出每個池的 ZEC 數量,並拒絕任何試圖轉出超過合法進入數量的 ZEC 的交易。
這些規則共同意味著使用者無需等待所有(甚至任何)Orchard 資金遷移。一旦 Ironwood 啟動,使用者即可根據共識規則驗證,流通中的 ZEC 數量不可能超過正確數額。這為 Zcash 流通供應量的健全性提供了即時、無需信任的保證。超額的 ZEC 無法在 Orchard 池的使用者之間秘密流通,也無法逃逸到其他池中。
產生關於漏洞是否被利用的證據
Ironwood 也可能提供關於 Orchard 漏洞是否曾被利用的證據,但達成其目標並不取決於此類證據是否出現。
當使用者將資金從現有的 Orchard 池遷移到新池時,任何假想的偽造者都面臨一個選擇:嘗試移動偽造資金並冒著暴露其存在的風險,或者將其遺留在池中並冒著未來無法移動的風險。
這會產生兩種可能的結果:
結果 A: 沒有超額的 ZEC 試圖離開現有的 Orchard 池。這將是漏洞從未被利用的有力證據,因為偽造者有強烈的動機在合法使用者完成遷移之前移動偽造資金。
結果 B: 超額的 ZEC 試圖離開現有的 Orchard 池。在這種情況下,超額資金將無法離開該池,並將被有效銷毀。不幸的是,這對於維持所有池當前的流通供應量是必要的。這也將提供公開可驗證的證據,證明偽造行為已經發生。由於我們認為該漏洞未被利用,我們認為這種結果不太可能發生。
錢包
我們建議所有支援現有 Orchard 池的錢包都增加對新池的支援。
錢包應在 Ironwood 啟動前正常支援現有的 Orchard 池,然後將使用者資金從現有的 Orchard 池遷移到新池。雖然遷移會帶來隱私影響(即會暴露轉移的 ZEC 數量和轉移發生的時間),但我們認為對使用者隱私的影響是適度的,並且可以透過錢包行為進一步減輕。
現有的 Orchard 接收者(即地址)仍然有效,無需輪換。發送到 Ironwood 啟動前建立的 Orchard 接收者的 ZEC,將自動作為新池中的 ZEC 被接收。
時程
與大多數網路升級一樣,Ironwood 需要整個生態系統的開發、測試、審查和協調。經驗表明,這項工作通常比預期花費更長的時間,因此我們認為在討論時間表時採取保守態度,比過度承諾而未能兌現要好。
另一個不確定性的來源是 zcashd 正在進行的棄用。雖然 Shielded Labs 並未直接參與該工作,但交易所、礦池、錢包及其他基礎設施提供者遷移到 Zebra 的過程可能會影響此次網路升級的時程。
我們預計,隨著實施計劃的成熟和討論的持續,我們將能更清楚地了解時間表。
結論
我們想強調,我們認為 Orchard 漏洞先前被利用的可能性很低。但在涉及 Zcash 供應完整性時,使用者不應依賴我們或任何其他人的評估。
Ironwood 旨在恢復一種任何人都可以自行驗證的 Zcash 流通供應量保證。無論該漏洞是否曾被利用,目標都是一樣的:讓 Zcash 供應的完整性成為可驗證的事實。
我們相信 Ironwood 是最佳的前進方向,並期待與 Zcash 社群討論此提案。
致謝
感謝 Sean Bowe、Dev Ojha、David Campbell、Alex Bornstein、Nate Wilcox、Kris Nuttycombe、Vitalik Buterin、Balaji Srinivasan、Taylor Hornby、Josh Swihart 和 Tatyana 的審查與回饋。特別感謝 Kris Nuttycombe 建議 Ironwood 升級應禁用那些在舊 Orchard 池中建立輸出的交易。這對於 Ironwood 達成其目標至關重要。





