未來已來,以太坊擴容終章ZK Rollups解讀

本文約3509字,閱讀全文需要約5分鐘
以太坊創始人V神說:短期內Optimistic-Rollups會因為EVM的兼容性勝出,ZK-Rollups更有可能在一些簡單的交易之類的用例中勝出,從中長期來看,隨著zk-SNARK技術的改進,ZK-Rollups 最終會贏得所有的用例。

ZK-Rollups:基於零知識證明的 layer 2 擴容方案

未來已來,以太坊擴容終章ZK Rollups解讀

與詐欺證明[ 1 ]不同, Zk-Rollup 採用的是有效性證明,利用零知識證明確保交易的有效性,在數據上鏈前就通過零知識證明對數據進行驗證,先證明這個交易是沒有問題的,然後再把更新後的狀態,對交易的證明以及壓縮後的交易數據傳到主鏈上,以此確保對應數據在鏈上的有效性和資金的安全性。

Zk-Rollup 的安全性依賴於密碼學原理,它的一個主要優點是不需要挑戰期[ 2 ]。

目前 Zk-Rollup 的通用運算能力較差,已經上線的版本大多只能實現轉帳和特定的應用場景,對開發人員不友善。現在有些最新的 Zk-Rollup 方案研究與通用 EVM 相容的L2擴容方案,如果成功的話意義還是很大的。

Zk-Rollup 更符合加密世界的風格,透過密碼學原理來證明交易的正確性而不是等著別人舉報不正確的交易。

零知識證明

未來已來,以太坊擴容終章ZK Rollups解讀

零知識證明是密碼學概念,也被人稱作零洩密證明,由證明者和驗證者組成。

證明者需要運行在專門的硬體上,是去信任化的,也就是說系統的安全性不需要假設證明者是值得信任的,或者說假設它們所運行的硬體是值得信任的,因為數學上沒有辦法偽造假的零知識證明。

驗證者不需要專門的硬件,任何節點都可以運行,通俗地說,證明者從系統的輸入中創建證明,驗證者檢查確認證明者上傳的是真實的計算結果而不需要重新再計算一遍。

用一句帶有哲學意味的話來說就是,我如果想證明某個比特幣帳戶是我的,我想要證明我知道這個帳戶的私鑰,但是不能夠把私鑰告訴別人。 (私鑰簽名,公鑰驗證)

未來已來,以太坊擴容終章ZK Rollups解讀

zk-SNARK

未來已來,以太坊擴容終章ZK Rollups解讀

區塊鏈中用的比較多的是zk-SNARK,這是一種特殊的零知識證明,要求是非交互性(之前零知識證明驗證比特幣的例子就不是非交互性,要改成非交互性的話就是我發布一個轉帳交易,把帳戶上的幣轉到另一個帳戶就可以了,這樣所有節點都可以驗證這個比特幣帳號是我的,對於區塊鏈場景來說,證明者只需要把消息發佈到區塊鏈上,所有節點都可以驗證,不需要與證明者交互,這種驗證者叫做Public Verifier)和簡潔性(只需要幾百個字節,即使原始輸入很大,生成證明也是很小的)。

缺點是證明者產生證明的工作量是很大的,轉帳的時候發起一個匿名的轉帳交易需要幾秒鐘的時間,而驗證這個交易的合法性只要幾毫秒。

zk-SNARK 需要進行信任設置,要求初始化時隨機產生一組所有成員共享的公共參數,初始化時用到的隨機源必須要銷毀掉,如果洩露的話安全體係就崩潰了,有惡意的攻擊者可以製造出假的證明,為了避免這個風險,zk-SNARK 的初始化過程是多方參與的,只要其中任何一方銷毀了初始化時所用到的隨機來源,系統就是安全的。

zk-SNARK 在區塊鏈中的應用

未來已來,以太坊擴容終章ZK Rollups解讀

未來已來,以太坊擴容終章ZK Rollups解讀

代表性應用一個是 Zcash,另一個是 Filecoin,這兩個項目並不是L2,這裡只是用它們來說明 zk-SNARK 的應用場景。

