1. 引言
自2019年起,ECC團隊就在為2021年Zcash的擴展性進行了相關預研,最主要的研究成果就是Halo,作為一種新型的zk-SNARK方案,其解決了Zcash中的2個主要問題:
- 在保證了性能的前提下,移除了trusted setup;
- 支持隱私數字支付的可擴展框架,
Halo論文見:《Recursive Proof Composition without a Trusted Setup》,也可參見本人博客:
- Halo: Recursive Proof Composition without a Trusted Setup 學習筆記
- Halo——zcash新的零知識證明機制,無需Trusted Setup
- Halo代碼決議
在Halo的基礎上,構建了 Halo2 —— 由Rust語言撰寫的高性能zk-SNARK實作,在該實作中,在消除了trusted setup的同時保證了Zcash的可擴展性,
2. Halo 2 背后的技術
2.1 Sonic
在2019年,Sean Bowe 聯名發表了《Sonic: Zero-Knowledge SNARKs from Linear-Size Universal and Updateable Structured Reference Strings》論文,在Sonic協議中,兩個主要的元素為:【借助這2個元素,Sonic可 use a polynomial commtiment scheme為任意計算創建零知識證明,】
- 1)polynomial commitment scheme 【Halo論文中改進了,實作了支持aggregation的基于inner product argument的polynomial commitment scheme,】
- 2)Polynomial IOP 【Marlin 和 Plonk 論文中改進了,Plonk改進的Polynomial IOP具有更高的靈活性和更優的效率,】
目前polynomial commitment scheme方案中,效率最高的基于pairing group的需要trusted setup,Sonic主要關注的是需要trusted setup的polynomial commitment scheme 方案,
然而,還有一個分支是Bulletproofs 中 基于inner product argument 的polynomial commitment scheme方案,在該方案中,無需trusted setup,具有相對較小的proof size,但是代價是verification性能很差,
2.2 Halo——支持aggregation的基于inner product argument的polynomial commitment scheme
在 Halo 論文中,詳細介紹了基于inner product argument 構建的polynomial commitment scheme,同時實作了一種前所未有的aggregation技術,借助該aggregation技術,大量獨立創建的proofs的驗證時間 與 驗證一個單獨proof的時間 相當,使其成為比Zcash現有zk-SNARK更優的方案,
Halo 論文中描述了遞回證明組合(recursive proof composition)的一種具體表現形式,它將Sonic論文中描述的Polynomial IOP剝離出來,用基于inner product argument的polynomial commitment scheme 代替了 基于pairing的polynomial commitment,
所謂recursive proof composition是指:
- 允許借助一個proof 來證明 幾乎無數量上限的其它proofs 的正確性;
- 可有效地壓縮大量的計算(和資訊),
【Recursive proof composition holds the potential for compressing unlimited amounts of computation, creating auditable distributed systems, building highly scalable blockchains and protecting privacy for all of humanity. The concept is a proof that verifies the correctness of another instance of itself, allowing any amount of computational effort and data to produce a short proof that can be checked quickly.】
recursive proof composition是可擴展Zcash的一個基本組件,其不僅支持水平網路擴展,同時允許少量參與者信任網路其余部分的完整性,
在Halo方案之前,為實作recursive proof composition,需要大量的計算開銷和trusted setup,
而在Halo中,在上面提及的aggregation技識訓礎之上構建了“nested amortization”技術,使得:
- 可使用基于inner product argument的polynomial commitment scheme來實作相應的recursive proof composition,
- 大幅提高了性能,
- 避免了trusted setup,
隨后,一組科學家在2020年論文《Proof-Carrying Data from Accumulation Schemes》將Halo中的這種recursive proof composition技術 歸納為 “accumulation scheme”,并對其進行了安全證明,“accumulation scheme” 這個新稱呼,表明了Halo中的“nested amortization”技術的實際作業原理——即通過給“accumulator(累加器)”添加proofs(這些proofs是關于累加器的先前狀態的),使得我們可以通過檢查累加器的當前狀態來檢查所有先前證明是否正確(通過歸納),
2.3 Marlin and Plonk——改進的Polynomial IOP具有更高的靈活性和更優的效率
盡管Halo中實作了無需trusted setup的recursive proof composition,但是其運行速度仍然無法滿足要求,
Halo同期,有很多其它團隊發現了效率優于Sonic的新的Polynomial IOPs,比如 Marlin,這些 Polynomial IOP 方案中效率最優的是 PLONK,
PLONK為設計基于應用程式特定需求的高效實作提供了極大的靈活性,PLONK的這個特性對于制作更高效的Halo版本至關重要,
3. Halo VS Halo2

Halo2相比于Halo的最大區別是,用Plonk中的效率更優的Polynomial IOP方案替換了Sonic中的Polynomial IOP,
即Halo中使用Sonic方案來驗證交易,Halo2中使用Plonk來驗證交易,Plonk的效率優于Sonic,Plonk可以更少的gates來表示更復雜的circuit,
Halo背后的新思想已被recursive SNARK專案采用,如Coda(Pickles)和 Mir(Plonky),
- Halo方案代碼實作:https://github.com/ebfull/halo
- Halo2方案代碼實作:https://github.com/zcash/halo2
4. Halo2 的目標
Halo2的目標是:
為接入Zcash協議,建立一些符合社區標準的東西,
在Halo2的實際實作程序中,不僅會采納往年出現的新想法,還將采納團隊在此程序中發現的積極優化和新技巧,其中一些正在努力形成完善相應的檔案以發布到社區,
Halo2 得到了以太坊基金會12萬美金的支持,由ECC團隊全力開發,計劃將于2021年早期移除trusted setup,同時將來recursive proof的支持將為Layer 1 的可擴展性奠定基礎,
實作新的前沿技術的程序是一個漫長的程序,它包括科學的同行評審、工程、第三方安全審計和測驗,以確保安全,ECC有安全部署創新技術的記錄,我們知道這項作業需要協作,從開源Halo,到與以太坊基金會合作,再到研究未來的實作,協作是我們作業的核心,
5. Halo2 的意義
在Sapling升級中,大幅提升了Zcash的性能,并使得第三方錢包和交易所首次使用了Zcash的shielded技術,
由于Zcash從Bitcoin代碼庫分叉而來,底層本身不具備可擴展性,
借助Halo2技術,可允許在無需trusted setup的情況下進行電路升級,使得Zcash的shielded協議在未來的改進中更加靈活,如:
支持諸如用戶自定義資產(UDAs)之類的附加資產,
同時,也有利于其它專案或tokens也可受益于Zcash的通過加密實作隱私的特征,
借助Halo2,可解鎖Zcash在Layer 1層面的可擴展性,
參考資料
[1] Zcash協議說明書
[2] Zcash Orchard feature 設計說明書 【Orchard 為a feature proposal,而不是network upgrade,Orchard 是伴隨著Zcash Canopy升級的feature proposal,】
[3] Zcash Halo2 設計說明書
[4] ECC 2020年9月1日 博客 ECC releases code for Halo 2
[5] ECC 2020年9月1日 博客 Explaining Halo 2
[6] ECC 2021年1月8日 博客 Bringing Halo 2 to Zcash
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/263894.html
標籤:區塊鏈
