當前 Zcash 有三個版本代號,Sprout、Sapling 以及即將部署的Halo 2。每個版本都有對應的程式碼和響應的匿名礦池地址,因此後續翻譯時將直接使用這些代號。本文源自於 Zcash 背後開發公司 Electric Coin Company(ECC)官方部落格《Technical explainer: Halo on Zcash》,由專欄作者 白話區塊鏈 轉譯及整理。
(前情提要:學術報告指出:99% 的 Zcash 交易可追蹤,因用戶不了解匿名幣交易機制 )
ECC 將在本文中介紹 ZIP224 這個版本的功能,它提供了將 Halo 2 引入到 Zcash 網路的一個途徑。Halo 2 零知識證明系統,由 ECC 公司發明並開發,移除了初始信任設置,減少了 Zcash 協議攻擊面,提高 ZEC 供應總量完整性的保證。
作為 Halo 2 零知識平台的第一個發布, 這將使得未來的環形升級不需要信任設定的儀式成為可能, 使得 Zcash 匿名協議能更加敏捷的適應未來的升級,比如發行其他的資產。
除此之外,當前版本打開了聚合證明和區塊鏈簡潔之路, 這兩項擴展性的提升,使得 Zcash 協議能夠與時俱進。
1、一個 Zcash 協議功能提案
Zcash 中的 Halo 2 部署的第一階段引入了一個新的匿名交易協議, 這使得創建第一個匿名的轉帳能力不需要依賴予信任設定。這個協議提供的功能,將會非常類似於來自 Sapling 版本提供的那樣;然而,憑證系統將使用 Halo 2 技術站。
這個發布包含了新的橢圓曲線週期,Pallas 和 Vesta 週期, 他們一起被稱之為 Pasta 曲線。
Pasta 曲線, 一個新的加密結構,這是 ECC 持續努力的結果,以確保 Zcash 能夠從突破性的密碼學發明中盡可能地多收益,這些創新同時提高了安全性和性能。
Mir 協議和 Mina 項目採用(之前的 Coda)已經採用了 Pasta 曲線, 並且 Mina 已經為 Pasta 曲線在 Ledger 中集成,該集成已經被提交給 Zondax,以用於將來的 Zcash Ledger 集成。開始在帳本整合中派上用場,這已經被提交到 Zondax 中,供未來 Zcash 帳本整合用。他們也被包含在 Arkworks Rust 庫中。
這個 ZIP 發布包引入一個一個新的匿名地址格式,使用 Pasta 曲線,和一個新的匿名池。
這個協議設計的特性和匿名特性是故意和 Sapling 版本保持統一,目的是為了限制技術上的風險,並且簡化用戶體驗和易用性。
在新協議和實施準備就緒之前,將委託第三方進行審核,以增強對新協議和實施安全性的信心。
2、匿名池
如果這個協議被激活,這個 ZIP 發布將會為 Zcash 創建第三個匿名池,為了表示我們 Zk-SNARK 技術站的連貫性,第一個匿名池被稱為 Sprout,第二個匿名池被稱為 Sapling。
新的匿名池將會被一個匿名池十字旋轉門保護著,正如這個旋轉門的之前是為了在 Sprout 和 Sapling 池之間過渡的那樣。我們將逐步淘汰舊的匿名池,這樣的設計就使得我們可以部署新的匿名技術時,將秘密學和工程上的風險降到最低。
這鼓勵我們遷移到一個無信任的證明系統當中,增強了人們對於 Zcash 供應量合理性完整性的信任,同時降低了實現的複雜性以及 Zcash 的攻擊面。
在 Canopy 網路升級過程中, 我們部署了 Zip 211,禁用舊往的 Sprout 匿名池中增加新幣的功能。類似的,在 Zip224 被激活之後,未來有新的網路要升級,我們的意圖是部署 ZIP219,也會類似的禁用舊往的 Sapling 匿名池中添加新幣功能。
當前這個 Sprout 匿名池往 To-Sapling 匿名池遷移的工具將會被升級,從激活之後起將支持從 Sprout 匿名池到Halo 匿名池的遷移,也支持從 Sapling 匿名池到 Halo 匿名池的遷移。
3、減少數據洩露
考慮到 Sprout 和 Sapling 升級的過程中的一些經驗, 當前這個 zip 包含了一些改變,目的是為了減少一部分未加密交易過程中元訊息的洩露。
這一功能通過將輸出和花費合併到一個互相無法區分的動作中,是通過對一個交易中的所有動作使用一個單一的錨來實現的。
4、Zcash 未來憑證
在 Sapling 版本中,當前激活的協議是 Grouth16, 最小但卻是最高效的可驗證的零知識證明構造。當前 Zcashd 中,這些證明容量小於 200 byte,單獨驗證一筆交易大約需要 7-10 毫秒。
對於我們當前使用的網路規模來說已經足夠了,這個驗證時間在網路延遲噪聲容限內。
然而,即使在某種程度上,這還是不夠的,尤其考慮到 Zcash 擴展性的一些使用場景當中,比如 UDA 用戶自定義資產這個情景中。
當我們討論,Zcash 中可接受的驗證時間和交易容量大小時,數量級並不是成敗的關鍵,然而我們需要的憑證是即能支持技術上的擴展性和可編程性,比如在憑證中承載數據。
這些技術允許憑證匯集在一起處理,並攤銷憑證驗證時間。從而使得每個交易的驗證成本和交易容量大小以指數級減少。除了非常有限的情況之外,我們現有的憑證無法支持上述所有這些技術。
而我們在 Halo2 上實現的東西,不僅僅支持上面的這些技術操作,而這些操作是實現擴展性必不可少的工具,但是甚至是沒有這些工具的情況下,我們現行憑證的大小和單一憑證的驗證時間依然足以應對 Zcash 在短期內的使用。
通過移除對於初始信任設置的需要,當前 Zip 包即緩解了人們對於初始設定流程安全的擔憂,也確保了在將來任何新的變動都不再需要這個 MPC 的信任設定儀式,比如引入 UDA (用戶自定義資產,即發行新的 Token)特性。
這一特性使得這些更新將很容易在 Zcash 網路中實現, 同時還會降低未來升級的成本和風險以及時間。與當前的Groth16ping 憑證相比,Halo 依賴於更弱複雜性更低的密碼學假設,後者依賴於基於配對的密碼學。
即使沒有緊急的原因使得我們對於 Zcash 網路當前使用的 BLS12-318 配對協議產生擔憂,但是能夠使用更低安全性的假設是歡迎的。
Zcash 的擴展性的實現,需要對 Zcash 當前彼此相關的協議進行大規模的重新設計,而不僅僅是在 Zcash 上實現 Halo 2 那麼簡單。
Halo 2 將成為設計這些協議的核心組件。在不久的將來,我們將會利用 Halo 2 的特性通過交易聚合的方式去,減少鏈上帶寬和驗證時間。
最終,這些特性還可以使我們實現一個完全簡潔的區塊鏈,實現近乎實時的同步,對於輕量級客戶端提供全節點級別的安全保證。
5、性能
從開發 Halo2 的那一刻起,我們就一直在努力的做著,以確保我們可以解決擴展性上的挑戰以及移除信任設置,同時不會以任何有意義的方式降低性能。
從計算方面講,我們相信 Halo 2 和 Sapling 比也具競爭力,甚至可能優於 Sapling,即使交易量會更大。
此外,Halo 2 的積聚以及聚合功能,將使得我們在未來的可擴展版本中大大降低交易體積。
Halo 2 在匿名交易的構建相比於使用 Groth 16 憑證系統構而言會看起來有一點不同。Halo 2 無需像 Groth 16 那樣對每一個花費和輸出描述創建幾個單一的憑證,而是並行的創建所有的憑證,因此他們可以分攤交易體積和花費的時間。
只有單一憑證的交易粗略的計算有幾 kb 大小,但是額外的憑證材料的邊際大小要小的多,邊際驗證時間微不足道。
上述的這種匿名交易中可以包含數 kb 的備註數據,這並不意味對交易大小有顯著的增加。單個線程驗證一個單獨的交易需要 30 毫秒的時間,對於單個憑證驗證而言,比 Groth16 差一些。
但是與需要大量串行操作的 Groth16 憑證不同,我們的憑證完全可以並行的驗證,並且可以根據可用線程數進行擴展。
Halo 2 中只要 3-4 個線程並行處理,這個時候的性能接近 Groth16 的水平了,如果有更多線程,那 Halo 2 在Zcash 網路中的表現會更加的優異。
6、具體實現
我們將針對不同類別用戶加以說明,通常來說, 對於所有類型的使用者來說, 這個特性的升級增加了新的錯誤或者未預料到的設計上的瑕疵的風險, 這對於任何網路升級功能都是如此。
此外,由於 Sapling 仍將是活動池,因此在激活包含 ZIP 224 的網路升級時,不需要任何特定的操作項目即可繼續使用 Sapling 地址或與 Sapling 匿名地址集成,而不是升級到 Zcashd 的支持版本或我們的移動錢包 SDK 。
那些直接依賴 Zcash 或我們的錢包 SDK 的用戶,以及對最終用戶體驗沒有複雜需求的用戶,應該有一個相對簡單的實現。
(1)對於礦池運營人員
為了使用新的 Zip224 的地址作為新的匿名地址, 運營人員僅僅需要在生成地址的時候響應的添加 -mineraddress 這個參數就行。
對於那些使用新的 Zip224 匿名地址作為收款人時,礦池運營人員不需要做任何改變即可發送。
(2)錢包供應商
那些使用我們 SDK 的錢包供應商,比如 NightHawk 和 Unstoppable 版本的人來說,只需要升級一下對應支持的版本就好,將會自動獲得 Zip224 新發布的特性。用戶界面程式碼中需要進行其他工作以容納 ZIP 224 地址。
(3)交易平台和硬錢包用戶
交易所比如 Gemini 這樣支持 Sapling 版本匿名提現地址的,將需要添加對 Zip224 格式地址的支持。Zondax 方面也需要對於 Ledger 整合的支持,然而 Mina 方面已經為使用 Pasta 曲線的項目做了支持,這將有助於 Zondax 的工作。
(4)開發者方面
ZIP 224 的實施得益於 ECC 的密碼學工程專業知識,這是通過多個部署級別的 ZKP 技術產生的。
結合 ECC 在匿名地址錢包的 SDK 所作的努力, 我們相信這個更新的技術將會比當前 Zcash Sapling 版本的部署和整合上更加容易。
(5)當前 Zec 持幣用戶
對當前 Zec 持有人可以使用上文中提到的遷移工具或者現在在用的那個標準的轉帳機制將它們的資金遷移到新的匿名池中。
(6)區塊鏈瀏覽器
區塊鏈瀏覽器必須更改他們處理 Zcash 總供應量計算的方式,並相對應的解析和顯示有關 ZIP224 轉帳的詳細信息。
📍相關報導📍
隱私幣滅團危機!Bittrex 宣布下架 XMR Zcash Dash 導致崩盤,研究員: 美國交易所恐跟進
因應《監控科技公眾監督法》!紐約市警局將以「加密貨幣分析監控工具」蒐集交易資訊
讓動區 Telegram 新聞頻道再次強大!!立即加入獲得第一手區塊鏈、加密貨幣新聞報導。
LINE 與 Messenger 不定期為大家服務