Rollup解決了Plasma等前輩在開發過程中發現的「數據可用性」問題,ZKRollup和OptimisticRollup方案成為了當前以太坊擴容改進的主力軍。讀懂ZKRollup和OptimisticRollup,從這篇開始。
撰文:潘致雄,鏈聞研究總監
以太坊在誕生后遭遇的最多質疑就是性能問題,在二層網絡解決方案Plasma幾乎全面潰敗后,前沿研究領域又將眼光放在了Rollup技術上。
當前以太坊鏈上交易的吞吐量約每秒可執行不到30筆交易,雖然接近比特幣的幾倍,但離大規模應用還有較遠的距離。相比之下,Visa或支付寶的交易處理能力的峰值至少每秒上萬筆。
加密貨幣經常被提及的一個用戶場景是「跨國匯款或支付」,采用鏈上發行的穩定幣USDT、USDC或PAX作為交易媒介,以目前以太坊每秒20多筆交易的性能,離滿足全球的需求還有很大差距。
另一個比較熱門的用戶場景是去中心化金融,3月12日「黑色星期四」期間,以太坊網絡在鏈上清算和交易的首次大規模壓力測試中,雖說勉強可用,但交易成本提高了數百倍。只有交易成本降到比傳統方式更低之后,區塊鏈才更有實用價值。
為了提升交易性能,以太坊設立了多個研究方向,第二層網絡解決方案Plasma曾是其中最重要的一個。但在過去2年多的發展中,研究人員逐漸發現Plasma以及改進版本PlasmaCash存在不少的問題,比如要求用戶定期上線以及數據可用性問題,制約了Plasma的發展。
在Plasma誕生的一年后,名為Rollup的技術浮出水面。基于此概念,還誕生了多個分支,最主流的是ZKRollup和OptimisticRollup兩個方案。
Rollup技術解決了之前Plasma暴露出的問題,提供了和以太坊Layer1相同的數據可用性和安全性,而且還能極大提高網絡的吞吐能力,同時降低單筆交易成本。正因如此,雖然很多人在廣義上稱Rollup為Layer2的技術,但事實上卻介于Layer1和Layer2之間。
Rollup是什么?
Rollup的核心理念其實很簡單,就是將原本散布在區塊中的大量交易數據,打包成一筆「濃縮」的交易,發布到鏈上。為確保其中每筆交易的有效性,各種Rollup方案設計了不同的機制以確保整個過程的安全性與Layer1保持一致。ZKRollup以零知識證明zk-SNARKs的密碼學技術確保安全性,而OptimisticRollup則繼承了Plasma的懲罰機制,以確保節點如果作惡將付出很大的代價。
交易所以太坊余額達766萬ETH,為11月15日以來新高:據歐科云鏈鏈上大師數據顯示,當前中心化交易所的以太坊余額約合766.94萬ETH,占以太坊供應量的6.51%,較月內低位增長67.03萬ETH,中心化交易所的以太坊余額升至11月15日以來新高。[2021/12/31 8:16:32]
當然,Rollup的各種方案都存在不同的取舍。比如,ZKRollup的缺點是支持通用型智能合約更難,而且「濃縮」數據的過程耗時較長;而OptimisticRollup的整體安全性略差一些。不過,各個開發團隊具體的實現方案,都針對性優化了上述的這些權衡,部分問題已有顯著改善。
Rollup技術將有助于提升鏈上應用的競爭力,特別是對于高頻交易的場景,有望降低轉賬或交易費用。不過由于本身機制的設計,相比直接的鏈上交易來說,Rollup類交易可能在鏈上的結算速度會慢一些。出于這個原因,Rollup的具體應用場景可以包括:
普通轉賬或支付提升匿名性的轉賬或支付去中心化交易所去中心化身份系統去中心化社交媒體Rollup概念出現還不到兩年,各個Rollup實現方案已經陸續上線了測試網,如MatterLabs和FuelLabs的方案,而應用層的產品也在開發之中,最先上線主網的是由路印Loopring開發的去中心化交易所,其他也宣布將采用Rollup的項目包括Synthetix、Dharma、AZTEC等。
接下來,我們更深入了解學習一下。
Plasma失敗了嗎?
關于區塊鏈擴容的討論起源于比特幣網絡,針對比特幣成為「全球支付工具」的愿景,社區、開發者和礦工最終討論出的一個方案是,將高頻的交易遷移到比特幣之外的一個虛擬層中進行,或可以稱為「Layer2」,而不是依賴于比特幣自身,不過,最終的結算還是需要依賴Layer1進行。
這就是比特幣「閃電網絡」的由來。而Plasma曾是以太坊Layer2解決方案中最受矚目的一個,不僅因為這是由JosephPoon和以太坊創始人VitalikButerin共同發布的白皮書,而且還有不少項目宣布過,將基于Plasma技術展開研發。
Plasma通過將高頻的交易遷移到以太坊網絡之外的側鏈之上,定期將批量交易的哈希值發布到以太坊主網,然后設置一些防惡意攻擊機制,確保資金安全性。最終的目的是為以太坊擴容,提升交易吞吐量,減少交易成本。PlasmaGroup、Matic、LeapDAO和OmiseGo等團隊都曾經是Plasma技術最主要的研發團隊,有些項目也獲得過以太坊基金會和Consensys等機構的資助。
Anthony Pompliano:以太坊旨在解決技術問題,比特幣旨在解決社會問題:Morgan Creek Digital聯合創始人Anthony Pompliano發推稱,以太坊的建立是為了解決技術問題。比特幣是用來解決社會問題的。這并不意味著孰好孰壞,但它確實意味著其中一個機會更大。[2020/8/9]
但畢竟這是個試驗性的項目,在項目的研發過程中,很多現實問題被暴露了出來,其中最重要的兩個挑戰是:
數據可用性:因為僅將批量交易的整體哈希值發布到Layer1上,而不是每一筆交易均發布到底層公鏈,所以具體的交易數據不存在Layer1上,用戶需要自己存儲具體的交易數據。用戶體驗差:為了避免惡意攻擊,Plasma在設計挑戰期的機制的時候,用戶需要定期上線網絡,否則可能錯過而遭受不必要的損失。
雖說Plasma也推出過更新版的標準PlasmaCash,但這些問題也依舊存在,最終導致了PlasmaGroup和LeapDAO兩個研發團隊在今年初決定,放棄Plasma技術,并轉向另一個新技術的研發:Rollup。
而Matic依舊堅持在Plasma技術的開發中,他們計劃在5月15日至5月底期間啟動主網的上線流程,并逐步進行去中心化,擴展到超過100個節點。究竟Matic有沒有處理好上述的這些問題,值得更多時間的觀察。
無論如何,研究以太坊擴容技術的開發社區,已經將更多精力切換到研究Rollup了。
為什么Rollup有機會?
在Plasma誕生的一年后,一位匿名人士BarryWhitehat在Github中提出了「Rollup」的概念,試圖以「SNARK」對以太坊進行擴容。
SNARK是零知識證明的一類密碼學技術,全稱是「簡潔化的非交互式零知識證明」。
關于零知識證明的更多信息,可以參閱:一文說透密碼學歷史、工作原理、零知識證明及潛在影響
Rollup一詞本身的含義為「卷曲」或「卷起」,或者可以引申為「匯總」或「聚合」。在數據庫的標準計算機語言SQL中,語法中的「Rollup」可以幫助Groupby語句,將搜索出的一系列結果以聚合的數據顯示,或許這是他以Rollup命名該技術的由來。
在BarryWhitehat提出Rollup概念時,它是這樣被定義的:
「Rollup通過將交易聚合,僅需要在鏈上進行一次交易,就可以驗證多筆其他交易。」而打包交易和驗證交易的方式是通過zk-SNARK技術實現的,這樣就能大幅度減少交易成本,確保安全性,也可以解決Plasma之前遇到的問題。
動態 | Circle向以太坊網絡新增發1050萬枚USDC:據DAppTotal.com穩定幣專題頁面數據顯示:01月11日00時08分 ,USDC發行方Circle向以太坊網絡新增發1筆價值1,050萬美元的USDC, 塊高度為:9254054,交易哈希值為:0x5bf61955e5c250850711923f929f3bc74acb5023cb73c7ce003eb09b83cb73be 。截至目前,Circle在以太坊網絡上的ERC20 USDC總發行量已達461,640,292枚。[2020/1/11]
有人會將Rollup歸類為Layer2技術,但VitalikButerin卻不這么認為。
在Rollup概念被提出后,VitalikButerin于同月在以太坊研究論壇中發表文章介紹該技術,他是這么解釋的:「我們可以將在以太坊上的資產轉賬交易的規模進一步增加,而且不需要使用Layer2技術中引入的『活性假設』,只需要使用ZK-SNARKs為大量的交易進行驗證。」
有意思的是,「Rollup」這個名字一開始沒受到重視。2019年的1月,MatterLabs推出了名為「PlasmaIgnis」的技術,因為在此之前Layer2的主流技術是Plasma,所以他們以「零知識證明版本的Plasma」作為研究方向。但從技術角度來說,這其實不能算是Plasma的一類,更像是Rollup。后來該團隊全面放棄了PlasmaIgnis這個名字,轉而采用ZKRollup作為技術的方向,后續也推出了他們自己基于ZKRollup的技術實現方案ZKSync,還進行了更多的深度定制和優化。
MatterLabs聯合創始人AlexGluchowski在2019年1月份發的推特
由于早期ZKRollup的概念中,主要的缺點是生成SNAKR證明過程較長,而且也未能支持通用型的智能合約,所以FuelLabs聯合創始人、以太坊二層擴容方案的長期研究者JohnAdler在2019年6月提出了另一個方案,稱為OptimisticRollup。該方案吸收了ZKRollup對于數據可用性的優勢,以及Plasma的懲罰機制,由于去除了零知識證明,所以可以更方便地支持通用型的智能合約。
Optimistic意思是「樂觀的」,所以在該方案中,不是通過SNARK處理后再將數據聚合到鏈上,而是默認「樂觀」相信節點會將最新且準確的數據發布到鏈上,否則其他人在驗證后,如果發現有問題可以發起挑戰,成功后節點會受到懲罰。
所以整體來看,Rollup的技術相比較Plasma,最關鍵的是解決了數據可用性的問題,所有交易數據都是在以太坊鏈上的,安全性也能和以太坊主鏈相同級別。
動態 | 慢霧區:以太坊智能合約Fountain(FTN)現溢出漏洞:以太坊智能合約 Fountain(FTN) 出現溢出漏洞,攻擊者通過調用 batchTransfers 函數進行溢出攻擊,漏洞具體出現在合約代碼 535 行的加法運算上,滿足 canPay 函數校驗后將巨額 token 轉向收款人
0x8cE6ae7e954A5A95ff02161B83308955Ebc832Cf
據介紹,簡書是 Fountain 的第一個,也是最重要的一個合作伙伴。[2018/12/27]
那既然同樣都是把交易發布在鏈上,為什么Rollup比普通的轉賬的吞吐量更高,成本更低呢?
因為在構建Rollup類交易的時候,大量的普通轉賬行為可以通過某些技巧進行壓縮,最終在通過零知識證明SNARK處理后,雖然SNARK生成過程較長且資源消耗較大,但分攤到每一筆交易中就微不足道了。在VitalikButerin的初始提案中有具體的數據可以參考,雖然后續有各種不同的實現和差別。
在他的方案中,單筆交易的構成類似于:
相比普通鏈上交易所需要的2.1萬的Gas費用來說,以上這種單筆交易由于縮減了體積,所以總共僅需892Gas。
但是由于SNARK證明的計算資源消耗較多,約600kGas,以及運行合約所需約50kGas,所以這也就意味著,必須要批量處理很多交易,才可以分攤這幾百k的間接成本。以太坊單個區塊Gas上限以8M計算的話,如果以純ETH交易來說,吞吐量約為:
8M/21k/15秒≈25tps
而該方案中的吞吐量約為:
/892/15秒≈550tps
這就是Rollup既能保證Layer1數據的可獲得性,也能大幅減少數據需求并減少單筆交易的成本的主要原因。
除了上述提到的Rollup方案研發團隊之外,不少應用層的項目也看到了Rollup的優勢,宣布將研究或集成Rollup技術。從目前公開的項目來看,選擇OptimisticRollup的項目更多一些,包括去中心化交易所、DeFi協議、匿名服務等,很可能是因為項目方考慮到OptimisticRollup的優勢為支持通用智能合約,以及不會像ZKRollup需要花費很多時間生成SNARK證明,畢竟在沒有優化方案之前,可能會影響應用的使用體驗。
宣布采用ZKRollup方案的項目目前并不多,但是路印Loopring的去中心化交易所是當前Rollup項目中開發進度最快的一個,早在2月底就已經上線以太坊主網,開始了公開測試。雖然后來也遇到了前端頁面的非致命漏洞,但是他們的經驗會為后續很多其他即將采用ZKRollup的項目提供參考和指導意義。
以太坊活躍用戶數超過比特幣:約3500萬個活躍地址:以太坊在用戶活躍數量上超過比特幣,已達3500萬個。根據Etherscan數據顯示,目前約3500萬個活躍的ETH地址,這一數字自2017年12月以來增長了100%。[2018/6/2]
到底可以減少多少鏈上的交易成本呢?路印給出了重要的實戰數據,在他們采用的方案中,批量處理4096筆交易時,單筆交易只需要375Gas。也就是在正常的Gas費用下,每次交易成本為0.09分人民幣,換句話說,100萬筆交易的成本大約為900元。
但曾經研發Plasma技術的團隊LeapDAO卻認為Rollup技術不是萬靈藥。在他們進行了具體的數據分析后,為大家提供了很多值得參考的數據。根據他們的估算,整體而言Rollup可以為以太坊網絡提升略超過10倍的吞吐量,因為相比Plasma還是犧牲了很多成本的。
除了兩個最流行的Rollup衍生版本外,還有一些以太坊二層擴容方案也采用了Rollup這個名字,比較常見的兩個是SKALELabs提出的BLS-Rollup和OffchainLabs的ArbitrumRollup。
不過OptimisticRollup的提出者JohnAdler認為,BLS-Rollup不算是通常意義上的Rollup,更像是一種批處理技術。而ArbitrumRollup在2018年發布論文和2019年發布白皮書時都未提及Rollup,他們在今年初上線測試網時才稱之為ArbitrumRollup。
ZKRollup進展
ZKRollup技術研發中最重要的公司是MatterLabs和iden3,兩者均已推出測試網。但他們產品的定位略有差異,MatterLabs更像是通用型解決方案,而iden3是專用型解決方案。
MatterLabs推出的是一套完整的通用型解決方案,叫做ZKSync。該方案考慮到了ZKRollup存在的一些缺點,提出了相應的機制優化,比如之前提及的,生成SNARK證明耗時較長,以及較難支持通用智能合約。MatterLab聯合創始人兼首席執行官AlexGluchowski表示,「在伊斯坦布爾升級之后,ZKSync將處于非常有利的位置,可輕松地達到每秒數千的交易量」。
為了實現通用智能合約這一需求,MatterLabs還推出了零知識證明智能編程語言及框架Zinc,在今年2月推出了首個版本v0.1Alpha。MatterLabs表示,Zinc是用于創建安全的零知識證明線路以及基于其運行程序的智能編程語言和執行環境,Zinc遵循Rust原理,并基于簡化的Rust語法,精通Rust、C、Solidity等語言的開發者可在一天內快速上手。
而iden3研究ZKRollup的初衷則是為了他們原本項目考慮的。iden3這個名字,可以想象成是identity的3.0,感受一下,是不是類似于「Web3」?所以iden3團隊專注的是為數字世界提供一種開源的身份管理系統,利用零知識證明zk-SNARK提升隱私特性,而Rollup則可以增加身份認證系統和應用層在鏈上交互行為中交易吞吐量。
而從應用層來說,路印Loopring和AZTEC分別解決了用戶鏈上交易和隱私的需求。路印Loopring的去中心化交易所是當前Rollup項目中開發進度最快的一個,早在2月底就已經上線以太坊主網,開始了公開測試。
AZTEC是一個隱私技術解決方案,在今年2月就上線了以太坊主網,但是他們還在考慮采用Rollup技術,以顯著降低以太坊網絡中隱私交易的成本。他們原本在隱私技術中就采用了零知識證明ZK,擴容方案選擇的是ZKRollup,所以他們給新的這套方案取名為ZKZKRollup,或ZK2Rollup。第一個ZK是利用SNARK技術中的「簡潔性」提升網絡的可擴展性,將多筆交易合并為一筆以減少交易成本,第二個ZK是利用SNARK作為隱私技術,將合并前的每一筆普通交易升級為隱私交易。
OptimisticRollup進展
OptimisticRollup技術中最重要的公司是FuelLabs、Optimism和NutBerry,他們研發的是通用型的OptimisticRollup解決方案。相比ZKRollup,由于去除了復雜的零知識證明這類復雜的密碼學技術,所以支持通用的智能合約會更容易一些。
OptimisticRollup雖然比Plasma增加了數據可用性的優點,但也直接吸納了之前Plasma的成果,除了都用同一套博弈和懲罰機制之外,Optimism團隊表示,這兩個方案可以共享很多基礎設施和代碼。另外,他們認為對于一個成熟的Layer2生態系統,Rollup、Plasma和狀態通道應該是可以在同一個客戶端內一起工作的。
其實在PlasmaGroup對外公開放棄Plasma技術之前的2019年年底,就組建了一家新公司Optimism,專注于實施OptimisticRollup,該公司目前已經從加密風險基金Paradigm和設計公司IDEO旗下的IDEOCoLabVentures籌集了350萬美元種子輪融資。新募集的資金主要用于實施OptimisticRollup解決方案和基于該解決方案構建應用程序。盡管這是一家商業公司,但該研究小組表示,希望繼續為開源項目做貢獻,并與公眾分享自己的研究成果。
為了支持以太坊的智能合約,Optimism已經發布了虛擬機OptimisticVirtualMachine(OVM)的Alpha版本。OVM是嵌入在以太坊虛擬機中的副本,允許開發者使用OptimisticRollup時,可使用和EVM相同的開發者工具集和智能合約語言。
剛開始,OptimisticRollup被稱為「最小可行合并共識」,在JohnAdler于去年6月提出了這個概念后,就成立了FuelLabs,以實行他們的擴容方案。
FuelLabs將開發一條無需信任的以太坊側鏈Fuel,專門針對以太坊鏈上的支付進行設計,在伊斯坦布爾升級之前,保守估計能將以太坊ERC-20代幣交易成本降低至原來的五分之一。
今年1月,FuelLabs基于OptimisticRollup的以太坊側鏈Fuel的公開測試網上線,代碼也已開源。值得注意的是,他們測試網的合約就已經支持所有的ERC-20代幣了,畢竟ERC-20本就是一種智能合約。后來在3月,他們宣布推出一門新的以太坊底層語言Yul,作為對Yul的實驗性升級,為Yul添加了各種QoL功能。Yul是由Solidity開發者編寫的一門旨在進一步優化編譯目標的低級中間語言,簡單且具有實用的低級語法,讓開發人員比Solidity更接近原始以太坊虛擬機,同時具有優化gas費使用效率的潛力。
NutBerry相比上述兩個影響力更小一些,但他們的目標是開發一個基于OptimisticRollup的Layer2解決方案,且支持具有狀態的智能合約。該項目最早被發布在以太坊研究論壇,其中描述了該項目將分為四個里程碑:支持ERC-20標準、支持ERC-721標準、支持無狀態智能合約、支持具有狀態的智能合約。NutBerry已于今年2月發布了第二個測試網,已支持ERC-712。
OptimisticRollup的應用層產品相對較多一些,可能是因為支持智能合約更簡單,所以對于這些DeFi、DEX或隱私服務這些需要智能合約處理邏輯的應用來說,更方便一些。這些應用將會在后續的一兩個季度內逐步上線,不用多久就能體驗到了。
其他Rollup
雖然其他幾個Rollup解決方案和上述的這些項目不太一樣,但是他們都以Rollup命名,所以本文也做相關的整理和收集:
BLS-Rollup,可以參考SKALELabs的介紹ArbitrumRollup,可以參考OffchainLabs的介紹另外還有一個基于賬戶的匿名Rollup項目
未來
為了以太坊鏈上應用生態的發展,擴容是一個持續且重要的話題,畢竟,離以太坊2.0最終形態至少還有2-3年的時間。在此之前,DApp、DeFi、游戲等各種鏈上應用生態是無法規模化的,計算資源將成為重要的瓶頸,任何一個強勢的DApp都可能迅速將鏈上的計算資源占滿。以3月12日為例,Maker協議因以太坊價格暴跌而發起的抵押品拍賣清算流程,就是因為整體網絡擁堵而產生了巨額損失。
曾經最重要的擴容方案Plasma,在實現過程中遭遇一些問題之后,開發者社區將更多精力轉移至Rollup,因為它解決了前輩在開發過程中發現的「數據可用性」問題。雖然有一些取舍,但還是比以太坊Layer1效率高上幾十數百倍。而衍生出兩個最重要的分支ZKRollup和OptimisticRollup,分別選擇了不同的挑戰以確保安全性:是研究困難的零知識證明密碼學技術,還是尋找出一套安全且照顧用戶體驗的博弈機制。
不過,那些上百倍的提升目前還是理論值,或許是實驗室環境下的最優情況,在此之前還有很多的研發工作和配套的優化。只有這些方案被實現,并且被應用集成且大規模采用之后,才能知道真實的性能,或是否有其他的弱點和問題。
畢竟實踐才能出真知。Rollup不是第一個擴容方案,也不會是最后一個。雖然我們都知道目標在哪里,但是實現的路徑依舊是曲折的。
Tags:ROLROLL以太坊LASBenjiRollsCoinControllerCash比特幣以太坊再現斷崖式暴跌原因Plastiks
尊敬的TBer: 為給具備創新升值潛力的新興項目提供更多項目扶持和上幣機會,TokenBetter即將開放上線“創新區”。創新區內幣種滿足TokenBetter主板項目審核后,可申請轉板主板.
1900/1/1 0:00:00據CointelegraphMarkets和ArcaneResearch數據,盡管投資者擔心區塊獎勵減半會降低礦工積極性,并可能危及網絡安全,但全球對比特幣的需求仍在繼續上升.
1900/1/1 0:00:00隨著POS、類POS共識機制正在取代POW的不斷推進,越來越多的大型機構紛紛涉獵節點服務,標志著Staking走向明朗化、專業化.
1900/1/1 0:00:002020年5月16日上午5點,Filecoin官方發布推特,推出PangaeaAccelerator加速器,一個全球采礦計劃,旨在為礦工驗證.
1900/1/1 0:00:00根據OKEx現貨顯示,BTC暫報9528.2美元。OKB暫報5.25美元。昨日BTC反彈至10000美元下方后承壓,短期走勢反復上探失敗,經過盤整后于晚間放量下挫,一度跌至9200美元上方,現獲.
1900/1/1 0:00:00“年化收益開始作為DeFi協議估值最有效的指標之一。”加密資產&鏈上現金流的誕生鏈上現金流的出現,催生了一個新的資產類別——加密資產.
1900/1/1 0:00:00