去年下半年,各種Layer2概念受到大家廣泛關注,時至今日,已經有不少項目和概念證明了自己的價值。其中ZkSync和Optimism 使用的Rollup方式,更是成了Layer2的標準模板。關於Layer2,相信大家看過的文章已經很多了,很多人看完同時也會有一個疑問,除了計算和執行,我們還可以從公鏈上分解出來哪些任務?如果你也這麼想,請先為自己的“區塊鏈原生思維”鼓個掌。

以太坊或者其它公鏈之所以會擁堵,會收如此高的gas費,通俗講就是工作超負荷了。現實世界當中,一個人忙不過來了會去找幫手,一家公司忙不過來了會請外包。但無論用哪種方法,第一步都是釐清任務。

Celestia的出現就是為了填補這一空白,為擴容技術開闢出Layer2以外的新方向——數據可用性與底層公鏈的解耦,團隊目前在官網上顯示有17人,在GitHub上有11人,多數來自以太坊、Harmony和Cosmos。創始人Mustafa Al-Bassam更是在GitHub上非常活躍。

Layer2之後該怎麼擴容,深度解讀Celestia的數據可用性模塊

Celestia在去年3月進行了一次種子輪融資,融資金額為150萬美元,參與者有Maven 11 Capital、Interchain、Signature Venture、Cryptium Labs和Dokia Capital。目前沒有發幣,也沒公佈代幣模型,所以本文將先從產品說起,首先補充一點背景知識。

一條公鏈的任務,可以被分成以下三類:

  • 安全層:在一些場景下也被稱為共識層,但也許隨著“隱私”概念的成長,我們在未來可以看到沒有共識的安全層。目前,你可以把它理解成CAP理論中的分區容錯性(Partition-tolerant), 因為說到底區塊鏈得是去中心化的,而在一個去中心的系統中,節點彼此不信任,需要一個共識來決定誰來出塊(哪個節點貢獻的多)。儘管各大公鏈全部在這上面野心勃勃,但現在看起來還是只有比特幣跟以太坊能承載安全層。未來誰想在共識上超過這兩位是不太可能了,只能寄希望於技術突破,挑戰二者的地位。
  • 數據可用層:當區塊鏈上一筆交易被達成,交易結果會廣播至全鏈進行確認,可有的節點不知道這個被廣播出來的信息中是否包含了假消息,甚至不知道這個出塊的礦工,有沒有把所有出塊需要的信息都發佈出來,這個時候數據也就不可用了。節點數量越多,數據驗證起來就越麻煩,所以在過去的公鏈中,鏈上擴容和數據可用性相矛盾。
  • 執行層:最後,交易和智能合約發生在執行層。所有智能合約、dApps 和用戶也會在執行層面溝通。執行層應專注於處理盡可能多的計算任務,同時將安全性和數據可用性外包交給公鏈。目前的Layer2,如Arbitrum、Optimism、StarkWare 和ZkSync,都在專注於開發更有效的執行層。

Celestia:解決數據可用性

Celestia首先解決的是數據可用性問題,而這個問題說白了,就是當某條鏈上生產出一個新的塊時,新塊裡會包含之前已經被驗證的一部分交易數據,以及其它一些開發者想塞進去的東西。其它的不重要,關鍵這個交易數據,容易被惡意造假。如果沒有這些記錄,其餘節點就不能判斷新塊中是否包含了這些假數據。

那解決這件事的主流辦法是什麼呢?首先,節點被分成了輕節點和全節點:

  • 全節點——需要下載並驗證新塊被生成前的所有交易。屬於用性能換安全。哪怕“51%”攻擊來了,也別想糊弄過去。
  • 輕節點——也就是“不完整的節點”,只驗證區塊頭,不驗證區塊裡面的數據。因為它們假設其餘節點沒有作惡,所以是拿安全換性能。

