BTC
ETH
HTX
SOL
BNB
查看行情
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

zkPorter:Layer-2的可組合可擴展性

以太坊爱好者
特邀专栏作者
本文約6859字,閱讀全文需要約10分鐘
zkPorter 使用了一個結合zkRollup 理念和分片理念的混合方法來解決數據可用性問題。
AI總結
zkPorter 使用了一個結合zkRollup 理念和分片理念的混合方法來解決數據可用性問題。

編者按:本文來自以太坊愛好者(ID:ethfans)以太坊愛好者(ID:ethfans)

摘要

以太坊愛好者(ID:ethfans)

一級標題

摘要

以太坊愛好者(ID:ethfans)

一級標題

摘要

,作者:Alex Gluchowski,翻譯:阿劍,Odaily經授權轉載。

摘要

我們提出了一種新的Layer-2 可擴展技術“zkPorter”,可以將zkRollup 和分片結合在一個高度可擴展且原子化可組合(atomically composable)的區塊鍊網絡中。

交易吞吐量是用全網處理的總交易數量來度量的;而可擴展性是單個節點處理的交易數量。 zkRollup 可以被認為是滿足了安全性和有用性的終極Layer-2 擴展方案。 (編者註:見文末超鏈接《各以太坊Layer 2 擴容方案的評估對比》)但是zkRollup 相對於主網僅僅提供了約100 倍的可擴展性提升,因為交易數據還是需要廣播到所有全節點。有人可能會說,zkRollup 只是線性提升了吞吐量,但並沒有提供指數級的可擴展性。

二級標題

zkRollup 在Eth1 上的處理速度可達3000 TPS,但保守估計—— 取決於Eth2 實現的細節—— 在分片化的Eth2 上的處理速度至少是20000 TPS。相比於Visa 最高可達24k TPS 的吞吐量,這已經是個巨大的成就了,但因為我們想要幫助今天還不能享受到銀行服務的數十億人,我們還要爭取更多。

二級標題

介紹zkPorter 🎉

二級標題

二級標題

解釋zkPorter 🥜

二級標題

zkPorter 使用了一個結合zkRollup 理念和分片理念的混合方法來解決數據可用性問題。它可以支持任意多數量的分片,每一個分片都有自己的數據可用性方案(由該分片的智能合約來定義)。同時,對分片的選擇是在個體賬戶層面上控制的(The choice of the shard is controlled at individual account level)。

二級標題

二級標題

zkPorter 中的可組合性:打了激素的區塊鏈互聯網💊

那就讓zkPorter 來試試! zkPorter 裡面的所有賬戶都共享同一個地址空間,而且可以通過運行在zkPorter 中的基礎分片shard 0 上的zkRollup 與其它賬戶互操作。一個對流量有很高要求以及/或者特定數據可用性需求的協議可以將自己的協議接口放在自己(在zkPorter 中)的分片裡面。其中的安全性、成本和吞吐量權衡,我們下文再說。

二級標題

你可以把zkPorter 模式想像成打了zk 激素的區塊鏈互聯網。

二級標題

zkPorter 的Shard 0 就是一個zkRollup,有完整的數據可用性和以太坊的安全性保證。 Shard 0 會成zkPorter 內部運行的分片中最貴的一個,交易成本大約是主網交易的1/100。

二級標題

Shard 0 以外的分片會在自己的智能合約中定義自己的數據可用性方案。這些其它分片,犧牲了鏈上數據可用性,換來了進一步的10~100 倍的交易成本節約和吞吐量提升。 zkPorter 會引入一個可選的驗證者機制,我們稱之為“zkPorter 衛士”,它讓協議可以邀請協議的利益相關者作為協議分片的數據可用性保證人而參與進來。使用衛士機制的分片會運行一種權益證明共識機制,因此,只要1/3 的參與驗證者保持誠實,該分片的用戶就能隨時帶著自己的數據退出。

