來源:BeWaterCommunity?
9月4日的BeWaterDevCon2021全球開發者大會上,路印CTOSteveGuo,他曾任Intel高級研發工程師,獵豹移動高級研發總監,15歲考入科大少年班,博士學位。與現場的開發者,分享了“未來真正的二層網絡是什么樣?”的主題演講。
分享內容概括如下:
1)真正意義上定義的二層網絡,應該是安全性要靠主網來保證。
2)二層網絡從狀態通道到Plasma,再演進到了Rollup,并分成了兩個分支:OptimisticRollup和zkRollup。
3)二層網絡的最終形態是zkEVM,大家不用改代碼,直接能把原有合約運行在zkEVM中。
大家好,我是路印協議的CTOSteveGuo,很高興這次受邀參加BeWater的開發者大會。我今天想和大家探討的主題是什么樣的二層網絡才是真正的未來。
一、什么是二層網絡?
我們先從這一頁開始,就是定義什么是二層網絡。在我看來像Polygon、xDai、BSC這樣的側鏈,嚴格意義上不算二層網絡。真正意義上定義的二層網絡,應該是他的安全性要靠主網來保證。
從技術角度、演化的角度來看,最早的二層網絡的技術叫狀態通道,之后演進到Plasma,然后到最近很火的Rollup技術,然后Rollup又分為兩個分支,一個叫樂觀匯總——OptimismRollup,一條道叫zkRollup。
我接下來的演講圍繞這幾個技術的演化來帶著大家走一遍目前二層網絡發展的整個歷史。
1、狀態通道
接下來我們先看第一種二層網絡技術,叫狀態通道。
狀態通道最早的起源應該是比特幣里面的閃電網絡,然后在以太坊上,我印象中間最早的一個項目叫「雷電網絡」,它試圖去復制比特幣上閃電網絡這樣的技術。
整個狀態通道核心的思想是,比如說Alice和Bob經常要在線下轉賬的話,Alice和Bob就約定好,大家互相沖一筆錢到一個合約里面,比如說A充5個B也充5個,之后在鏈下A和B就可以互轉,比如這張幻燈片里面演示的,我可以B先轉給A一個,A就有6個幣,B是4個幣,之后A又轉三個幣給A,最后大家發現A只有3個幣,B有7個幣。
路印協議CTO郭雄輝被任命為CEO,將專注于NFT、提升錢包和DEX體驗:2月7日消息,以太坊L2生態系統路印協議近日宣布,前CTO郭雄輝(SteveGuo)被任命為Loopring的CEO,原CEO兼創始人王東(DanielWang)將投入更多精力開發下一代Layer2戰略。
郭雄輝表示,路印協議將專注于新的NFT支持,改進文檔,完善錢包和DEX用戶體驗,并提高服務可用性。郭雄輝15歲考上了中國科學技術大學,2005年獲得計算機科學博士學位,曾在英特爾、獵豹等公司工作。[2022/2/7 9:35:33]
最終要到鏈上去結算的時候,才把最終的一個狀態到鏈上,這樣最后大家再分別退出,就比如最終大家能在圖上看到,A只有3個幣,B只有7個幣。
其核心就是在鏈下之后大家可以互相只用簽名確認的方式,就可以直接進行鏈下無限次的轉賬這樣一個思路。
他最大的缺點在于什么?就是A和B一定要互相之間,先在主網上有一個確定的合約去部署。
之后其實像雷電網絡和CelerNetwork這樣的項目做了些擴展,把A和B之間的互相結算,推進成比如A跟一個Hub,然后B也跟這個Hub,C也跟這個Hub,有一個中心的類似于Hub的方式,來把點對點的轉賬推進成點對網絡的轉賬。
但是這還是具有局限性,首先,需要提前抵押資金進智能合約,其次因為他整套技術只是圍繞「轉賬支付」這個角度來解決的。但是大家也都知道,區塊鏈最大的意義在于可編程的應用,而不僅僅是支付,之后的二層網絡技術就自然發展到了第二代Plasma。
2、第二代Plasma
上圖這種二層網絡技術叫Plasma,在我看來他其實就是去嘗試著解決我剛剛提到的「狀態通道」解決方案中的資金要提前鎖定的問題。
他的解決思路是什么呢?其實它的思路很簡單,鏈上還是要有個智能合約,但是任意的人都可以往這個鏈上的合約去充值也好、提現也好,都是和這個合約打交道。
對應在鏈下有一個叫PlasmaChain的概念,一旦資金進了這個合約之后,就可以在鏈下發起轉賬,PlasmaChain他在不停的把大家在鏈下所發生的交易匯集打包到一起之后,把最終的狀態Merkle根遞交到主鏈合約上去保存記錄。
路印累計交易筆數突破100萬二層總鎖倉量為2.15億美金:3月2日消息,路印交易累計筆數突破100萬,截止目前,路印二層總鎖倉量為2.15億美金。[2021/3/2 18:07:02]
如果在一段時間內沒有人有異議的話,比如7天內大家都沒有異議,歷史記錄就不能再被更改。如果隨意一個人對7天內的轉賬有異議的話,他可以遞交challenge,證明說某一筆轉賬是錯誤處理了,從而把資產最終給取出來。這樣一個思路就能解決狀態通道需要提前抵押資金的問題。
他最早的方案同樣也只支持轉賬支付這個場景,比如最早的PlasmaMVP,然后演進到PlasmaCash、PlasmaDebit,這幾個諸如此類的項目。最終大家發現下來Plasma還是很難用。
首先第一個他有類似于七天或者兩周的退出挑戰期。
第二個它的安全性取決于什么?PlasmaChain往主鏈上遞交的僅僅只是一個Merkle根,所有發生在PlasmaChain上的交易信息都是記錄在鏈下的,這說明什么?這說明我必須依賴于提交這個Merkle根的這些Relayer是如實的在干活的。
3、OptimisticRollup
如何能解決Plasma的問題,自然的一個演進,就會演進到現在比較火的,叫OptimisticRollup。
大家看這張圖OptimisticRollup,其實他跟上面Plasma唯一的區別,在我看來,就是他遞交到主鏈上的不僅僅是世界狀態的Merkle根,而且他是把所有在鏈下發生的交易數據也同時上鏈了,然后允許任何的人在鏈上根據這些公開的區塊鏈上記錄的信息來做挑戰。
比如例子舉到的S2狀態切換到S3狀態的時候,如果有人有挑戰,他就能根據區塊鏈記錄的一些歷史信息說你處理的不對。
所以Plasma演進到OptimisticRollup,他的安全性依賴于「退出挑戰機制」這個是不變的,但是它解決了一個數據可用性問題,讓人直接能在鏈上根據已有的數據就去做這個挑戰,而不是要再結合鏈下的數據來做一筆挑戰,這是它最大的改進。
智能合約錢包Authereum集成路印交易所:智能合約錢包Authereum集成路印交易所(LoopringExchange),這意味著用戶使用Authereum可直接登入以太坊的二層支付方案zkRollup進行交易。[2020/9/7]
除此之外,OptimisticRollup同時還能支持轉賬之外的場景,他可以支持通用編程。
這樣的一個思想其實目前已經有兩個項目在朝著這條道走,一個叫Optimism,還有一個叫Arbitrum。
4、Optimism
我先說Optimism,因為Optimism是最早出來說要做OptimisticRollup的,這個團隊本身也跟Plasma一脈相承,所以像Uniswap最早也是說會最先部署在Optimism上面。
他的核心思想其實就在于怎么樣解決挑戰,就是說如果有一個人發現你在二層網絡上沒有如實的處理一筆交易,我該怎么來挑戰這件事情,他把這個挑戰抽象成一個什么?
就是在以太坊一層上他布了一個合約,這個合約接受什么?接受他定義的叫OVM的指令集運行,你可以利用他遞交到主鏈上的公開信息,然后去驅動這個OVM的執行,如果這個OVM執行判定這些值不對,那你挑戰就成功了。
基本上Optimism的思路是OVM的指令集盡量的跟EVM是完全一致的,但其實他沒有做到百分之百的兼容,他有一部分的指令是修改了。
正是因為這些指令需要修改,所以導致他其實很難百分之百兼容EVM,這可能也是他為什么一直在延期,還沒最終主網上線的原因之一。
5、Arbitrum
Arbitrum我覺得他正是看到了這樣的機會,就是說我在一層的智能合約里面我再去執行類似于EVM指令集其實是很困難的一件事情。
我是不是能重新把EVM給改成我自己的VM指令,他叫Arbitrum的指令集,就是AVM,所以在一層智能合約里面執行的其實是AVM指令集,這樣的一個思路本質上是能更比OVM的方式可能做到更高效一些。
路印交易所上線區塊鏈爭議裁決協議Kleros原生代幣PNK:據官方消息,路印交易所(LoopringExchange)宣布上線PNK-ETH交易對,PNK是區塊鏈爭議裁決協議Kleros發行的原生代幣。此前消息,區塊鏈爭議裁決協議Kleros宣布啟動一站式去中心化內容管理平臺KlerosCurate,該平臺無需許可,任何人可創建基于任何主題的去中心化列表,采用經濟激勵措施納入多個不同角色維護該列表。去中心化的交易所、市場、社交媒體或文件存儲庫以去中心化的方式創建和管理列表,并由社區完成所有這些工作。[2020/6/29]
同時他解決了OVM的Optimism挑戰機制里面的一個比較大的問題,就是Gas消耗,挑戰一次的Gas消耗太高的問題,他的解決思路其實就是用分片挑戰,類似于二分法。
我先讓你說證明執行到一千步是正確的,然后我再縮小到512,然后再256,逐步的讓你分片的去執行一系列的指令序列,最終來做一個挑戰的輸出,成功還是失敗。
Arbitrum主網是8月31號正式上線,陸續已經有好些項目遷移到Arbitrum上面,比如Sushi、MCDex等。
但是大家實際發現下來還是有些問題,就是原來大家以為這樣的二層網絡會極大的降低費用,但實際情況卻是Arbitrum的主網上一筆交易大概降低到主網上的1/5到1/10,這還是遠遠低于我們的預期。我覺得可能要再提高一個量級,這樣才是真正的二層網絡。
二、zkRollup
我們接下來講第二個大分支zkRollup。
1、什么是ZKP?
講到zkRollup就要先給大家講一講什么叫ZKP,ZKP其實顧名思義就是零知證明,零知證明在干一件什么事情?
如果舉f(X)=Y這個例子為例,那就是我能證明說我知道一個X值,通過函數f計算能輸出Y,但是我又不能告訴你X是什么,然后我要讓你相信這件事情,這就叫一個零知識證明。其中函數f是公開,運算的結果Y也是公開的,但是我的X是私有的,不讓你知道。
路印協議:Loopring協議費用庫再次存入100萬枚LRC:路印協議Loopring宣布,100萬枚LRC再次被存入Loopring的協議費用庫,以激勵早期抵押方。[2020/5/3]
我再舉個更直觀一點的例子大家來理解零知識證明,這張圖其實叫“尋找沃爾多”,問題是想在這張大圖里面試圖找到上面小人的位置在哪。
我要做一個零知識證明,就是我要讓你知道我在這張大圖里面,這個小人的位置我是知道的,但是我又不能讓你知道這個小人的具體位置在哪。
大體的解決思路就要轉換問題,零知證明本質上就在轉換問題,我把A問題轉換成同等等價的,在另外一個域上B問題的證明,針對這個尋找沃爾多零知識問題的解決,比如說我用一塊很大很大的黑布,我用黑布把沃爾多小人提前剪出來。
然后把這塊大黑布蓋在這塊畫面上,只透出小人,這樣我是不是就向你做了一個零知識證明,我能找到這個圖上小人在哪,但是你其實還是不知道這個小人具體在畫中的位置,因為被整個黑布給蓋著的。
2、zkRollup介紹
再接下來我講一個ZKRollup的思想,ZKRollup其實是一個技術的統稱。它的核心思想就是像我這里面這張圖所表示的,世界狀態抽象成所有賬號組成的Merkle樹,賬號里面有一些自己賬號相關的信息,這樣的Merkle樹有一個唯一的根就代表了當前世界狀態。
我在鏈下對賬號所做的改動,比如說可以是任意一筆交易去改一些賬號的信息,這叫交易Tx信息,我有在鏈下收集到所有的Tx信息之后,我可以針對每個Tx的處理引起的世界狀態的轉換做一個零知識證明。
我首先第一個要證明這個Tx是真實的,然后證明Tx能由前一個世界狀態變到下一個世界狀態,最終的世界狀態信息是記錄在鏈上的。
所以一旦某一個歷史狀態被在鏈上確認之后,永遠是不能改的,我就能根據不能更改的歷史記錄然后再加上之后的一系列Tx,然后再證明推導出下一個新的世界狀態,然后最終一直不停的往鏈上更新最新的世界狀態,這樣一套系統叫ZKRollup的解決方案。
3、路印協議
我們路印協議是世界上第一個ZKRollup應用到主網上的實例。我們把ZKRollup這套思想擴展到了Dex交易上面。
我們針對Dex交易在之前剛剛介紹的ZKRollupAccount模型上做了更進一步的抽象,比如我們抽象出在Account下面掛Balance,Balance下面再掛TradeHistory,但本質上還是大的Merkle樹,然后不停的把整個Merkle樹代表的世界狀態不停的更新到鏈上。
之后大家熟知的還有MatterLabs出的ZKSync方案,ZKSync方案目前演進到2.0。1.0跟我們路印協議很類似,只解決了轉賬、交易、支付這幾個場景,在ZKRollup的技術上其實大家是一樣的,但只是大家選用的零知證明的算法不一樣。
我們路印協議選的是Groth16的算法,而ZKSync用的是Plonk的零知證明算法,之后ZKSync發布了ZKPorter,ZKPorter叫ZKSync2.0,
他的區別在哪呢??ZKSync1.0,大家記住,所有交易的數據都上鏈的。但是ZKPorter里面,他為了提高TPS,所有鏈下的交易信息是不上鏈的,而鏈下的交易信息類似于由一個PoA的這種小組,來幫你如實的保存鏈下交易數據。
ZKPorter的方案我覺得不能完全說是ZKRollup,ZKRollup的思路一定是要把所有的Tx信息也都遞交到鏈上,ZKPorter其實他就跟我接下來要說的StarkEx的方案是有點像的。
回到StarkWare推出來的StarkEx的方案,這張圖是StarkEx整體的介紹,其實他內部的最核心的也還是組織成一個Merkle樹,用ZKRollup的思路來不停的更新世界狀態。
但它一上來就定義了自己的編程語言Cairo,大家得用他的這套語言來寫,他再為用Cario語言生成的程序執行生成零知證明。但是StarkWare和路印和ZKSync的區別又在于他選用的零知證明的算法叫zkStark。
這三個零知識證明算法的核心區別在于…Groth16是每個電路有任何改變都需要運行一次可信設置,這樣可編程性會相對差一些。但是他的優勢在于證明的大小是最小的,鏈上的證明驗證工作量也很小,所以他具有很大的成本優勢。
Plonk他支持一種叫通用設置,就是我全局只要運行一次可信設置,以后你再改什么電路就不用再運行可性設置。
ZKStark就更進一步了,他就完全都不需要可信設置,我可以隨時的去更改電路,但他帶來一定的代價,就是他的證明的大小是最大的,鏈上的證明驗證工作量也是偏大的。
這可能也是StarkWare一開始推出來的時候不把交易數據放到鏈上的原因,否則他的上鏈成本還是挺高的。
這就是目前所有的二層解決方案的匯總,但我認為這遠遠還沒到我設想中的最終的二層網絡。
4、zkEVM
最終的一個二層網絡我覺得是叫通用的zk虛擬機,我定義叫zkEVM。zkEVM有幾家也開始在做了,像Hermez在做,MatterLabs也是想做通用的zkEVM,StarkWare的Cairo他本質上支持可編程,也算是一種zkEVM。
但最終我覺得在以太坊生態上最好的一個方案還是讓大家直接不用改代碼,直接把智能合約編譯后的代碼運行在zkEVM虛擬機上,這樣的思路可能會是最終的一個未來。
以太坊基金會正好也在做這么一個項目,我這張圖里就是試圖總結以太坊基金會的zkEVM思路。
大家看這張圖里面的右上角,這是一個經典的馮洛伊曼的計算機模型。計算機會包括CPU處理器,然后處理器之外有存儲器,有內存,有你的硬盤,有你的外設這種。
存儲CPU和外設內存之間都通過總線來通信,取數據、存數據,這樣的一個思路,這叫馮洛伊曼經典計算機模型。
zkEVM借鑒了這個模型,zkEVM虛擬機里面的指令集直接就是EVM定義的指令集,每段程序代碼執行完之后就會有一段trace,我針對所有的trace來做一個證明,我證明這些trace是如實的按照程序代碼的指令執行而出的。
這里面就涉及:
第一個我要證明每個EVM的指令執行是正確的,而且執行序列是正確的,這叫EVMProof;
第二個EVM的執行過程中間就會涉及,比如說我要去存取storage的值,我要在memory中間甚至Stack中間去訪問變量,這三個——storage、memory、stack統一叫state,針對這些state的存和取也都是要做相應的零知識證明,我去證明我這個存取的動作是對的。
EVMProof和StateProof之間有一個橋梁BusMapping,這是總線的概念,就是表述EVM的指令要去訪問哪些具體的state,并證明這些訪問是正確的。
這樣的一套系統一旦部署之后,所有的智能合約都能無縫的遷移過來,我覺得這可能才是真正最終的一個二層網絡的終極形態。
好,謝謝大家,有任何問題歡迎大家隨時跟我聯系,大家如果對路印的代碼感興趣也可以直接訪問github。也可以通過郵件跟我聯系,謝謝。
作者:DaveWhite,區塊鏈投資機構Paradigm? 概括 本文介紹了一種新的NFT原語:鞅股份,或“Mortys”。Mortys是代表NFT類別的部分所有權的合成物.
1900/1/1 0:00:00鏈捕手消息,沃爾瑪與加密ATM公司Coinme合作,通過200臺“Coinstar”信息亭在其美國的數十家商店提供比特幣.
1900/1/1 0:00:00鏈捕手消息,TikTok此前發布的首個NFT現已于北京時間10月12日早上6:00開始拍賣,當前拍賣價格為1.899ETH。拍賣將于北京時間10月19日上午6:00結束.
1900/1/1 0:00:00鏈捕手消息,礦機制造商億邦國際發布2021財年前六個月未經審計財務業績:億邦國際今年上半年總算力為80萬Thash/s.
1900/1/1 0:00:00整理:念青、胡韜 隨著加密市場的持續走高,近期各大公鏈DeFi總鎖倉資產最高突破2400億美元大關,再創歷史新高,較519大跌前的峰值亦上漲近46%,DeFi市場再度成為市場關注的焦點.
1900/1/1 0:00:00鏈捕手消息,加密貨幣交易所Kraken表示,11月推出的比特幣升級是非常重要的。在KrakenIntelligence的最新報告中,該交易所解釋說,由三項比特幣改進提案(BIP)組成的Tapro.
1900/1/1 0:00:00