Zcash 用 zk-SNARK 來隱藏交易訊息,交易雙方的身份和交易金額,Zcash 可以在不知道 sender.address、receive.address、iuput.value、out.value 的情況下驗證交易的合法性。這跟比特幣是很不一樣的,比特幣的每筆交易都要說明幣的來源,說明這個幣是從之前的哪個交易裡來的,這樣才能證明我們花到的這個幣是合法的,不是憑空捏造出來的。對 Zcash 來說只要用數學的方法證明你花掉的幣是當前系統中存在的某個合法的幣就行,不用說明具體是哪一個,這樣就沒法追蹤幣的來源了。

Filecoin 是迄今為止部署規模最大的 zk-SNARK 網絡,每天產生數百萬個零知識證明。 Filecoin 的礦工透過儲存數據來獲得出塊獎勵,需要定期證明它們在儲存所承諾的數據,這些礦工是zk-SNARK 協議裡的證明者,需要提供兩類證明,複製證明[ 3 ]和時空證明[ 4 ]。

複製證明只有一次,當用戶和存儲提供者最初達成存儲交易的時候,存儲提供者需要證明它們確實存儲了用戶的數據,時空證明需要定期提供,用於證明存儲提供者隨著時間的推移繼續存儲原始數據,儲存提供者首次同意為客戶儲存資料時需要質押相應的代幣File,如果在協議期間提供者未能提供時空證明,將會受到處罰,可能失去質押的File 代幣。

zk-SNARK 技術的優點在於產生的證明很短,節省網路頻寬,驗證速度快,Filecoin 並沒有實現真正意義下的隱私計算,zk-SNARK 只是用於Filecoin 的共識機制,並沒有用於用戶數據,到目前為止幾乎所有的zk-SNARK 電路都是專用積體電路,也就是根據不同的應用專門客製化的零知識證明技術,以太坊的智慧合約是圖靈完備的,zk-SNARK 技術目前還無法實現通用智能合約。

ZK-Rollup 代表項目

未來已來,以太坊擴容終章ZK Rollups解讀

未來已來,以太坊擴容終章ZK Rollups解讀

ZK Rollup 有兩個代表性的項目,zkSync 和 STARKWARE。

zkSync

zkSync 使用zk-SNARK 的零知識演算法,安全性依賴於初始化信任設定(由包括以太坊創始人V神在內的一些參與者一起制定一個隨機數,要求至少有一個參與者是誠實的,那麼這個系統才可以被證明是安全的)。

在 EVM 相容方面,zkSync 有一個編譯器可以把智能合約轉換成 zkEVM 支援的操作碼來實現 Solidity 相容。

在資料可用性上,zkSync 提供了兩種資料可用性方案,使用者可以選擇將資料上鍊(也就是儲存在L1的鏈上或說儲存在以太坊上以獲得更高的安全性,同時需要支付比鏈下高一些的gas 費),用戶也可以選擇將資料儲存在鏈下(可以更大限度地擴容,進一步節約gas 費,但是會犧牲一部分去中心化和安全性)。也就是說zkSync 同時支援鏈上,鏈下兩種資料儲存模式,有人認為鏈下資料不是真正意義上的L2,因為L2要確保和L1一樣的安全性,如果資料儲存在鏈下,可用性跟L1是有差別的,如果儲存在鏈下的雲端服務供應商處,那麼跟去中心化的理念背道而馳,如果存在IPFS 那樣的去中心化儲存裡,那麼仍然沒有辦法保證資料的可用性(存在IPFS 裡跟存在以太坊上是不一樣的),以太坊比特幣這樣的區塊鏈,保存在上面的數據是不會丟失的,但是IPFS 並不保證不可篡改性。

StarkWare

目前市面上最主流的兩種產生零知識證明的系統分別是 zk-SNARK 和 zk-STARK。

zk-Sync 採用的是 zk-SNARK,StarkWare 是基於 zk-STARK 證明的密碼技術。 zk-STARK 這項技術由StarkWare 團隊發明,可視為zk-SNARK 技術的升級版本,能夠讓區塊鏈具備更強的可擴展性,採用該演算法的區塊鏈底層允許開發人員將鏈上的交易資料以及部分資料的儲存轉移到鏈下來解決,鏈下批量處理後的資料可以打包產生一個STARK 證明,將證明發送到鏈上後可以供任何利益相關方驗證真偽。 STARK 跟zk-Sync 使用的SNARK 相比有三個主要優勢,第一個優勢是透明性,指這個系統運行無需信任設置,而SNARK 證明是需要進行信任設置的,使用zk-SNARK 必須進行強制性的初始信任設置,如果初始設置的參與者是不誠實的,那麼可以創造出虛假證明偽造交易,而zk-STARK 不需要外部的信任設置,它通過隨機公共驗證可以防止任何一方破壞或修改參數,這個優勢有多少實際價值還不清楚。 (肖老師認為這個優勢意義不大)