靈活的數據可用性就是zk Porter 的核心設計目標。允許了各協議自行設計方案,zkPorter 就能支持非常多不同的方案,可以適應每個人的需要。安全假設以受信任的中心化參與者作為保證人的應用可以實現權威證明共識機制。而帶有治理代幣的應用可以實現自己的權益證明共識機制來保護自己的分片—— 只不過要避免讓分片內的資金體量超過已鎖定的驗證者押金體量。糾刪碼(erasure coding)機制可以用於證明驗證者沒有刪除數據。比如,考慮到比特幣網絡相對比較簡單、交易數量也低,一個zkPorter 分片的驗證者完全可以在他們的分片內創造一個比特幣實現,運行基於工作量證明的中本聰共識。所有這些都可以與zkPorter 的衛士驗證者設置相結合,也都可以與之獨立運行。

二級標題

zkPorter 在一開始設計時就把擴展當成目標。 zkPorter 協議將每一個分片的數據可用性和有效性開銷降低到了一個很低的水平。增加新分片的邊際成本比起在基礎的zkRollup 上包含嵌套數據所引起的成本是對數級別的。這就讓zkPorter 可以高效地擴展到支持數億個賬戶。

  1. 最後,用戶的隱私可以得到零知識證明技術的保護。使用一個zkRollup 作為zkPorter 的基本元素有一個內在的優勢,就是狀態轉換的有效性是可以被證明的,而且可以不用公開這些交易的內容。

  2. 二級標題

架構🏛

一個分片的智能合約定義了自己的狀態轉換規則。當一個zkPorter 區塊被接受的時候,該塊會引起一次狀態轉換:一筆在Layer-1 上的交易會把默克爾根替換成新值。這筆交易必須驗證用於證明新值有效的零知識證明:即,要驗證該區塊中的每一筆交易都是有效的。

在zkPorter 中,每個分片的賬戶都必須存儲狀態樹的一棵獨立的子樹中。此外,每一個分片子樹都必須包含關於自身分片類型的信息,並引用定義其狀態可用性策略的智能合約賬戶。

所有會同時修改兩個及以上分片狀態的交易都必須用zkRollup 模式來執行。

二級標題

而所有其它僅會影響特定一個分片內賬戶的交易都可以用正常的分片模式來執行(我們稱之為“分片交易”)。如果一個區塊包含了分片S 內的一些分片交易,那必須遵循下述規則:

該分片配套的智能合約必須被調用來執行額外的要求(例如:驗證分片共識參與者的簽名)

二級標題

案例分析💼

我準備用4 個案例來展示zkPorter 的潛能,演示它是如何無縫組合不同的應用、同時擴展交易量來滿足每個應用的需要的。

二級標題

案例1:Reddit 社區積分

2020 年6 月,Reddit 啟動了The Great Reddit Scaling Bake-Off 計劃,讓各個社區有機會通過一個社區積分系統來主持自己的子論壇(subreddit),也讓各Layer-2 方案能一展身手。顯然,社區積分系統的解決方案必須是安全的、去中心化的和易用的,同時還能保持與其它第三方應用(錢包、合約)的互操作性,還有,能處理數以十萬計的交易。社區積分可以用zkPorter 來實現,有三種不同的方式。

為讓社區積分連接到以太坊主網,Reddit 可以直接在zkSync 上使用現有的zkRollup 功能。 zkSync 在Eth1 上可達到3000 TPS。假設所有5 億Reddit 月活用戶都踴躍參與。再假設平均每個用戶在每個月裡要發送一筆鑄幣交易、一筆銷毀交易(支付訂閱費用)和兩筆轉賬,則社區積分系統要求的平均負載是:

互操作性

5 億× 4 /(30×24×60×60) 約等於700 TPS

  1. 選項2:放到一個Reddit 專屬的分片上,由zkPorter 衛士來驗證

  2. 互操作性

  3. 第三種方法是, Reddit 可以選擇最大化交易吞吐量、最小化用戶成本,就是將Reddit 社區放到一個專屬分片上,同時使用一個定制化的數據可用性方案,而不用衛士機制。一種基於權益證明共識的可行方案是,基於社區驅動的數據可用性,再加上2/3 的多簽名機制(two-third multisignature)。

