撰文:李畫;受訪人:p0n1,安比實驗室研究員;王東,路印協議創始人;劉毅,Cdot?創始人;John,PolyNetwork?創始成員;出處:機械鐘;星球日報經授權轉載
跨layer、跨鏈、不同跨layer的方式、不同跨鏈的方式,看上去紛繁蕪雜令人迷惑,但它們背后的邏輯是簡單的,本文對各種跨layer與跨鏈方式做了簡要總結,希望能讓「跨」這件事看上去清晰些。
這篇文章更像一個索引,圍繞下圖展開,每種方式的具體實現如果以前文章討論過,便只做關鍵內容的引用,如果你對此了解便可跳過;如果未討論過,便會詳細展開。
01跨layer
Layer2與側鏈是兩種不同的主體,跨Layer與跨鏈是兩件截然不同的事情。以比喻來做說明:
古希臘的神廟用麥子為公民記賬,假設「主神廟」太忙記不過來,便讓其他神廟幫它記,這些神廟記賬后需要定期匯報給主神廟知道,而不管公民的賬被記在哪個神廟,也不管這些神廟是否發生變故,公民想取出資產時總能拿到屬于他的麥子,這是跨Layer。
假設有另一片大陸,一個聰明人為兩地的商人提供一項服務,使大家在古希臘賬本上的資產能跨到這片大陸的賬本上使用,某個人把資產跨過來后,這片大陸為他記賬時是不會把賬目信息匯報給主神廟知道的;此外,這片大陸是不產麥子的,它的記賬單位也不是麥子,如果這個人想在這片大陸取出資產,他拿到的不是麥子,這是跨鏈。他能拿到什么取決于不同的跨鏈方式。
跳出比喻來說就是:Layer2為子賬本,跨Layer?是一套賬本體系下具體的記賬地方發生了變化,Layer2和Layer1的記賬單位相同,Layer2記的賬需要告知Layer1;鏈是不同的賬本,跨鏈是從一套賬本體系到另一套賬本體系,側鏈和主鏈的記賬單位不同,側鏈記的賬不會告知主鏈。
Rollup
在區分Layer2與跨鏈后,來看Layer2。Rollup?是最主流也最有發展潛力的Layer2,目前階段似乎只需要關注它。Rollup是什么:
“Rollup?指先在鏈下進行復雜的計算和狀態維護,再將與狀態更改相關的數據通過合約調用的方式,利用更便宜的CALLDATA?在鏈上保存。
比特幣創兩個月新高,日內最新漲幅達3.2%:金色財經報道,行情顯示,比特幣創兩個月新高,日內最新漲幅達3.2%,報30846.00美元;以太坊上漲1.6%,報1902.10美元。[2023/6/24 21:56:32]
任何人都能根據鏈上保存的數據復原出全局的狀態,從而消除因數據可用性問題帶來的安全風險。Rollup將大量交易卷起/匯總成為一個交易,在保證數據可用性的前提下提高?TPS。”
——p0n1,《時髦有趣且有用:這12個以太坊新事物你不能錯過》
通俗來講就是:Rollup?負責處理具體的記賬事宜,但它的賬是如何記得是要匯報并記錄在以太坊上的,這會使以太坊承認Rollup?記的賬。具體而言,Rollup?以如下方式工作:
“有一個技術的東西叫MerkleTree,它是把不同的數據一層一層的哈希,最后變成一個簡單的哈希值,這個值就叫樹的根。這個根實際上能代表樹里邊一切的狀態,雖然不知道具體的狀態是什么。
這棵樹本身是要能夠在某個地方找到的,如果沒有這棵樹,只有根,那這個賬戶也是不安全的。ZKRollup?就是在Layer2?維護這樣一棵樹。它最開始的時候非常簡單,里邊什么都沒有,然后當你交易或支付時,就會改這棵樹里邊的數據,這個改動本身是要放到以太坊上去的,作為一個數據存到以太坊上。
因此,你可以通過以太坊把這棵樹在任何一個時間點的歷史狀態全部恢復出來,恢復出來之后,你可以通過樹根來驗證你恢復的數據是不是對的。任何一個用戶都可以把從葉子節點到根的一串數據拿過來,這一串的數據叫默克爾證明。
把這個證明扔到以太坊的路印協議的智能合約里,合約就會算這個默克爾證明能不能證明你確實是在這棵樹里面,如果能證明你在這棵樹里,就會把這棵樹里標記的你有多少錢從以太坊的智能合約里解鎖出來,直接轉到你的以太坊賬號里。這就是在最不理想的情況下提現的方式。”
——王東,《專訪王東:關于路印新版本的一切》
Rollup?實現擴容的原理如下:
“為什么ZKRollup?能夠擴容,能夠變得那么快、那么省錢,與對這棵MerkleTree?的更新涉及到的一些計算相關。
安全團隊:項目zenmonkerc (Monk)的價格下跌80%:金色財經消息,據CertiK監測,@zenmonkerc (Monk)的價格下跌80%,ETH合約: 0x45e0bd7326ae861acc202d2ddc60ff56384ff36b,請保持警惕![2023/6/16 21:41:07]
比如一個人的賬戶狀態改了,那要怎么改MerkleTree?的根?需要一層一層的去算,算到那個根。所以一筆交易可能要改大約4、5個葉子節點,一筆轉賬大概要改3個葉子節點,這些改動是非常多的。
但現在,這些改動跟以太坊沒有關系,它不用去做這些改動過程的計算,計算都是在MerkleTree?上面,在中繼里邊做的,以太坊上只要把零知識證明驗證一下就行了,可能就花費10萬gas?還是多少gas,大概是這樣。
比如說做1000筆交易,改動可能是大約4000個葉子節點,可能要算幾萬次哈希算出一個根,但這些數據都在Layer2,最后扔到以太坊上的數據其實就是三種:第一個是對各個葉子怎么改的;第二個是對根怎么改的;第三個是一個證明來證明前兩者的一致性。
零知識證明做什么呢?零知識證明就是驗證改這棵樹里邊這么多數據的時候,這個根的計算跟各種改動是能夠匹配得上的。零知識證明只是做了這么一件事,就是證明數據的一致性。它對應的也不是每一筆交易怎么去證明,而是說一大堆交易打成一個包/塊,如何去證明這個包,它是一個批處理的過程。“
——王東,《專訪王東:關于路印新版本的一切》
通俗來講就是:Rollup?幫主鏈干活,那么干活的人多了,能同時干的活也就多了。
ZKRollup?與OptimisticRollup
在理解Rollup?后,來看ZKRollup?與OptimisticRollup,兩者的核心區別如下:
ZKRollup?方案的關鍵在于ZK,它的每一次的狀態轉變都需要提供零知識證明,并由主鏈上的合約進行驗證,只有驗證通過才能更改狀態。即,ZKRollup?的狀態轉變嚴格依賴于密碼學證明。
Bitfinex分析師:我們可能正處于比特幣牛市的早期階段:金色財經報道,Bitfinex分析師稱,上周比特幣現貨交易量創下歷史新高,交易所比特幣交易量的7日移動平均線升至240億美元左右;各交易所的比特幣期貨交易量接近1萬億美元,而比特幣期權持倉量升至121.4億美元;這表明機構投資者越來越多地參與市場,我們可能處于牛市的早期階段。[2023/3/29 13:31:49]
OptimisticRollup?方案中,每次狀態轉變無需嚴格驗證,它是先樂觀地假設每次轉變都是正確的,然后在一定時限內可以對某次轉變進行挑戰,如果挑戰成功就證明之前的提交有問題,會懲罰提交者并將狀態回滾。即,OptimisticRollup?的狀態轉變依賴于經濟激勵和博弈。
——p0n1,《時髦有趣且有用:這12個以太坊新事物你不能錯過》
ZKRollup?的突出問題在于對可編程性的實現上,這是因零知識證明而起,如果你對此感興趣可以看《徹底讀懂零知識證明及其實現方法:解析zk-SNARK》一文,它介紹了如何實現零知識證明,從中能了解它為何難以實現可編程性。不過,zkSync的VM?及相關設計能夠讓可編程性落地,值得期待。
OptimisticRollup?最被關注的問題似乎是當資金從Layer2返回時,因為挑戰期帶來的延時問題,但可以有中間商提供墊付服務曲線救國,所以這一點也許不會成為困擾。
以上是關于跨layer?的全部,它是在子賬本記賬,記的賬要成批的匯報給以太坊知道;ZKRollup?用密碼學的方法杜絕假賬,OptimisticRollup?用監督舉報的方法避免假賬。
02跨鏈
跨鏈是從一套賬本體系到另一套賬本體系,不管參與方是哪兩條鏈,也不管以何種方式跨鏈,當跨鏈發生時,都需要一個第三者在兩條鏈之間傳話,不然兩條鏈都不會知道對方鏈發生了什么,跨鏈也就無從談起。
一個完整的跨鏈過程如下:
“跨鏈橋很形象,它有兩個橋墩和一個橋梁。兩個橋墩就是兩套智能合約,一個運行在A鏈,一個運行在B鏈;中間是橋梁,橋梁是鏈下進程,負責監控兩邊這兩套智能合約的事件。
行為藝術之母阿布拉莫維奇于昨日在Tezos發布NFT:7月26日消息,行為藝術之母阿布拉莫維奇(Marina Abramovi?)進軍元宇宙,于昨日發布其首個基于 Tezos 的 NFT 系列“The Hero 25FPS”,在與數字藝術和文化平臺 CIRCA 的合作下,重溫了她 2001 年的電影《The Hero》,這部電影被分割成數百個獨特的畫面,從而形成“The Hero 25FPS”系列。[2022/7/26 2:38:49]
假設現在有一個ERC20?的代幣,比如說是UNI,它發行在以太坊上,我們想把它跨到PlatON?上去。那么以太坊這邊要有一個智能合約,比如叫Vault?合約,它是跨鏈橋的一個橋墩;跨鏈的用戶要發給Vault?合約Lock?方法,把要鎖定的幣種和數量作為參數傳進去,然后還要提供一個PlatON?的地址,說我鎖500個UNI?是為了在這個地址上鑄造出500個UNI?的替代品。
這個時候,Vault?合約就會去調用UNI?合約做UNI?的轉移,把UNI?從用戶地址轉到Vault?合約的地址上,也就是把UNI?鎖住。鎖完之后,Vault?合約就會發一個事件,比如叫AssetLock?事件。
鏈下進程是通過RPC?接口連在以太坊節點上的,它會訂閱Vault?合約的AssetLock?事件,這個事件只要一出現在日志里,鏈下進程就得到這個事件了,這個事件里包含相關參數,比如鎖定的是哪個幣,鎖了多少,另一條鏈上的受益人是誰。鏈下進程也有一個連接PlatON?的RPC?接口,它會提交一筆交易到PlatON,假設這筆交易叫Mint。
PlatON?上也會有一個合約,比如叫Control?合約,它是跨鏈橋的另一個橋墩;Control?合約事先會創建一個類似ERC20?的合約,比如叫EUNI。Control?合約收到Mint?請求后,驗證這個請求確實來自于見證人,就會調用EUNI?合約的Mint?方法,告訴它給某個地址鑄造500個EUNI?代幣;EUNI?鑄造出來后,就會放在用戶之前提供的地址上,用戶就可以用了。
假設用戶把EUNI?轉給了另外一個用戶,新用戶想要以太坊上的UNI,那他要做的操作是調用Control?合約的Redeem?方法,燒掉比如說100個EUNI,并釋放一個事件叫AssetBurn。
數據:近24小時ENS域名成交額901.35 ETH,全網排名第一:7月3日消息,根據NFTScan瀏覽器數據顯示,最近24小時ENS域名成交額901.35 ETH,全網排名第一,累計成交了3135筆。[2022/7/3 1:47:53]
鏈下進程監控到Control?合約的AssetBurn?事件,就會給以太坊Vault?合約發一個交易請求,調用Release?接口,以太坊驗證這個交易是來自于見證人后,就會把UNI?從Vault?合約的地址上轉移到指定的用戶地址上,用戶就得到了原始的UNI。這就是一個完整的跨鏈過程。”
——劉毅,《一文詳解跨鏈的技術點及難點:從完美跨鏈談起》
簡單而言,跨鏈是先在A鏈上做一個操作,然后由一個傳話的人把這個消息告訴B鏈,之后B鏈做一個對應的操作。從中也可見側鏈與Layer2方式的不同,側鏈只在跨鏈發生時與主鏈通消息,而Layer2定期要與Layer1通消息。
雖然跨鏈說的是把資產從A鏈跨到B鏈,但B鏈是沒有真正的A鏈資產的,比如,比特幣鏈之外的任何鏈上都不會有真正的BTC,以太坊之外的任何鏈上都不會有真正的ETH。用戶在B鏈上收到的是什么取決于不同的跨鏈實現方式。
鎖定鑄造
鎖定鑄造方式這樣工作:在A鏈鎖定資產,在B鏈鑄造出對應的資產;在B鏈銷毀鑄造出的資產,在A鏈解鎖對應的資產。
用戶在B鏈收到的,是他使用的跨鏈協議鑄造出來的資產,比如使用Ren?跨鏈協議,收到的便是renBTC,它類似于BTC?的某種等值兌換券。只要跨鏈協議和B鏈不出問題,這種兌換券便不會有問題。
鎖定解鎖
假如有一種代幣叫test,其發行方在A鏈和B鏈都發行了代幣,那針對這種代幣就可以使用鎖定解鎖方式:在A鏈鎖定資產,在B鏈釋放等額資產;在B鏈鎖定資產,在A鏈釋放等額資產。
在這種情況下,用戶在B鏈收到的不是類似于兌換券的「假」資產,而是「真」資產。用戶不用擔心跨鏈橋出問題,因為不再需要依賴跨鏈橋把資產跨回源鏈兌現,鎖定解鎖方式對跨鏈橋的使用可以是單方向、一次性的。
這種跨鏈方式安全、利落,但只適用于在多條鏈上都做了發行的token,且需要發行方與跨鏈協議合作。它也許是最優選擇,但單獨使用時是不具有普適性的。
跨鏈池:兌換
兌換的方式需要引入跨鏈池這個新主體。跨鏈池既不位于源鏈,也不位于目標鏈,它位于提供跨鏈服務的協議的鏈上,其工作方式如下圖所示:
用戶的USDT?從以太坊跨鏈到BSC?的過程如下:先在以太坊上鎖定USDT,然后在Poly?上釋放PUSDT,之后在跨鏈池中把PUSDT?兌換為PBUSD,接著在Poly?上鎖定PBUSD,最后在BSC?上釋放BUSD。
這個過程看上去比較復雜,有兩次跨鏈操作加一次交易操作,不過對跨鏈用戶而言該過程是無感的,他放入以太坊上的USDT,得到BSC?上的BUSD。在兌換方式下,用戶在目標鏈收到的是「真」資產,因此也不用擔心跨鏈橋出問題。
這種跨鏈方式之所以被發明并開始變得流行,是因為它能帶來兩個好處:
1.隨意跨token。用戶可以在以太坊上放入任意token,獲得BSC?上他希望的任意token。在下圖的例子中,用戶放入ETH,獲得BNB。
相比對應幣種的跨鏈,該跨鏈過程需要多一次的交易操作,此交易并不是發生在跨鏈協議的交易池里,而是發生在源鏈或目標鏈本來的交易協議中,跨鏈協議在此處分別提供源鏈和目標鏈的DEX?聚合器功能,為用戶尋找源鏈或目標鏈上最好的交易價格。
至于交易是發生在源鏈還是目標鏈,取決于哪種跨鏈路徑上的價格更好,比如該跨鏈過程也可以是:ETH-PETH-PBETH-BETH-(BETH:BNB)-BNB。
更進一步,假設用戶想把ETH?換為USDT,此時BSC?上的交易價格好于以太坊,那么一種可能的交易路徑是:ETH-PETH-PBETH-BETH-(BETH:BUSD)-BUSD-PBUSD-PUSDT-USDT。有一些協議稱打通不同鏈的流動性,我想很大程度上便是指這件事情,這種跨鏈架構能夠通過交易路徑的選擇,給用戶提供多條鏈上最好的交易價格。
2.隨意跨鏈。鎖定解鎖方式是兩條鏈的直連:跨鏈協議在以太坊與BSC?之間建了一條跨鏈橋,在以太坊與Polygon?之間建了一條跨鏈橋,這時候如果想實現BSC?與Polygon?之間的跨鏈,就需要在BSC?與Polygon?之間再新建一條跨鏈橋。
但兌換方式通過跨鏈池把多條鏈連接起來,可實現該架構中任意兩條鏈之間的跨鏈:跨鏈協議接入了以太坊和BSC,這時候如果它接入Polygon,就可以提供Polygon?與以太坊、Polygon?與BSC?間的跨鏈,無需再一一建橋。其結構如下圖所示:
「跨鏈池:兌換」方式可能會催生一個或多個跨鏈底層協議:各個想要在自己應用中提供跨鏈功能的協議,只需接入這些跨鏈協議即可支持跨鏈;而另一方面,「跨鏈池:兌換」也是應用自己做鏈的方式,已有一些DeFi?應用聲明將要做鏈,它們的鏈并不是像公鏈一樣支持各種應用的鏈,而很大可能是上文所述的這樣一條維護它自己的多鏈的流動性池的鏈。
要注意的是,兌換方式與鎖定鑄造方式并不一種取代對方的關系,它們解決不同的問題。兌換方式的跨鏈是基于兩條鏈上已經存在的資產的,它不能把目標鏈上沒有的資產從源鏈「帶」過去,當需要在目標鏈鑄造源鏈資產時,需要使用鎖定鑄造的方式。
跨鏈的其他分類維度
跨鏈需要第三者在兩條鏈之間傳話,上述3種跨鏈方式都不例外。這個傳話的第三者可以是許可式的,比如由跨鏈協議組建的聯盟;也可以是非許可式的,比如由無需許可進入的節點。因此便有3×2=6?種跨鏈方式。
跨鏈還可以分為見證人跨鏈和中繼跨鏈,它們的區別是:
“當目標鏈收到一個消息后,如果是見證人跨鏈,驗證的是這條消息來自于見證人,如果相信見證人,就執行該執行的操作;如果是中繼跨鏈,驗證的不是這條消息來自于哪個中繼,驗證的是這條消息是不是來自于源鏈,如果是,就執行該執行的操作。
也就是說,見證人可以看做是需要被信任的中繼,中繼可以看做是無需被信任的見證人。這就是兩者的核心區別,中繼顯然比見證人更符合trustless的原則。”
——劉毅,《一文詳解跨鏈的技術點及難點:從完美跨鏈談起》
中繼跨鏈優于見證人跨鏈,在這種方式中,負責傳話的第三者是無法作惡的,但該方式需要兩條鏈上互有對方鏈的輕客戶端,而有些鏈是沒有辦法實現別的鏈的輕客戶端的,比如比特幣。
因此這種分類方法不會帶來6×2=12?種跨鏈方式,而是:如果有條件實現中繼跨鏈,跨鏈協議都會去實現它或者以實現它為目標;如果沒有條件實現中繼跨鏈,也只能以見證人的方式跨鏈。
以上是關于跨鏈的全部。跨鏈是跨到另一個賬本記賬,有3種不同的跨鏈方法,不同的方法決定了當跨到目標鏈后你擁有的是什么,也決定了對跨鏈橋的不同的依賴程度。
結束語:
提到跨鏈,我們還會談論波卡與Cosmos。但實際上波卡并不是為跨鏈服務的,它是一個以鏈為單位的結構體,它的跨鏈是指這個結構體內部的鏈與鏈的交互;Cosmos?則是為跨鏈服務的,它做的是鏈之間的通信標準,采用其標準的鏈易于實現跨鏈,但前提是要采用其標準。
最后想要表達的是,雖然現在有一批發展中的公鏈,但其中的絕大部分與以太坊是相似的,真希望未來能出現一些與以太坊不太一樣的公鏈,不是在性能上的不一樣,而是在能做的事情上的不一樣。
當以太坊團隊正式對外宣布Swarm項目啟動時,或許所有圈內人都感受到,另一款天王級項目即將來臨.
1900/1/1 0:00:00為支持Kusama平行鏈插槽競拍,Gate.io今日開啟“質押KSM,一鍵參與KSM插槽拍賣活動”,用戶鎖倉KSM即可為支持的項目助力.
1900/1/1 0:00:00BILL比爾:Swarm和BillCode之前的區別是什么BILL比爾:Swarm和BillCode之前的區別是什么如今在礦圈當中,Swarm作為一個分布式存儲項目十分熱門.
1900/1/1 0:00:00MicroStrategy瘋狂的買入行為,讓該公司和其CEOMichaelSaylor在加密世界名聲大噪.
1900/1/1 0:00:00據Bitcoinwin交易所平臺行情顯示:比特幣在24h內持續震蕩攀升,主要受利多消息影響所致。行情由昨日最低的31700附近上漲至日內最高的37600附近,多頭全面復蘇,行情全線回暖.
1900/1/1 0:00:00本期投票上幣活動已圓滿結束,感謝廣大用戶的參與和支持。Gate.io投票上幣活動將持續帶來更多有潛力的優質項目,敬請期待.
1900/1/1 0:00:00