那麼問題來了,輕節點這個“大多數人都是善良的”的假設這麼不靠譜,如果被騙了怎麼辦?於是以太坊又提出了欺詐證明。

  • 欺詐證明——說起來也和Celestia的創始人Mustafa Al-Bassam有些淵源,最早提到這個概念的論文作者便是Mustafa、Vitalik及Alberto Sonnino。作用是可以針對特定某筆交易,先讓全節點來判斷下真假,再把結果發給輕節點,由於欺詐證明很小,輕節點收到了之後便不用再花精力了解整條鏈的狀態,不會犧牲太多性能,所以算是給輕節點打了個補丁。

可如果新塊的數據不可用,讓全節點也無法篩選無效交易了呢?那即便是全節點,也無法發出來欺詐證明。這就是數據可用性需要面對的問題了。

現在以太坊在處理這個問題的時候,仍然是讓自己來驗證,可眾所周知以太坊這條“貴族鏈”備受詬病,於是Data Availability Sampling (DAS)出現了,它能把一個新塊裡的數據切分出若干樣本,通過抽樣,實現了數據可用性。

這樣做的好處首先是解決了擴容問題。有了DAS,每次做數據可用性耗費的性能差不多,和區塊本身的大小也沒有關係,就和早年間的BT下載一樣,Celestia甚至聲稱它的節點性能只要做到手機即可支持的程度就可以。如此一來,數據可用性問題就變成了一個只需要“無腦”增加節點就能解決的問題。打個比方,我是一個游泳愛好者,如果在游泳時拼命增加划水頻率,會導致換氣頻率一起增加,到頭來換氣的阻力剛好抵消了划水的推力,我累得不行,卻沒能遊的更快,區塊鏈擴容也是一個類似的系統問題,單一調整其中一個變量,會按下葫蘆起來瓢,妄想解決問題。除非能把系統分解開,就像Celestia所做的工作。

Layer2之後該怎麼擴容,深度解讀Celestia的數據可用性模塊

由於Celestia的節點既不運行智能合約,也不去驗證區塊內的數據,它只負責做數據可用證明。所以Celestia的形態就像是一個插件,即插即用,可以和現有的各種Rollup方案結合,讓Layer2安心做好執行層(然而它們並不“安心”,反而想把數據可用層也做了)。

Celestia是如何和Rollup們合作的

Celestia把Rollup分成了自己原生的,和以太坊原生的。前者非常簡單,Rollup可以直接和Celestia打交道,先上傳數據,然後讓Celestia查看數據可用性,最後Rollup在看到新狀態之後再去自己做驗證,整個過程裡Celestia可以說十分清閒,它甚至連Rollup上傳的數據代表了什麼都不知道(因為只有切片樣本),而Rollup找它來做數據可用性,也只是因為它更便宜,性能壓榨地夠狠。

而在以太坊當中,情況就複雜了一些,首先以太坊目前還沒有分片和DAS,但Rollup們即便承受不住鏈上處理成本,也可以轉戰鏈下,讓業內名氣最大的第三方審計機構做數據可用性,這成本甚至可以低到忽略不計。事實上,ZK 2.0已經在這麼做了,StarkEx和Plasma這類更不用提。當然在Celestia看來,鏈下驗證畢竟是中心化的,不能排除作惡的可能。可即便是這些機構作惡,這些鏈下驗證者能做的也僅僅是把交易凍結住一段時間。

ZK 2.0的計劃是為用戶提供更多選擇,如果用戶能忍受高成本,就是還是把數據可用性放到以太坊上做,如果用戶能接受交易在最壞情況下被凍結的假設,那ZK 2.0可以給一個超低gas出來。

Layer2之後該怎麼擴容,深度解讀Celestia的數據可用性模塊

而用戶如果對這兩個方案都不滿意,Celestia就該閃亮登場了,它能作為一個插件,插到以太坊自己的驗證器中,以太坊可以用Celestia發布的簽名和默克爾樹確認某個特定Rollup的數據已經在Celestia上可以用了,然後這個Rollup就可以從以太坊上讀到自己的狀態,接著做執行去。這樣一來,數據可用性仍然是在以太坊上完成的,但Rollup卻不必將與交易相關的完整數據上傳到以太坊,同樣可以實現極低成本。