互操作性

交易成本在這種方案中會變成僅覆蓋零知識證明的生成所需的成本(在當前是每筆交易千分之一美元,在將來還將指數級下降)

二級標題

互操作性

容易地與其它分片上的智能合約互動,比如使用部署在zkSync 上的DeFi 協議(Curve on zkSync、Compound on zkSync,等等)來交易/出借/貸款

二級標題

把他們的社區積分轉移給一個zkRollup 分片上的用戶(以獲得最大的安全性)

快速取出他們的代幣到以太坊主網上,與zkSync 以外的智能合約互動

二級標題

案例2:智能錢包/密碼學貨幣銀行(Argent、Dharma、MyKey,等等)

這裡提供一種可能的實現方案,分3 個簡單的步驟。

步驟1:zkRollup 分片

步驟2:zkSync 衛士+ 錢包運營者分片

二級標題

在引入足夠多的新用戶之後,在zkRollup 上運營的成本可能會讓錢包運營者考慮開啟一個專屬分片。在上文的Reddit 部分中,我們就詳細講解過這種方案:把用戶基礎遷移到一個獨立的、由zkSync 衛士(在Reddit 的案例中是社區成員,在這裡可以是協議的參與者)和錢包運營者來保證其數據可用性。只要錢包運營者或者zkSync 衛士中的大部分沒有被攻破,分片就是安全的。這一選項也為錢包運營者的靈活手續費分享方案打開了可能性。

  1. 到了某一刻,錢包的用戶基礎可能會變得非常大,達到錢包需要遷移到一個由治理代幣來治理的分片上。這個分片仍會是zkSync 網絡的一部分,而且可以用zkRollup 模式訪問所有其它分片上的服務。

  2. 二級標題

還需進一步說明的是:隱私功能在上述任一步中都很容易實現。沒有零知識證明,就很難實現隱私性。但zkRollup 的好處就在於,賬戶可以即時獲得隱私性、大幅降低參與網絡的費用,而且無需犧牲安全性和去中心化。

二級標題

案例3:DeFi 協議和DEX(Loopring、IDEX、Curve、Coumpound,等等)

不僅如此,對於渴望支持高頻交易的去中心化交易所來說,單筆交易的費用必須盡可能小,因為吃下一個單需要非常高的交易數量。

孤立的可擴展性缺乏可組合性,或者說網絡效應。

隨著零知識證明技術的潛力完全展現,越來越多人意識到,零知識證明是大規模普及的關鍵。與此同時,ZKP 領域的創新速度很快,以至於要跟上節奏必須有自己專門的研究開發團隊。但是,如果不能很好地審計和實現複雜的密碼學算法,等待他們的可能是嚴重的安全漏洞。密碼學領域的黃金法則還是對的:不要閉門造車搞一套只有你自己知道的密碼學。

一級標題

  • zkPorter 就解決了這個問題。 DeFi 協議可以建立在先進的可擴展性技術和強大的網絡效應上,同時控制交易成本。要擁有這些,一個協議可以在zkPorter 內創建一個自己的分片,用協議代幣持有者的共識來保護它。這也為靈活的手續費共享(或者說手續費補貼)提供了機會。

  • 案例4:微交易(Brave、Livepeer、Storj,等等)

  • 一級標題

需要處理大量低價值轉賬(微交易)的協議可以實現一個類似於Validum 的分片(就是一個讓多個參與者的簡單多簽名來保證數據可用性的分片),讓交易手續費低到彌補零知識證明的生成成本即可(當前是每筆交易0.001 美元左右,預計在未來還將大幅降低)。

一級標題

前進的道路🛣

zkPorter 將作為zkSync 路線圖的一部分而初步實現。

开发者
ETH
歡迎加入Odaily官方社群