第二個優點是擴展性, StarkWare 宣稱 zk-STARK 降低了計算複雜度,產生 STARK 證明的速度比 SNARK 更快,不過這個說法有一定的爭議。

第三個優點是抗量子攻擊,理論上說 zk-STARK 使用抗衝突的雜湊函數提高了抵禦量子攻擊的能力,這個優勢意義不大。

STARK 的缺點在於它的技術遠不如SNARK 成熟,普及率也不行,StarkWare 這個公司的優勢在於技術團隊極為小,包含STARK 和SNARK 這兩個技術的發明人,缺點就是社區生態還差得很遠,這也跟STARK 的普及率不足有關。

另一個問題是EVM 的兼容性,以太坊的EVM 是圖靈完備的,而STARK 如果要實現圖靈完備就很難做到跟EVM 相容,以太坊的智能合約語言Solidity 要轉換成STARK 相容的格式是很複雜的,所以說StarkWare 團隊創建了一種特定的程式語言Cario 來運行由STARK 支援的程序,Cario 這種語言的學習成本比較高,而且不相容EVM,導致以太坊上現有的Dapp 很難移過來,這也是StarkWare 生態不容易做起來的原因之一。從另一個方面來看,採用一門全新的語言也有好處,沒有歷史包袱,可以實現一些以太坊無法做到的功能。

在資料可用性方面,StarkWare 提供了兩種資料可用性方案,StarkWare 有一個 Voluation 系統,允許使用者自主選擇每筆交易是採用鏈上資料可用的 Rollup 方案還是採用鏈下資料可用的 validium 方案。

validium 方案的資料可用性委員會由一些有聲望的加密實體組成,從資料安全性角度來講,資料儲存在鏈上是最安全的,缺點是代價比較高,適合資金量比較大,即時性要求不高的情況;資料儲存在鏈下會犧牲一定的安全性,優點是代價小,適合資金量比較小,即時性要求高的應用場景,比如說:GameFi。

名詞解讀

詐欺證明:在分散式系統中,詐欺證明用於檢測和糾正不正確的狀態更新,通常在Optimistic Rollups 中使用,假設大多數操作是正確的,但提供了一種機制來挑戰和糾正錯誤的操作。

挑戰期:挑戰期是一個指定的時間窗口,允許驗證者檢查並確認狀態更新的正確性,這在確保系統的安全性和公平性方面至關重要。

複製證明:複製證明顯示某個資料在某個時間點確實被儲存在指定的位置,並且複製了多份。

時空證明:時空證明是一種結合空間(儲存)和時間(持續儲存)的證明機制,表示某個資料在一段時間內持續被儲存。

結語

2021 年1 月份,以太坊創始人V神說:短期內Optimistic-Rollups 會因為EVM 的兼容性勝出,ZK-Rollups 更有可能在一些簡單的交易之類的用例中勝出,從中長期來看,隨著zk-SNARK 技術的改進,ZK-Rollups 最終會贏得所有的用例。

鏈源科技是一家專注於區塊鏈安全的公司。我們的核心工作包括區塊鏈安全研究、鏈上資料分析,以及資產和合約漏洞救援,已成功為個人和機構追回多起被盜數位資產。同時,我們致力於為產業機構提供專案安全分析報告、鏈上溯源和技術諮詢/支援服務。

感謝各位的閱讀,我們將持續專注分享區塊鏈安全內容。

原創文章,作者:PandaLY 链源科技。轉載/內容合作/尋求報導請聯系 report@odaily.email;違規轉載法律必究。

ODAILY提醒,請廣大讀者樹立正確的貨幣觀念和投資理念,理性看待區塊鏈,切實提高風險意識; 對發現的違法犯罪線索,可積極向有關部門舉報反映。

推薦閱讀
星球精選