時間:2021-12-17|瀏覽:531
我們很自豪地介紹 ZIP224 這個版本的功能,它提供了將 Halo 2 引入到 Zcash 網(wǎng)絡(luò)的一個途徑。
Halo 2 零知識證明系統(tǒng),由 ECC 公司發(fā)明并開發(fā),移除了初始信任設(shè)置,減少了 Zcash 協(xié)議攻擊面,提高 ZEC 供應(yīng)總量完整性的保證。
作為 Halo 2 零知識平臺的第一個發(fā)布, 這將使得未來的環(huán)形升級不需要信任設(shè)定的儀式成為可能, 使得 Zcash 匿名協(xié)議能更加敏捷的適應(yīng)未來的升級,比如發(fā)行其他的資產(chǎn)。
除此之外,當(dāng)前版本打開了聚合證明和區(qū)塊鏈簡潔之路, 這兩項擴展性的提升,使得 Zcash 協(xié)議能夠與時俱進。
1、一個 Zcash 協(xié)議功能提案
Zcash 中的 Halo 2 部署的第一階段引入了一個新的匿名交易協(xié)議, 這使得創(chuàng)建第一個匿名的轉(zhuǎn)賬能力不需要依賴與信任設(shè)定。
這個協(xié)議提供的功能,將會非常類似于來自 Sapling 版本提供的那樣,然而,憑證系統(tǒng)將使用 Halo 2 技術(shù)棧。
這個發(fā)布包含了新的橢圓曲線周期,Pallas 和 Vesta 周期, 他們一起被稱之為 Pasta 曲線。
Pasta 曲線, 一個新的加密結(jié)構(gòu),這是ECC持續(xù)努力的結(jié)果,以確保 Zcash 能夠從突破性的密碼學(xué)發(fā)明中盡可能地多收益,這些創(chuàng)新同時提高了安全性和性能。
Mir 協(xié)議 和 Mina 項目采用(之前的 Coda)已經(jīng)采用了 Pasta曲線, 并且 Mina 已經(jīng)為 Pasta 曲線在 Ledger 中集成,該集成已經(jīng)被提交給 Zondax,以用于將來的 Zcash Ledger 集成。
開始在賬本整合中派上用場,這已經(jīng)被提交到 Zondax 中,供未來 Zcash 賬本整合用。他們也被包含在 Arkworks Rust 庫中。
這個 ZIP 發(fā)布包引入一個一個新的匿名地址格式,使用 Pasta曲線,和一個新的匿名池。
這個協(xié)議設(shè)計的特性和匿名特性是故意和 Sapling 版本保持同一,目的是為了限制技術(shù)上的風(fēng)險,并且簡化用戶體驗和易用性。
在新協(xié)議和實施準(zhǔn)備就緒之前,將委托第三方進行審核,以增強對新協(xié)議和實施安全性的信心。
2、匿名池
如果這個協(xié)議被激活, 這個 ZIP發(fā)布將會為 Zcash 創(chuàng)建第三個匿名池,為了表示我們 Zk-SNARK 技術(shù)棧的連貫性,第一個匿名池被稱為 Sprout, 第二個匿名池被稱為 Sapling。
新的匿名池將會被一個匿名池十字旋轉(zhuǎn)門保護著,正如這個旋轉(zhuǎn)門的之前是為了在Sprout 和 Sapling 池之間過渡的那樣。
我們將逐步淘汰舊的匿名池,這樣的設(shè)計就使得我們可以部署新的匿名技術(shù)時,將秘密學(xué)和工程上的風(fēng)險降到最低。
這鼓勵我們遷移到一個無信任的證明系統(tǒng)當(dāng)中,增強了人們對于Zcash 供應(yīng)量合理性完整性的信任,同時降低了實現(xiàn)的復(fù)雜性以及 Zcash 的攻擊面。
在 Canopy 網(wǎng)絡(luò)升級過程中, 我們部署了 Zip 211,禁用往舊的 Sprout 匿名池中增加新幣的功能。
類似的,在 Zip224 被激活之后,未來有新的網(wǎng)絡(luò)要升級,我們的意圖是部署 ZIP219,也會類似的禁用往舊的 Sapling 匿名池中添加新幣功能。
當(dāng)前這個 Sprout 匿名池往 -To-Sapling 匿名池遷移的工具將會被升級,從激活之后起將支持從 Sprout 匿名池到 Halo 匿名池的遷移,也支持從 Sapling 匿名池到 Halo 匿名池的遷移。
3、減少元數(shù)據(jù)泄露
考慮到 Sprout 和 Sapling 升級的過程中的一些經(jīng)驗, 當(dāng)前這個zip包含了一些改變,目的是為了減少一部分未加密交易過程中元信息的泄露。
這一功能通過將輸出和花費合并到一個互相無法區(qū)分的動作中,是通過對一個交易中的所有動作使用一個單一的錨來實現(xiàn)的。
4、Zcash 未來憑證
在 Sapling 版本中,當(dāng)前激活的協(xié)議是 Grouth16, 最小但卻是最高效的可驗證的零知識證明構(gòu)造。當(dāng)前 Zcashd 中,這些證明容量小于 200 byte,單獨驗證一筆交易大約需要 7-10 毫秒。
對于我們當(dāng)前使用的網(wǎng)絡(luò)規(guī)模來說已經(jīng)足夠了,這個驗證時間在網(wǎng)絡(luò)延遲噪聲容限內(nèi)。
然而,即使在某種程度上,這還是不夠的,尤其考慮到 Zcash 擴展性的一些使用場景當(dāng)中,比如 UDA 用戶自定義資產(chǎn)這個情景中。
當(dāng)我們討論,Zcash 中可接受的驗證時間和交易容量大小時,數(shù)量級并不是成敗的關(guān)鍵,然而我們需要的憑證是即能支持技術(shù)上的擴展性和可編程性,比如在憑證中承載數(shù)據(jù)。
這些技術(shù)允許憑證匯總在一起處理,并攤銷憑證驗證時間。從而使得每個交易的驗證成本和交易容量大小以指數(shù)級減少。除了非常有限的情況之外,我們現(xiàn)有的憑證無法支持上述所有這些技術(shù)。
而我們在 Halo2 上實現(xiàn)的東西,不僅僅支持上面的這些技術(shù)操作,而這些操作是實現(xiàn)擴展性必不可少的工具,但是甚至是沒有這些工具的情況下,我們現(xiàn)行憑證的大小和單一憑證的驗證時間依然足以應(yīng)對 Zcash 在短期內(nèi)的使用。
通過移除對于初始信任設(shè)置的需要,當(dāng)前 Zip 包即緩解了人們對于初始設(shè)定流程安全的擔(dān)憂,也確保了在將來任何新的變動都不再需要這個 MPC 的信任設(shè)定儀式,比如引入 UDA (用戶自定義資產(chǎn),即發(fā)行新的 Token)特性。
這一特性使得這些更新將很容易在 Zcash 網(wǎng)絡(luò)中實現(xiàn), 同時還會降低未來升級的成本和風(fēng)險以及時間。與當(dāng)前的 Groth16ping 憑證相比,Halo依賴于更弱復(fù)雜性更低的密碼學(xué)假設(shè),后者依賴于基于配對的密碼學(xué)。
即使沒有緊急的原因使得我們對于 Zcash 網(wǎng)絡(luò)當(dāng)前使用的 BLS12-318 配對協(xié)議產(chǎn)生擔(dān)憂,但是能夠使用更低安全性的假設(shè)是歡迎的。
Zcash 的擴展性的實現(xiàn),需要對 Zcash 當(dāng)前彼此相關(guān)的協(xié)議進行大規(guī)模的重新設(shè)計,而不僅僅是在 Zcash 上實現(xiàn) Halo 2那么簡單。
Halo 2 將成為設(shè)計這些協(xié)議的核心組件。在不久的將來,我們將會利用 Halo 2 的特性通過交易聚合的方式去,減少鏈上帶寬和驗證時間。
最終,這些特性還可以使我們實現(xiàn)一個完全簡潔的區(qū)塊鏈,實現(xiàn)近乎實時的同步,對于輕量級客戶端提供全節(jié)點級別的安全保證。
5、性能
從開發(fā) Halo2 的那一刻起,我們就一直在努力的做著,以確保我們可以解決擴展性上的挑戰(zhàn)以及移除信任設(shè)置,同時不會以任何有意義的方式降低性能。
從計算方面講,我們相信 Halo 2 和Sapling比也有競爭力,甚至可能優(yōu)于Sapling,即使交易量會更大。
此外,Halo 2 的積聚以及聚合功能,將使得我們在未來的可擴展版本中大大降低交易體積。
Halo 2 在匿名交易的構(gòu)建相比于使用Groth 16憑證系統(tǒng)構(gòu)而言會看起來有一點不同。Halo 2 無需像Groth 16 那樣對每一個花費和輸出描述創(chuàng)建幾個單一的憑證,而是并行的創(chuàng)建所有的憑證,因此他們可以分?jǐn)偨灰左w積和花費的時間。
只有單一憑證的交易粗略的計算有幾 kb 大小,但是額外的憑證材料的邊際大小要小的多,邊際驗證時間微不足道。
上述的這種匿名交易中可以包含數(shù) kb 的備注數(shù)據(jù),這并不意味對交易大小有顯著的增加。單個線程驗證一個單獨的交易需要30毫秒的時間,對于單個憑證驗證而言,比 Groth16 差一些。
但是與需要大量串行操作的 Groth16 憑證不同,我們的憑證完全可以并行的驗證,并且可以根據(jù)可用線程數(shù)進行擴展。
Halo 2 中 只要 3-4 個線程并行處理,這個時候的性能接近 Groth16 的水平了,如果有更多線程,那 Halo 2 在 Zcash 網(wǎng)絡(luò)中的表現(xiàn)會更加的優(yōu)異。
6、具體實現(xiàn)
我們將針對不同類別用戶加以說明,通常來說, 對于所有類型的使用者來說, 這個特性的升級增加了新的錯誤或者未預(yù)料到的設(shè)計上的瑕疵的風(fēng)險, 這對于任何網(wǎng)絡(luò)升級功能都是如此。
此外,由于 Sapling 仍將是活動池,因此在激活包含 ZIP 224 的網(wǎng)絡(luò)升級時,不需要任何特定的操作項目即可繼續(xù)使用 Sapling 地址或與 Sapling 匿名地址集成,而不是升級到 Zcashd 的支持版本或我們的移動錢包 SDK 。
那些直接依賴 Zcashd 或我們的錢包 SDK 的用戶,以及對最終用戶體驗沒有復(fù)雜需求的用戶,應(yīng)該有一個相對簡單的實現(xiàn)。
(1)對于礦池運營人員
為了使用 新的 Zip224 的地址作為新的匿名地址, 運營人員僅僅需要在生成地址的時候響應(yīng)的添加 -mineraddress 這個參數(shù)就行。
對于那些使用新的 Zip224 匿名地址作為收款人時,礦池運營人員不需要做任何改變即可發(fā)送。
(2)錢包供應(yīng)商
那些使用我們 SDK 的錢包供應(yīng)商,比如 NightHawk 和 Unstoppable 版本的人來說,只需要升級一下對應(yīng)支持的版本就好,將會自動獲得 Zip224 新發(fā)布的特性。用戶界面代碼中需要進行其他工作以容納ZIP 224地址。
(3)交易平臺和硬件錢包用戶
交易所比如 Gemini 這樣支持 Sapling 版本匿名提現(xiàn)地址的,將需要添加對 Zip224 格式地址的支持。Zondax 方面也需要對于 Ledger 整合的支持,然而 Mina 方面已經(jīng)為使用 Pasta 曲線的項目做了支持,這將有助于 Zondax 的工作。
(4)開發(fā)者方面
ZIP 224 的實施得益于 ECC 的密碼學(xué)工程專業(yè)知識,這是通過多個部署級別的 ZKP 技術(shù)產(chǎn)生的。
結(jié)合 ECC 在匿名地址錢包的 SDK 所作的努力, 我們相信這個更新的技術(shù)將會比當(dāng)前 Zcash Sapling 版本的部署和整合上更加容易。
(5)當(dāng)前 Zec 持幣用戶
對當(dāng)前 Zec 持有人可以使用上文中提到的遷移工具或者現(xiàn)在在用的那個標(biāo)準(zhǔn)的轉(zhuǎn)賬機制將它們的資金遷移到新的匿名池中。
(6)區(qū)塊鏈瀏覽器
區(qū)塊瀏覽器必須更改他們處理 Zcash 總供應(yīng)量計算的方式,并相對應(yīng)的解析和顯示有關(guān) ZIP224 轉(zhuǎn)賬的詳細(xì)信息。
熱點:區(qū)塊鏈 數(shù)據(jù) pi 錢包 交易平臺