在經歷Luna/UST算法穩定幣的崩盤後,市場持續下跌,繼而又爆出了3AC,Celsuis,BlockFi等機構的一系列流動性危機。加密市場在多重打擊之下,BTC已經跌破了上一輪牛市的高點,眾多山寨幣也相繼跌去大部分的市值。
在此時刻,圈內出現了很多質疑的聲音,很多人開始搖擺是否退圈,也有很多人在質疑Crypto和web3的未來,在一輪一輪的下跌中,在無數人的質疑下,很多人被洗下車,長久的離開了Crypto。但是歷史的經驗表明,只有頂住自我的懷疑,並對行業保持持續思考和建設的人,最終享受到了Crypto發展的紅利和果實。
自從Vitalik發布《以Rollup為中心的以太坊發展路線圖》之後,敏銳者已意識到,Rollup將作為以太坊應用和生態的中心,承載以太坊執行層的功能,這是以太坊未來的趨勢,也是未來元宇宙的基礎設施。
Arbitrum作為以太坊生態目前最大,最成熟的Rollup Layer2,相比其他二層已有先發優勢,其未來的發展基於以太坊安全性和去中心化特性的加持,很有可能繼續領先其他公鍊和廣義二層競爭對手。 Arbitrum 奧德賽活動正在如火如荼的進行,如果你與我一樣對Arbitrum興趣盎然,可參考此文,加深了解,提高認知,在漫長熊市中堅定信仰。
一、老生常談-不可能三角
相信參與Crypto或區塊鏈的人,都多多少少聽過“不可能三角”,即區塊鏈無法同時實現“去中心化、安全性、高性能”這三個特性,任何區塊鏈的設計只能選擇其中的兩個,而在一定程度上犧牲一個特性。
以太坊選擇了安全性和去中心化特性,使得其在性能上不斷成為後來者攻擊的對象,他的競爭者們利用以太坊在完善性能的過程中於資本的助推下,搶占了部分以太坊的流量和生態,得以快速崛起,形成多鏈競爭的格局。
迫於智能合約公鏈平台的定位,以太坊在出塊時間上相比比特幣10min的出塊時間已經做了較大的讓步,PoW共識的情況下,出塊時間為13S左右,而轉為PoS以後,出塊時間固定為12S,在出塊時間對性能的提升上,做了最大的優化,如果出塊時間過短或區塊空間過大,其在P2P網絡中的同步就會比較困難,這對網絡安全存在威脅,以太坊擁有數千個節點,客戶端要實現同步,在P2P網絡中要留夠充足的時間,否則網絡極易因同步延遲出現分叉,進而影響網絡的安全性和去中心化特性。
而其他公鍊或側鏈大多為高性能和較高的TPS,放棄了去中心化特性,只選定了數量極少的節點來形成共識出塊,以此使節點客戶端之間的同步時間和區塊空間獲得提升,進而提高性能,吸引了不少用戶。
說到這,很多人可能覺得這也挺好啊,可以在使用過程獲得較好的體驗,不過這樣高性能的體驗要付出代價也不小,這就不得不說一下作為側鏈的Ronin——單獨為Axies infinity鏈遊設計的側鏈,2022年3月31日,Ronin的開發公司Sky Mavis發布消息,其跨鏈橋中的17.36萬個ETH和2550萬美元現金被黑客盜走,此次損失高達6.1億美元。
事後分析原因,是因為黑客盜取了Ronin驗證器節點和Axie DAO驗證器節點的私鑰偽造提款,盜竊了橋中的資產。 Ronin橋由9個驗證器節點,黑客僅獲得了5個驗證器節點的控制就盜走了資產,由此可見,犧牲去中心化和安全性換來的高性能,發生極端情況時非常的脆弱。
說了那麼多,我們來聊聊區塊鏈誕生的初心,這有助於我們撥開眼前的迷霧,看清真相。 2008中本聰創造BTC,我不清楚他為什麼創立BTC,但是BTC的出現造成了一個事實——一種去中心化的,足夠安全的電子貨幣正式對中央銀行的貨幣發起了挑戰。
儘管其成長和試驗的路程漫長而曲折,我們無法得知其是否會成功,但可以確定它承載了人們對去中心化的美好願望。繼比特幣之後,以太坊是最具去中心化的區塊鏈,以太坊的開發人員和社區選擇了將去中心化和安全性放在首位,這也在很大程度上造就了以太坊的成功,因為人們創造和參與區塊鏈的初心就是在這個世界裡能存在一個去中心化的,足夠安全不會被單點控制的系統,以太坊一直走在這條路上,這或是未來元宇宙和現實世界並存的基礎,元宇宙可以實現人的跨國界,跨地域交流融合,而元宇宙的基礎需要的也將是一個去中心化的,足夠安全的底層。
以太坊以及以太坊生態看似會是未來最好的選擇。但這是否就意味著我們不需要提高以太坊的性能了?其實不然!曾經以太坊的擴容方案,如plasma,側鍊等,走了一條相對不那麼安全的路,直到Rollup和模塊化區塊鏈的提出,終於讓不可能三角有了鬆動的跡象。
二、模塊化區塊鏈
模塊化區塊鏈指的是將區塊鏈的執行層,共識層,數據可用性層等分離,以實現區塊鏈的可擴展性和性能的提升。以太坊在合併之前運行的主網鍊是執行層,負責運行虛擬機來實現世界狀態的改變以及智能合約的執行,也就是運行Dapp和處理交易的地方。而合併後beacon chain則作為共識層來替換掉現有的PoW共識機制負責以太坊新區塊的出塊權選擇,不同於之前以太坊的挖礦方式,合併以後的以太坊不再需要重複計算哈希函數,而是通過隨機挑選驗證節點的方式來打包出塊,並通過將區塊提議者和打包者分離的方式進一步防止作惡,至此,共識層與執行層實現分離。
目前的單一區塊鏈,共識,執行,D/A都是一層來做,而Rollup設計的出現正在將執行轉移到鏈外,將交易的執行和狀態轉換放到鏈下,通過將數據上傳到以太坊主網來保證數據可用性從而實現執行層和數據可用性層的分離。
單片區塊鏈正像CPU的發展歷程一樣,向著模塊化區塊鏈發展,這是區塊鏈平衡三難困境的最佳方案,而Rollup是破局不可能三角非常關鍵的一環。
三、Rollup擴容
Rollup,作為V神欽點的Layer2擴容方案,被社區認為是當下以太坊擴容的最佳路徑。目前主流的Rollup擴容方案有兩種,分別是Optimisitc Rollup和ZK-Rollup,其中OP-Rollup採用欺詐證明機制來確保Rollup的安全性,主流的解決方案有Arbitrum和Optimism。 ZK-Rollup採用零知識證明來確保安全性,主流的通用解決方案有zksync和Starknet等,除此之外,還有諸如Obscuro這樣的TEE Rollup方案來對以太坊擴容。
所謂的Rollup是通過將原本發生在主網的計算和部分數據的存儲放到鏈下,來分散主網計算壓力,只將計算結果以calldata的形式傳回以太坊主網進行存儲,存儲到以太坊主網的數據為恢復Rollup鏈的最小數據,並通過欺詐證明和零知識證明來確保傳回主網數據的正確性,以此做到Rollup對於以太坊主網安全性的繼承。 Rollup擴容已經成為以太坊擴容最有前景的方向,而Arbitrum在其中佔據了重要的地位。
四、詳談Arbitrum的架構設計
1.Ethereum Layer1主網合約
前文提到,Rollup是通過將數據上傳到以太坊主網來確保數據可用性的,這是怎麼做到的?在以太坊主網,Arbitrum部署瞭如下幾個主要合約,inbox合約、outbox合約、ETHBridge和Rollup合約。
●inbox合約:可以理解為Arbitrum在以太坊主網開設的信箱,專門用來存放Sequencer提交的calldata數據,驗證者或者生態的其他參與方可以根據inbox合約裡面的數據在本地恢復出完整的Sequencer鏈。
●outbox合約:outbox合約主要用於接收layer2返回layer1的消息,比方說,在Arbitrum官方橋回撤資產以後,經過七天的挑戰期,用戶需要到官方橋去claim一下從Arbitrum回撤的資產,以實現資產回到以太坊主網的完整性。
●ETHbridge:ETHBridge合約管理著Arbitrum的官方橋,用戶將資產存入Arbitrum官方橋合約,資產在以太坊主網鎖定,同時通過可重試票據在將資產轉移到Arbitrum。
●Rollup合約:Rollup合約負責在以太坊主網執行欺詐證明。通過鏈下確定爭議斷言以後,Rollup合約會對存在爭議的交易進行交易驗證,最終判定交易的正確性,同時罰沒作惡方質押資產。
2.Sequencer Chain
Sequencer Chain指的是Sequencer(定序器,對二層交易進行打包排序的全節點,相當於二層網絡的出塊節點,不同於其他的layer1網絡,Sequencer節點不需要通過共識算法來競爭出塊權,而是直接具有打包區塊的權力,目前Arbitrum的Sequencer由官方運行,出塊權完全由官方掌握)對Rollup中交易進行打包進layer2區塊並用鍊式結構連接起來的區塊鏈,其數據結構和一般區塊鏈的數據結構類似,Layer2的交易數據都通過Sequencer Chain來儲存,用戶發起一筆交易,通過RPC(遠程過程調用)將交易發送給RPC node,RPC node再轉發給Sequencer節點,Sequencer在接收到用戶的交易之後立即對交易進行打包處理,實現layer2交易的初級確認。
在收集到一段時間內的交易以後,Sequencer會將這段時間內的交易組成一個批次,經過壓縮以後以calldata的形式將交易數據上傳到Arbitrum部署在以太坊Layer1的Sequencer inbox合約中,以實現將數據可用性放在以太坊主網,而將執行遷移到layer2的設計,至此,實現了layer2的第二步確認。到這裡我將提出幾個問題,來探討Sequencer的細節。
●問題一:Sequencer無需共識算法競爭就有打包權,且控制在Arbitrum官方手裡,是不是意味著layer2中心化了?
●問題二:Sequencer是如何處理MEV(礦工可提取價值)的?
●問題三:Sequencer作為推進Sequencer Chain的主要節點,如果宕機,layer2的交易怎麼辦呢?
首先,我們來探討第一個問題,目前Sequencer是運行在Arbitrum官方手裡的,這是因為項目正處在發展的早期,項目方掌握Sequencer,有助於確保項目的安全升級以及Arbitrum的推進。也許對於鏈的掌控是存在一定的中心化問題,但是根據Sequencer上傳到inbox合約中的數據,用戶完全可以恢復出layer2的完整交易,並且能夠順利的將layer2的資產回撤回layer1,在資產所有權層面是足夠安全的,因為其依託的是layer1的安全性。且隨著項目的成熟,Sequencer也將會逐漸去中心化,交由社區和Arbitrum項目方共同來管理和運行,目前Arbitrum和Chainlink已經在去中心化的定序器方面展開了合作,未來也將推進Arbitrum Sequencer的去中心化。
對於第二個問題,需要先了解MEV的組成,MEV包括交易手續費和三明治攻擊套利,目前Sequencer由Arbitrum官方運行,對於layer2的交易是按照先到先排的原則進行交易排序和打包,並不存在三明治攻擊,僅僅是收取了layer2交易計算和存儲的費用以及calldata上傳到主網inbox合約所需的gas費用。當Sequencer去中心化以後,會有相對較多的參與方通過隨機選擇成為Sequencer節點,此時出於博弈,Sequencer也會提取MEV,不過Arbitrum的路線也是會朝著MEV合理提取,最小化MEV的路線發展。
問題三,Sequencer節點宕機以後,是不是就意味著layer2上面的交易無法處理了呢?其實不然,Arbitrum在設計之初就考慮到了這個問題,當Sequencer宕機的時候,用戶在Layer2發起的交易將會通過layer1 RPC調用將交易發送到layer1的Delayed inbox合約來確保交易可以被處理和存儲。
3.Rollup Chain
前文我們提到,layer2的交易在Sequencer被打包以後以calldata的形式傳到layer1的inbox合約中,那誰來替我們驗證存到layer1的數據是否是真實的呢,Sequencer在上傳的時候是否作弊加入了虛假交易,這個時候就得說到Optimistic Rollup特殊的欺詐證明機制了。 Sequncer傳到inbox合約的數據都是公開透明的,可以被全網的參與者監督,這也是欺詐證明的基礎。
因為作惡者永遠不知道有多少參與者在監督著鏈上的數據。這時候引入了另外一條鏈,即Rollup Chain,也可以將之稱為驗證者鏈。每一個人在條件允許的情況下,都可以根據inbox合約中的calldata數據在自己的本地運行一條Sequencer鏈,因為inbox合約中的數據是還原layer2狀態的最少數據,人們可以在本地運行所有的交易,以確保Sequencer沒有作惡。
但是真的要所有人來維護Arbitrum狀態嗎?顯然是不可能的,只有類似交易所這些在Arbitrum擁有大量資產的參與者會自己在本地來維護Arbitrum狀態,來確保自己的資產在Arbitrum是安全的。這就是為什麼說會有很多的Sequencer Chain的原因,只不過僅有Arbitrum自己運行的那條Sequencer鏈才是主要維持網絡的鏈。
而Rollup Chian則是網絡中的驗證者對於網絡狀態質押產生的鏈,其運行在以太坊主網,比方說在一段時間內,驗證者會對Sequencer上傳到Inbox合約中的狀態進行質押,即驗證者押注正確的交易,通過質押ETH發布斷言,聲稱質押這段交易歷史是正確的。
如果所有的交易都是正確的,那麼鏈的狀態將會持續推進更新,可如果此時有人做惡,質押了錯誤的交易狀態,這個時候網絡中的作惡者會與押注正確狀態的驗證者產生衝突,此時Rollup chain出現分歧,正義驗證者和作惡者通過類似二分法的方式找到存在爭議的交易,查找爭議交易數據的這些操作在layer2執行,當明確爭議區間以後,由部署在layer1的Rollup合約重新執行爭議交易,並裁決雙方的斷言,最後作惡者會被罰沒質押的ETH,其中的一部分會獎勵給正義驗證者,以獎勵其對網絡的保護。
為了防止作惡者攻擊網絡,罰沒的ETH會有一部分銷毀,防止正義驗證者和作惡者串通,零成本攻擊網絡。而這就是Rollup Chain和欺詐證明。簡單敘述就是網絡中的眾多參與者都在本地運行完整的layer2的狀態,當發現有惡意交易企圖篡改鏈的狀態的時候,眾多參與者會通過欺詐證明推進鏈的狀態朝著正確的方向前進,而欺詐證明的挑戰期為7天,7天以後交易狀態確認,無法再進行修改。這是layer2交易的第三級確認,在以太坊主網不分叉的前提下,第三級確認即為layer2交易的最終確認狀態。
4.Ntiro
目前Arbitrum運行的網絡是Arbitrum One,offchain labs通過mimi語言編寫了AVM,AVM是Arbitrum上面兼容EVM的虛擬機,在以太坊主網上面運行的dapp可以將自己的應用無縫遷移到Arbitrum上面,因為Arbitrum實現了字節碼層面的EVM兼容,這就意味著,開發者幾乎無需做什麼代碼的調整就可以將應用部署在Arbitrum上面。
而Ntiro是Arbitrum One的升級,在Ntiro升級中,Arbitrum優化了gas模型,使得Arbitrum的開發體驗更加接近以太坊主網,對開發者和用戶都更友好,除此之外,Ntiro升級將會移除AVM,取而代之的是用WASM編譯的Go-Ethereum,Go-Ethereum是用Go語言編寫的以太坊客戶端,也是目前以太坊主網使用佔比最多的以太坊客戶端。此升級將會使得欺詐證明能夠更好的運行在layer2,同時用戶也能獲得更好的交互體驗,而這一切升級都是平緩轉移的,用戶最直觀的感受是Arbitrum變得更好用了。
5.Anytrust
Anytrust鍊是Arbitrum推出的基於Ntiro堆棧之上實施的鏈,由此可見,他們大概會在相近的時間一起推出,然後一起運行,Anytrust由一個節點委員會負責運行,相比側鏈,Anytrust所需的信任假設更少,傳統側鏈需要超過2/3的節點是誠實的才能保證鏈的安全,而Anytrust依賴Rollup的功能,只需要極小比例的節點是誠實的便可以確保安全,即使發生不少成員拒絕合作的情況,鏈依然可以通過回退到Rollup的狀態以正常運行,當委員會恢復正常運行時,又會切換回Anytrust。
Anytrust的推出主要是針對鏈遊等高頻交易的應用場景,即使Ntiro能夠實現較高的擴展,但是為了滿足鏈遊等應用的需求和平衡生態的發展,Anytrus將為開發者提供更多的選擇,方便其構建項目和生態。
五、風物長宜放眼量
在市場下跌和行情遇冷的情況下,我們不禁會受到影響隨波動搖,但學會質疑使我們能夠在混亂中更加清晰的把握事物的本質。真正具有顛覆性的創新不會被市場的波動所打倒,能打敗它的只有更加顛覆的創新。 Rollup技術是解決以太坊擴容的顛覆性技術,是真正的在解決以太坊的性能痛點和需求,對Rollup保持信心,也對Arbitrum保持信心,以太坊擴容之路道阻且長,但值得慶幸的是,一直有優秀的團隊在前行,構建產品。我們應該在這樣的氛圍裡冷靜思考,思考如何去參與構建和完善存在的問題,這會使我們頭腦更加清晰,並在探索的過程中發現更多不可思議的創新!
撰文: 0xCryptolee,CIG Builder
技術審閱:Jason(Arbitrum)
編輯:吳極,CIG Labs 主理人
來源:bress