儘管以太坊還不支持鏈下數據驗證,但Celestia通過以太坊的Validium,還是能做到更低的成本,和更好的安全性。

關於未來會出現的結算層,以及它的競爭者Layer3

Celestia本身是採用Cosmos的SDK開發的,這項開發工具雖然具有天然跨鏈的屬性,卻也天然不能兼容任意種類的Rollup。另外得益於Cosmos的極簡“哲學”,其生態中的應用需要獨自對自己的安全性負責。於是Celestia迎來的第一個挑戰,也是第一項用例,就是幫助Cosmos生態同時解決以上兩個問題。

於是乎,Celestia終於迎來了與Cosmos以及Evmos合作的機會,它們將合作打造一個Cevmos環境,在這個環境中,所有應用是有選擇自己執行環境的能力的,也就是“逃離”CosmosSDK,同時Celestia自己也在尋找更好的默認執行環境,比如Arbitrum VM。

另外Cevmos還能解決一個在以太坊上有些難纏的問題,就是以太坊上的Rollup要和其它應用競爭,導致Rollup的成本價並不那麼優秀。而Cevmos就相當於Celestia的L1,替Celestia擋住一些和它無關的業務,把Rollup傳過來的數據再Rollup一遍,並且只允許Rollup的智能合約,以及不同Rollup之間的一些簡單交互存在。 Polynya曾經質疑過這種受限的L1,但據Celestia創始人解釋,L1受限並不會導致L2受限,依然可以運行dAMM或是DeFi Pooling。由於每一個為Rollup服務的層都可以是單獨的一條鏈,Celestia在這個場景下可以提供由安全層提供的服務,結合Cevmos也就是人們所說的結算層了。 Cermos作為L1的Rollup,被稱為結算Rollup。由於Cevmos和Celestia的天然信任關係,日後這個層也可以朝隱私方向發展。

現在看起來是不是很像Rollup套娃,像Layer3?然而自稱Layer3的另有其人,大家有興趣可以關註一下StarkNet,以及它在隱私方面計劃開發的Layer4,PANews會在之後的文章中再介紹。

最後來總結一下Celestia的優勢:

可擴展性——通過將執行層與安全層和數據可用性解耦,Celestia讓數據可用的擴容變得非常簡單,從一個系統問題,變成了簡單的加減法。性能不夠了?加機器。

簡潔——Celestia畢竟只是一個插件,功能簡單且足夠接近底層。就像雲服務一樣,人人都能用得到,人人所獲得的的服務也都差不多。這點上Celestia配得上所有web3.0基礎設施的榜樣。

共享安全性——對於應用來說(尤其是Cosmos上的),大家現在有一個現成的安全層和數據可用層了,而且能跨鏈,能兼容EVM,還比那些鏈下委員會更安全。

自主性——原先被部署在以太坊或者其它公鏈上的應用,是沒有獨立選擇硬分叉的能力的,每一次迭代都要跟著大環境走。因為這些應用要依賴L1做數據可用性和驗證,所以要在以太坊上做智能合約橋。但Celestia這種擴容方式,雖然能確認數據可用性,卻還是讓Rollup自己做驗證,智能合約就沒必要在部署到L1上了。你可以理解成這是Cosmos和以太坊的優點集成,安全又自由。

模塊化是我去年看到最激動人心的敘事,Celestia的測試網預計今年上半年上線,主網下半年,目前還沒有一個有力的競爭對手。對公鏈功能的拆解不是一種哲學情懷,而是計算機發展的必要環節,模塊化是將優秀應用從公鏈束縛中解救出來的必經之路。比起“改變公鏈敘事”的說法,我認為這更像是對公鏈敘事的延續,它們也許不像過去那麼重要了,但它們所締造的未來會變得更加精彩。