概要
要想成功解決公鏈的可擴展性問題,不只是要提高交易吞吐量。所謂的可擴展性,就是系統要能夠在滿足數百萬用戶的需求的同時不以去中心化爲代價。而密碼學貨幣能大規模普及的前提條件是速度快、費用低、用戶體驗流暢,並且能保護隱私。
在沒有技術突破的情況下,現有的可擴展性解決方案不得不在一個或多個條件上做出重大妥協。幸運的是,零知識證明技術的最新進展爲我們帶來了更多新的解決方案。
如今,我們 Matter Labs 團隊要滿懷激動地宣告 ZK Sync 的願景:基於 ZK Rollup 的免信任型可擴展性和隱私性解決方案, 旨在帶來絕佳的用戶和開發者體驗。我們還要驕傲地宣佈 ZK Sync 的開發者測試網絡已上線。
ZK Sync 旨在將以太坊上的吞吐量提高到像 VISA 那樣每秒可達幾千筆交易,同時又能確保資金像存儲在底層賬戶那樣安全,並維持較高水平的抗審查性。該協議的另一個重要方面是延遲性極低:ZK Sync 上的交易具有即時經濟確定性。
我們認同精益設計理念,並支持以循序漸進的方式推進協議,按順序逐一引入各個功能,讓每個步驟都能爲用戶帶來最實際的價值。這就是爲什麼我們從最基礎的部分(安全性)開始,首先聚焦於基礎可擴展性(代幣轉移),然後是可編程性(智能合約),最後是隱私性。
ZK Sync 特性一覽:
- 嚴格持平於 L1 的安全性
- VISA 級別的吞吐量
- 亞秒級交易確認速度
- 抗審查,抗 DoS 攻擊
- 隱私保護型智能合約
區塊鏈擴容的最大挑戰
**
**
實際上,密碼學貨幣的最主要用途依然是投機。 在沒有得到真正的普及之前,互聯網貨幣、DeFi 、Web 3.0 等區塊鏈概念的價值主張在很大程度上都無法實現。可擴展性指的不僅是交易吞吐量,還有區塊鏈系統是否能夠滿足數百萬用戶的需求。我們來看一看將區塊鏈革命推向大衆所面臨的三大挑戰。
挑戰一: 保持去中心化
要想在現實生活中推廣區塊鏈,目前去中心化程度最高的區塊鏈的交易處理量還差了一個數量級。比特幣網絡每秒能處理 7 筆交易,以太坊網絡每秒能處理 15 筆交易——而 VISA 平均每秒能處理 2000 筆交易之多。但是,對於比特幣和以太坊而言,低效是一種特色,而非缺陷!只要減少驗證者的數量,就能輕而易舉地加快交易處理速度。作爲兩大頂尖區塊鏈網絡,比特幣和以太坊上大量的全節點是它們最重要的資產。因此,這就爲區塊鏈帶來了強韌性,從根本上將其與現有金融機構區別開來。另一個熱門的擴容方案就是,要求每個驗證者只驗證一部分相關的區塊鏈流量,而非全部流量。但這難免會引入另外的信任假設,系統所依據的博弈論基礎也會變得極爲脆弱。
挑戰二: 實現隱私性
大多數人都不會喜歡在衆目睽睽之下轉移大量財富。如果會立馬暴露自己擁有多少錢的話,動盪地區——例如,委內瑞拉——的居民不可能願意用密碼學貨幣來付錢。如果付款之時有可能暴露自己的真實身份,生產或消費成人內容(如,小黃書)的人就不可能使用加密貨幣來代替 Paypal 。此外,在不具備鏈上保密性的情況下,《通用數據保護條例》(GDPR)和《 2018 年加州消費者隱私法案》(CCPA)之類的隱私條例會促使普通企業從公鏈轉向更加中心化的支付和金融中心,讓我們這個日益無現金化的社會變成一場監視噩夢。隱私性是普及區塊鏈的必備條件。但是在公鏈上很難實現隱私性,原因如下:
- 隱私性必須是協議的默認配置。引用 Vitalik Buterin 的話來說,“如果隱私模型的匿名集是中等大小,實際上就只有很小。如果隱私模型的匿名集很小,實際上就約等於沒有 。只有全球化的匿名集纔是真正強健可靠的。”
- 要讓隱蔽交易成爲大家的默認選擇,隱蔽交易的交易費用必須非常低,但是,在技術上,隱蔽交易必將帶來高昂的計算成本。
- 隱私模型必須具有可編程性,因爲現實世界的用例不僅限於轉賬:還需要賬戶恢復、多籤和消費限額,等等。
挑戰三: 達到預期的用戶體驗
現實是很殘酷的:產品經理都很清楚,用戶向來喜歡更輕鬆、更輕量級的體驗,能夠立即帶來滿足感,卻會忽略長尾風險。要想誘使用戶從熟悉的事物切換到新事物,這需要非常強大的力量。對於一些人來說,密碼學貨幣的價值主張(徹底的自主產權、抗審查性和健全貨幣)就已經足夠有吸引力了。但是這部分人很可能已經入場了。密碼學貨幣若要實現當初的承諾,其用戶羣體的規模就算不用數十億,也要有數百萬纔行。如果要吸引數百萬的主流用戶,我們需要爲他們提供符合乃至超出這些期望的用戶體驗。我們必須一面提供全新的功能,一面保留人們已經習慣的傳統互聯網產品的所有便利屬性,即,快速、簡單、直觀且具有容錯性。
ZK Sync 的承諾: 免信任、保密、快速
**
**
本文會向大家解釋我們的架構、設計原則以及我們所提議的協議的良好特性。 當然解釋過程少不了對技術做一番說明。
1. 安全性: 紮根於 ZK Rollup
ZK Sync 是基於 ZK Rollup 的概念搭建的。簡而言之,ZK Rollup 是一種二層擴展方案,所有資金都存儲在主鏈上的智能合約內,計算和存儲則在鏈下執行。每創建一個新的 Rollup 區塊,就會生成一個狀態轉換的零知識證明(SNARK),並提交給主鏈上的合約進行驗證。這個 SNARK 包含了對 Rollup 區塊中所有交易有效性的證明。此外,每個區塊的公開數據更新都會作爲便宜的 calldata 發佈到主鏈上。這個架構提供以下保證:
- Rollup 驗證者永遠不能破壞狀態或竊取資金(不同於側鏈)。
- 即使驗證者不配合,用戶也可以追回 Rollup 上的資金,因爲 Rollup 具備數據可用性(不同於 Plasma ) 。
- 得益於有效性證明,無論是用戶還是可信第三方都不需要通過在線監視 Rollup 區塊來防止詐騙(不同於使用錯誤性證明的系統,例如,支付通道或 optimistic rollup )。這裏有一篇優質文章(編者注:中譯本見文末超鏈接《有效性證明 vs. 錯誤性證明》),深入探討了有效性證明相比錯誤性證明的壓倒性優勢。
換言之,ZK Rollup 嚴格繼承了底層鏈的安全保障。正是有了這種安全保障,再加上豐富的以太坊社區和現有基礎設施,我們才決定專注於二層解決方案,而不是試圖搭建自己的底層鏈。爲了更好地理解這一概念,請參閱我們在 ZCon1 和 Dappcon 上的演講,zeroknowledge.fm 上關於 Matter Labs 的播客,以及我們早期發佈的技術解釋帖。好奇心旺盛的讀者也可以閱讀這篇文章(編者組:超鏈接見文末《Optimistic vs ZK rollup,一探究竟》),來了解 ZK Rollup 和 Optimistic Rollup 之間的區別。在以太坊基金會的資助下,Matter Labs 在過去的一年以來都在研究 ZK Rollup 技術。自首個原型發佈以來,我們已經全部重寫了架構和 ZK 電路。最新的版本融合了我們從社區獲得的反饋,並實現了各種可用性和性能改進。總結:ZK Rollup
- 完全的免信任性
- 具備與底層鏈(以太坊)同樣的安全保障
- 第一次確認之後就具有由以太坊背書的確定性
**
**
2. 可用性: 實時交易
我們預計 ZK 證明技術的最新發展成果將縮短證明時間,將 ZK Rollup 區塊的出塊時間控制在一分鐘之內。一旦區塊證明被提交到主鏈上,並在 Rollup 智能合約中驗證通過,這個區塊內的所有交易都會得到最終確定,並且受到 Layer-1 抵禦鏈重組的能力保護。然而,就零售和線上支付領域而言,以太坊上僅僅 15 秒的區塊延遲也有些久了。我們如何才能做得更好?這個辦法就是:在 ZK Sync 中引入即時交易收據(instant tx receipts)。選擇參加 ZK Sync 區塊生產的驗證者必須向主網上的 ZK Sync 智能合約提交一筆可觀的安全保證金。由驗證者達成的共識會爲用戶提供亞秒級確認,確保其交易包含在下一個 ZK Sync 區塊內,並由絕大多數(2/3)的共識參與方簽署(按權益加權)。如果一個新的 ZK Sync 區塊被創建出來並提交到主鏈上,它是無法被撤回的。但是,如果這個區塊不包含已承諾的交易,則簽署過原始收據和新區塊的驗證者的安全保證金會被罰沒。這部分驗證者所質押的保證金必定超過總金額的 1/3 以上。也就是說,懲罰會覆蓋 1/3 乃至以上的安全保證金,而且只有惡意驗證者會遭受懲罰。被罰沒的金額中有一部分會用來補償交易接收者,剩下的會被銷燬。罰沒機制既可由用戶自己觸發,也可由任意簽署過原始交易收據的誠實共識參與方觸發。後者天生就有觸發罰沒機制的動機:如果他們參加下一輪區塊生產,可能也會遭到懲罰。因此,共識參與者中只要有一個是誠實的就足以檢測欺詐了。我們再細說一遍:在 ZK Sync 中,我們設計了一種零確認的交易模式,也就是讓一筆交易附帶一個即時交易數據,該收據會指向一個尚未發佈到鏈上的 ZK Sync 區塊。在區塊證明發布到主鏈之前,只有短短几分鐘的時間可以對 ZK Sync 上的零確認交易發起雙花攻擊。此外,惡意驗證者要想誘使用戶相信自己的交易已成爲零確認交易,得做好 1/6 的安全準備金被罰沒的打算。從買賣雙方的角度來看,零確認交易是:
- 即時的
- 存在逆轉的可能性,不過只在短短的幾分鐘之內
- 只有在同時而非逐個對上千個賣方發起攻擊的情況下才可逆
相比信用卡支付,ZK Sync 在用戶體驗和安全性上有很大提升!現在讓我們站在不同參與者的角度來看:
- 出售實物商品的線上商店會立即向用戶確認訂單,但是不會遭受攻擊,因爲賣家會等到完全確認之後再發貨。
- 實體店在交易量較少之時是幾乎不可能遭受攻擊的。即使你是以即時收據的形式來出售一臺 Macbook ,也要有數千名協調一致的攻擊者在不同的地點發起攻擊,還要依靠大多數驗證者串謀才能成功。
說得再深入一些。爲了量化風險,我們可以將保證金提供的經濟保證與 PoW 區塊鏈提供的結算保證進行比較(這裏可以參閱 Nic Carter 撰寫的一篇文章)(編者注:中譯本見文末超鏈接《別看 TPS》)。舉例來說,經過 35 個交易確認之後,Coinbase 纔會接收一筆以太坊資金存款。如果是通過亞馬遜雲服務租用 GPU 來發起 51% 攻擊的話,要持續攻擊 10 分鐘才能撤回這個交易,成本大約在 6 萬美元。假設安全保證金高達數百萬美元,撤回一個即時 ZK Sync 收據所需的成本會高得多。因此,這些即時收據的經濟確定性相比以太坊有過之而無不及。要注意的是,即時交易數據不會受到 ETH 區塊重組的影響,因爲這些收據的有效性與以太坊無關。此外,以太坊的結算保證與 ZK Sync 的結算保證是結合在一起的。總結:實時交易
- 亞秒級交易確認的經濟確定性堪比以太坊
- 幾分鐘之後就具有由以太坊背書的確定性
**
**
3. 活性: 抗審查性和抗 DoS 攻擊
擴展方案必然具備的一個屬性是,大多數用戶都無法參與所有交易的驗證。因此,所有二層擴展方案都需要專門設置一個角色(Plasma 和 Rollup 上的驗證者、Lightning hub,等等)。這類角色對於安全性和性能的要求較高,帶來了中心化和審查的風險。爲了解決這一問題,ZK Sync 在設計上引入了兩種不同的角色:驗證者和守護者。驗證者(Validitor)驗證者負責將交易打包到區塊內,併爲這些區塊生成零知識證明。他們要參與共識機制,因此必須繳納一筆安全保證金,才能創建即時交易收據。驗證者節點必須在網絡帶寬良好的安全環境中運行。或者,他們也有可能按自己心意在不安全的雲平臺上生成零知識證明。驗證者將獲得交易費作爲獎勵,是用被交易代幣來支付的(爲終端用戶提供最大程度上的便利)。爲了快速達成 ZK Sync 共識,驗證者的人數是有限制的(根據我們的分析,在 30 到 100 人之間比較合適)。但是別忘了,ZK Rollup 驗證者是完全免信任的。在 ZK Sync 上,惡意驗證者既不能破壞系統的安全性,也不能欺騙誠實的驗證者觸發罰沒機制。因此,不同於 optimistic rollup ,系統的守護者(Guardian)可以頻繁更換一小部分驗證者。與此同時,只要有 2/3 的提名驗證者是誠實且可進行操作的,就能確保滿足活性要求(liveness)。守護者(Guardian)大部分通過質押代幣份額來提名驗證者的 ZK Sync 持幣者會成爲守護者。守護者的目的是監控點對點交易流量,探測審查行爲,並確保不會提名那些有審查行爲的驗證者。爲了保護自己的質押物不被罰沒,守護者必須確保 ZK Sync 可以抵禦 DoS 攻擊、不會實施審查。雖然投票密鑰通常來說都是在線保存的,但是這不會給 ZK Sync 上的守護者帶來罰沒或盜竊的風險(所有權密鑰是冷存儲的)。守護者就可以選擇只監控一小部分流量。因此,守護者節點可以運行在普通的手提電腦或雲服務器上,也就是說,不需要提供專門的驗證者服務。守護者會獲得驗證者的費用作爲獎勵,是以 ZK Sync 原生代幣的形式發放的。其收益和押金會被鎖定較長一段時間,以此促進 ZK Sync 代幣的長期升值。總結:活性
- 兩種角色:驗證者和守護者,都受到交易費的激勵
- 由驗證者運行共識機制並生成證明
- 由運行在普通硬件上的守護者防止審查
4.1 RedShift: 透明的通用 SNARK
要實現基於零知識證明的智能合約(無論是透明的還是保護隱私的),最大的障礙就是缺乏一種通過遞歸組合實現的高效且通用的零知識證明系統(efficient generic ZK proof systems with recursive composition)。Groth16 曾是最高效的 ZK SNARK ,但它需要爲每一個應用專門啓動一套受信任初始化設置,而且在採用遞歸方式之時會很低效。另一方面,基於 FRI 的 STARK 需要高度專業化的構建技能,而且缺乏針對任意通用電路的高效遞歸組合。這也是我們開發 RedShift 的主要動機之一:從基於 FRI 協議的多項式承諾方案(polynomial commitment scheme)中衍生出一個透明、高效且簡潔的新型 SNARK 。我們目前正在進行同行評議和社區反饋,之後會將 RedShift 作爲一個核心部分部署在 ZK Sync 上。Redshift 是一種通用的 SNARK ,能讓我們將任意程序轉換爲可證明的 ZK 電路。異構電路(例如,不同的智能合約)可以通過遞歸的方式在一個 SNARK 中構成。RedShift 僅依賴於抗碰撞的哈希函數,因此可被認爲具有後量子安全性。總結:Redshift
- 透明的:不需要可信的設置
- 可被認爲具有後量子安全性:基於久經考驗的密碼學
- 通用的:適用於通用程序(這點與 STARK 相反)
**
**
4.2 Zinc: 零知識智能合約框架
在 ZK Sync 的可編程模型的設計上,我們致力於實現以下幾大目標:
- 高度可擴展性
- 支持公開的智能合約和私密的智能合約
- 最重要的一點:平緩的學習曲線和簡單的開發過程
很多優秀的項目都實現了其中幾個目標,但是至今沒有一個項目能夠實現上述所有目標。例如,ZkVM 提供了一個用於通用智能合約的虛擬機,但是是基於防彈協議(bulletproof)的,而且不支持簡潔證明聚合。ZEXE 具有絕佳的隱私保護設計,但是需要深入理解零知識證明電路的具體細節和權衡關係,因此對程序員來說門檻很高。其他較爲簡單的零知識證明編程框架則缺少表達性以及安全的智能合約開發所必需的功能。因此,我們決定創建 Zinc ——一種安全、簡單且高效的編程框架和基於虛擬機的運行時環境,專爲基於零知識證明的智能合約而設計。SyncVM 的設計優先級主要是安全性和開發者友好性。定義合約的編程語言嚴格遵循簡化的 Rust 語法,並從 Solidity 和 Libra 的 Move 中借鑑了智能合約的編程元素。開發者並不需要深入瞭解零知識證明領域的技術細節即可編寫出高效且安全的程序。實際上,凡是具備 Rust、Solidity 和 C++ 等編程語言背景的開發者只需要一天時間就可以弄懂 Zinc 。用 Rust 爲 Bellman 框架編寫一部分程序(ZEXE 採用類似的應用程序界面)和爲 Zinc 編寫同樣的程序對比如下:Zinc 的 0.1 版本將在 2020 年 1 月上線。總結:Zinc
- 具備安全性和表達性的編程框架
- 以委託的方式生成零知識證明的沙盒式虛擬機
- 聚焦於易開發性:Solidity 程序員只需要花一天時間學習
**
**
ZK Sync 0.1 版本開發者網絡上線!
**
**
ZK Sync 0.1 版本的開發者網絡上線。 該版本僅限於在單個運營者環境中進行 ETH 和 ERC20 的代幣轉賬。查看 ZK Sync 的軟件開發工具包在 Github 上瀏覽代碼體驗 demo 上線 0.1 版本的開發者網絡是實現 ZK Sync 願景的第一步。未來還需要進行很多研究、實驗和開發工作。在我們瞭解並吸收反饋的過程中,一些設計部分可能會發生變化。但是我們保證,ZK Sync 會將數百萬用戶引入密碼學貨幣世界,這一願景是不會改變的。我們爲設定了很高的用戶體驗標準,並將證明零知識證明技術能夠在不犧牲區塊鏈價值觀的情況下提供類似於 Web 的體驗。你可以關注 Matter Labs 的推特、公開的 Telegram 頻道或是訂閱我們偶爾更新的新聞推送。如果你想要爲 ZK Sync 的開發做貢獻的話,請與我們聯繫。我們正在尋找優秀的工程師和密碼學家加入我們的團隊。
(完) (文內提供了許多超鏈接,請點擊閱讀原文到 EthFans 網站上獲取) * * * **原文鏈接 :** https://medium.com/matter-labs/introducing-zk-sync-the-missing-link-to-mass-adoption-of-ethereum-14c9cea83f58 **作者 :** Alex Gluchowski **翻譯 & 校對 :**閔敏 & 阿劍 * * * **你可能還喜歡:**
科普 | Layer-2 中的有效性證明與錯誤性證明
乾貨 | Optimistic Rollup vs. ZK Rollup:一探究竟,Part-2
觀點 | 別看 TPS,看交易結算的保證