ZK Sync :以太坊普及的關鍵一環

買賣虛擬貨幣
概要要想成功解決公鏈的可擴充套件性問題,不只是要提高交易吞吐量。所謂的可擴充套件性,就是系統要能夠在滿足數百萬使用者的需求的同時不以去中心化為代價。而密碼學貨幣能大規模普及的前提條件是速度快、費用低、使用者體驗流暢,並且能保護隱私。 在沒有技術突破的情況下,現有的可擴充套件性解決方案不得不在一個或多個條件上做出重大妥協。幸運的是,零知識證明技術的最新進展為我們帶來了更多新的解決方案。如今,我們 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)之類的隱私條例會促使普通企業從公鏈轉向更加中心化的支付和金融中心,讓我們這個日益無現金化的社會變成一場監視噩夢。

隱私性是普及區塊鏈的必備條件。

但是在公鏈上很難實現隱私性,原因如下:

1. 隱私性必須是協議的預設配置。引用 Vitalik Buterin 的話來說,“如果隱私模型的匿名集是中等大小,實際上就只有很小。如果隱私模型的匿名集很小,實際上就約等於沒有 。只有全球化的匿名集才是真正強健可靠的。”

2. 要讓隱蔽交易成為大家的預設選擇,隱蔽交易的交易費用必須非常低,但是,在技術上,隱蔽交易必將帶來高昂的計算成本。

3. 隱私模型必須具有可程式設計性,因為現實世界的用例不僅限於轉賬:還需要賬戶恢復、多籤和消費限額,等等。

挑戰三:達到預期的使用者體驗


現實是很殘酷的:產品經理都很清楚,使用者向來喜歡更輕鬆、更輕量級的體驗,能夠立即帶來滿足感,卻會忽略長尾風險。要想誘使使用者從熟悉的事物切換到新事物,這需要非常強大的力量。對於一些人來說,密碼學貨幣的價值主張(徹底的自主產權、抗審查性和健全貨幣)就已經足夠有吸引力了。但是這部分人很可能已經入場了。密碼學貨幣若要實現當初的承諾,其使用者群體的規模就算不用數十億,也要有數百萬才行。
如果要吸引數百萬的主流使用者,我們需要為他們提供符合乃至超出這些期望的使用者體驗。我們必須一面提供全新的功能,一面保留人們已經習慣的傳統網際網路產品的所有便利屬性,即,快速、簡單、直觀且具有容錯性。

ZK Sync 的承諾:免信任、保密、快速

本文會向大家解釋我們的架構、設計原則以及我們所提議的協議的良好特性。當然解釋過程少不了對技術做一番說明。

1. 安全性:紮根於 ZK Rollup

ZK Sync 是基於 ZK Rollup 的概念搭建的。

簡而言之,ZK Rollup 是一種二層擴充套件方案,所有資金都儲存在主鏈上的智慧合約內,計算和儲存則在鏈下執行。每建立一個新的 Rollup 區塊,就會生成一個狀態轉換的零知識證明(SNARK),並提交給主鏈上的合約進行驗證。這個 SNARK 包含了對 Rollup 區塊中所有交易有效性的證明。此外,每個區塊的公開資料更新都會作為便宜的 calldata 釋出到主鏈上。

這個架構提供以下保證:

1. Rollup 驗證者永遠不能破壞狀態或竊取資金(不同於側鏈)。
2. 即使驗證者不配合,使用者也可以追回 Rollup 上的資金,因為 Rollup 具備資料可用性(不同於 Plasma ) 。
3. 得益於有效性證明,無論是使用者還是可信第三方都不需要透過線上監視 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 的安全準備金被罰沒的打算。

從買賣雙方的角度來看,零確認交易是:

1. 即時的
2. 存在逆轉的可能性,不過只在短短的幾分鐘之內
3. 只有在同時而非逐個對上千個賣方發起攻擊的情況下才可逆

相比信用卡支付,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)。Groth26 曾是最高效的 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 的開發做貢獻的話,請與我們聯絡。我們正在尋找優秀的工程師和密碼學家加入我們的團隊。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;