本文由CFG Labs 核心團隊和W3 Hitchhiker共同完成編譯,大部分內容截取於9月15日晚第十次Office Hour
總覽
作者介紹:W3 Hitchhiker,一個獨立的加密貨幣研究團隊,旨在通過第一性原理思維和鏈上數據支持發現尖端技術和創新項目。此前在二級市場,偏主觀,非套保,對沖。從Defi中增持了經驗。逐步對一級也開始感興趣,同時也可以有效地與項目的溝通,找到投資方法和理念。目前整個團隊(人員)在50+。團隊有三個部門,技術部門,籌碼部門,和投研部門。投研部門包括三個負責技術的同事,其中包括任泓毅和劉必成。也是這次的分享嘉賓。我們主要看偏底層的基礎設施類項目。我們對於DA層項目,Layer2的Rollups,ZK等下個週期的技術創新比較感興趣。去年年底了解到Celesita之後,我們希望通過一級市場,技術輸出等方式為社區做些貢獻。我們花了半個月的時間翻譯了Mustafa (Celestia的創始人)的200多頁的博士畢業論文,該論文也融合了Lazyledger(Celestia前身)的白皮書。 Mustafa對於我們的工作還比較認可的,也在社區增持了很多的朋友,包括Chloe &Frank from CFG Labs。這次受到他們的邀請,為大家解讀這個項目。本次主要分享團隊成員有Rex, 任泓毅以及劉必成。
數據可用性
DA的提出,也是比較火熱的話題。我們可以看到以太坊發展中的性能瓶頸,不僅是交易確認速度(十幾秒),高手續費等。所以我們要拓展區塊鏈的性能。以太坊社區裡面的討論方向包括,1)一個是L2,用Rollups做執行和計算,Rollups(執行層)的並行,加速鏈的效率;2) 第二個是鏈的擴容問題,目前鏈都認為區塊擴容是最有效的處理整個網絡效率的方案(State Bloat)。為了能夠使得網絡更好地被利用,Vitalik 在end game 中也提到過擴容(降低費用)和Rollups的方案的提出。但是隨著擴容方案的提出,性能上漲無疑也會給共識節點提出額外的要求,為了保證網絡的安全性,驗證節點通過(區中心化)驗證的方式實現去中心化。共識節點,為了實現1)高性能2)支持更多的rollups加入,需要通過驗證的去中心化方式去實現(全節點vs 輕節點)。數據可用性(Celestia)是非常契合這些要求的。以太坊合併之後第一步是推廣的EIP-4844也就是Proto- Danksharding,以及danksharding 也是強調數據可用性這塊,足可見社區對DA的重視。
DA 官方的解釋就是通過數據抽樣,保證數據在網絡上的可用性。數據可用性如何理解呢?回到之前的點,可以理解下之前提到過的去中心化驗證。本質上就是輕節點在不參與共識的情況下,不需要存儲全部數據,也不需要及時的維護全網的狀態。對於這種節點,需要高效的方式確保數據可用性和準確。接下來介紹下DA與共識在數據安全上的差異。因為區塊鏈的核心在於數據的不可更改。區塊鏈能夠保證數據在全網的數據是一致的。共識節點為了保證性能,會有更為中心化的趨勢。其他節點需要通過DA獲得經過共識確認的可用數據。這裡的共識(交易內容以及交易順序的一致性)與其他網絡的共識(交易的排序,驗證等)並不完全一致。
Celestia 介紹
Celestia遵從了Cosmos的理念,開放,獨立主權,是專注於數據可用性的模塊化公鏈,也做了共識(Tendermint)(沒有提供執行環境)。主要有以下幾個特點:
1)為Rollup提供數據可用性
2)提供結算,共識層分離,需要打造第三層的結算,如果有些應用自己做結算,也是可行的。 3)數據可用性的解決方案。二維糾刪碼+欺詐證明
4)對於輕節點提供高安全性的服務,可以通過欺詐證明,得到相對準確的,被驗證,被網絡認可的有效數據。
下文介紹包括Celestia 工作流程、與Danksharding對比、近期大家關心的話題、Mamaki測試網的現狀、Optimint、Celestia應用方式、系統的驗證、Celestia的費用、社區解答等環節。
Celestia工作流程
Celestia的實現思路主要分為三個部分講解,與其他鏈相似的共識,P2P的交互就不介紹了,這裡主要著重講下差異點:
1)區塊構建上的一些差異。首先定義一個個shares。 shares中包括交易以及這批交易相關的證明的數據。 Cosmos SDK (質押,治理,賬戶體系),Tendermint裡面的共識和執行是分開的。 Celestia本身是沒有執行層,也沒有結算層。所以交易和狀態的關係在Celestia中和以太坊是不一樣的,以太坊的狀態是交易執行完成之後對整個狀態樹的變更。而Celestia設想的狀態不是交易執行,而是交易整個存儲在鏈上的狀態。 (share)之前的實現他們已經推翻了,在找新的方案。這個shares 很關鍵,欺詐證明,抽樣都需要。所以Shares可以理解為交易及交易相關的證明數據,構建成了一個固定長度的,固定格式的數據塊。
Shares 介紹完以後,就是他的區塊和其他鏈的區塊的區別,就是他的data root是什麼呢。 Data Root我們這裡也是按照白皮書來說明(可能跟實際實現不同,只是講概念)。這個圖是2K2K的矩陣。首先看下這個矩陣如何來的。首先是KK的矩陣,K是設定的參數,隨時可以修改。我準備好了KK的矩陣之後,我會把之前的shares,包含交易相關的數據,每個shares 放在矩陣的格子裡面。這樣我會把kk矩陣的格子填充起來。不夠的話就補足,補一些無效數據。如果夠了的呢,就等下一個區塊。這個K的大小意味著Celesita, 單個區塊可以容忍的最多的交易容量,即區塊容量。 Shares裡面這個交易可以是一筆,也可以多筆,同一個批次。固定長度意味著交易是有上限的。 KK確定了Celestia的單個區塊的容量。具體多大需要關注其發展。把這個shares放在KK矩陣之後,首先通過橫向的reed solomon的方式進行拓展,從KK變成2KK的矩陣。 KK是原始數據,擴展數據是2KK減原來的K*K=K’K’。然後再把原來的KK做縱向擴展,得到K”K”,再把K”K”做橫向擴展。通過這種編碼方式,最終得到2K2K個行列的方陣,就把shares 編碼到了data裡面。這個data的構成就是這樣進行的。 DataRoot是什麼呢。我們看到2K2K的矩陣,我們可以把每個行每個列都構建成默克爾樹。默克爾樹就會有默克爾根。我們就會得到2k+2K的默克爾根。然後把24K的默克爾根再構建成默克爾樹,最後得到默克爾樹的根。我們就看到dataroot, 就是data的根。 Data root放在狀態頭(區塊頭)中。 Celesita的DA都是圍繞DATA root來的,區塊的比較關鍵的數據是Data Root。怎麼確認數據和數據相關的交易,怎么生成這些shares,目前在重構。
2)既然我們已經在區塊頭中準備了這些root,接下來我們看看DA是如何工作的。
共識節點和共識節點的交互這裡就不具體闡明了,P2P的方式。 DA涉及到的是共識節點和輕節點的交互問題。不能參與共識的節點統一稱為輕節點。傳播主要看DA 和輕節點之間的流程。我們看是如何交互的。共識節點經歷過一段共識(數據確認)之後,會產生新的區塊,會把區塊頭,包括data root 發送給輕節點。輕節點收到data root之後。就需要進行隨機採樣,我們看到2K2K矩陣,在2K2K矩陣中其中挑選一組坐標,打包成一組集合。這個集合就是本次抽樣的一個集合。將抽樣的集合發送給他們相連的共識節點。請求共識節點將坐標對應shares發送給輕節點。共識節點就有兩種回复。一種我有你請求的,那麼1)shares,以及2)shares在data root中的默克爾證明一起回复給輕節點,輕節點收到回復之後,會去做默克爾證明,證明這個shares 在這個data root裡面的,之後就會接受shares。當他把他的抽樣都收到回應之後。這個時候就基本上認可了這個區塊,認可了這個數據是可用的。 Dataroot都是鏈的交易,能夠回應就說明了這些Data 在網絡上都是被共識節點認可的。如果某個共識節點沒有回應,輕節點會把我收到的相關shares 轉發給對應的共識節點,幫助整個網絡快速的收斂。 P2P網絡,網絡的擴大,共識節點確實收不到/收到比較慢共識結果。我輕節點可以通過這個機制,快速幫助對網絡的傳播。
有個問題,輕節點抽樣一組坐標,沒有說抽樣多少個,2K*2K, 二維糾刪碼,只要抽樣K*K, 是可以完全恢復過來的。為什麼沒有明確的要求輕節點抽樣這麼多個。為什麼沒有明確給出呢。如果我們整個網絡只有1個輕節點,確保數據一定被恢復過來,那麼需要抽樣KK,才能保證恢復原始數據。而實際上對於一條網絡,肯定會有N個輕節點,可以將任務分攤給N個節點。官方官方文檔也給到了計算公式。你抽樣多少次,抽樣多少個,和你得到數據可用的概率的計算公式。輕節點可以需要根據安全等級需求,選擇自己去做一個數據採樣的決定。同時在Celestia中,輕節點越多,塊越大,網絡執行效率就越高。如果只有1個輕節點,採樣數據至少KK個。如果有K*K的輕節點,理想情況下採樣不重複,每個節點只需要抽樣1次就可以了。整個網絡的性能,每個節點的帶寬,性能是一致的。節點越多,意味著抽樣的總數越大的。這也可以解釋節點越多,網絡效率越高。
欺詐證明,為什麼需要有欺詐證明,我們有了糾刪碼,抽樣,理論上獲得的數據。比如說我從十個共識節點抽樣獲得的數據,通過糾刪碼可以確定這些數據是十個節點給的。但是這個地方會有些問題,就是這十個節點都有沒有給我們正確的數據,我們怎麼來做呢。糾刪碼只能證明這些數據是他們想給我們的。但是需要驗證他們想給我們的數據是否是正確,那麼欺詐證明確保共識節點是按照設想規則給我們編碼的。這就是為什麼我們需要欺詐證明。欺詐證明就是來解決這些問題。證明節點通過抽樣獲得shares,恢復的數據到底是對的,還是無效的。
欺詐證明的組成有三個點。
1)我這次欺詐證明是挑戰哪個區塊的數據,欺詐證明是樂觀的,有一定滯後性的,不一定是對當前塊發起的。有可能是對前面幾個塊。
2)我這個欺詐證明,我要指明你的哪個shares出錯了,我要把你出錯的shares指出來。以及shares所在行/列的的根以及默克爾證明告訴我,共識節點按照我們設想的規則。
3)我告訴你他的默克爾證明,還需要(有錯的share所在的)行/列至少K個share,有了K個以後就能夠把行恢復出來的。從而可以進行驗證。
接下來我們介紹下欺詐證明是如何交互的?
共識節點給輕節點回應請求的shares數據,輕節點會把shares發送給其他共識節點(請求其他共識節點幫助驗證)。其他共識節點,會判斷shares和本地數據是否一致,如果不一致,會發起這個欺詐證明。如何判斷欺詐證明的有效性呢?需要進行驗證。
1)指定的區塊哈希(data root)是我本地有的。你錯誤的shares,你要把你的shares 的根和默克爾證明告訴我,我做一個驗證。
2)你這個shares 的行和列的根確實在我這個data root裡面。
3)我會把你給我的shares通過糾刪碼的方式把整個行恢復過來。跟我本地數據做一次對比,發現數據和我的數據確實不一樣。
通過這三種方式,能最終確認欺詐證明是有效的。之前給我shares的共識節點是有問題的。我需要將其列入黑名單,不再接受其發送的任何shares。
這就是欺詐證明交互的流程。到這裡,對於DA,數據可用性流程就差不多了。
我們總結下。 DA 通過二維的RS 糾纏碼,對於交易數據,shares 進行一次編碼,編碼之後生成了data, 這個data在共識節點非共識節點之間通過採樣的方式來獲取data 數據。獲取data數據之後,就可以恢復,可以確認這個data 數據是可用的。比如Rollups恢復自己的交易,去做計算。同時,糾刪碼,只能保證數據是對方想給的數據,引入欺詐證明,保證對方給的數據是按照預想的規則進行編碼。有效的數據,通過這兩個部分,一起才能對輕節點,提供快速驗證並獲取數據有效性的方案。
和Danksharding的對比:
Danksharding 和Celestia的對比。都是通過二維RS糾刪碼進行編碼。但是採用了不同的路徑。 Danksharding, 用的是KZG 多項式承諾。 KZG多項式承諾對於一個多項式他能夠提供承諾,證明某個XY 的f(x)=y 證明某一組xy 恰好就是多項式的根,根意味著這個點是經過多項式曲線的。同時,驗證者不需要知道多項式的具體內容,也不需要具體去執行這個多項式,能夠通過一個簡便的方法, 交易證明就能得到,XY就是多項式的一組解的事實。 KZG多項式承諾,比較契合RS編碼,這裡面涉及RS糾刪碼的實現。 RS糾刪碼的實現把K份數據擴展到2K。怎麼把K份數據擴展到2K呢。我們有K份數據,進行排序之後,簡單理解為他的索引,對應就是XY。 K個點,通過數據計算,傅里葉變換等,可以得到K-1的多項式。可以把這個多項式的圖在坐標軸畫出來。前面0到K-1是原始數據,我們可以擴展後面K個數據。這2K個數據任意拿K個,都可以恢復整個多項式,那麼意味著可以恢復2K個數據,那麼我們可以恢復前面K個原始數據。多項式承諾恰好是對一個多項式以及多項式的證明。他的優勢1)比較契合二次編碼。 2)大小證明是48字節(固定)。 3)因為採用了及時證明,輕節點拿到證明,可以立馬進行驗證,交易的確認是及時的,不像Optimism證明,需要等一段時間,如果沒有人發起挑戰,我才能確認這個交易是OK的。這是KZG承諾的一個優點。
Celestia的欺詐證明是Optimism證明,最大優點是我是樂觀的,只要這個網絡沒有人出錯,效率是非常高的。沒有出錯的話,我不會有欺詐證明。輕節點不需要做任何事情,只要收到數據,按照編碼進行恢復,整個流程不出問題的情況下,非常高效的。數據可用性上面的一個加分頂。
Danksharding 除了數據可用性以外,PBS。 PBS是解決MEV問題。把出塊和共識礦工角色分開。 PBS這個方案限制了區塊打包者審查交易的權利,Crlist也參與了這個工作。這部分和DA相關性不大。 Celestia目前沒有考慮結算層,MEV 還沒有考慮。總結下,Celesita是圍繞數據可用性的公鏈,沒有執行性,結算層,所以整個網絡的容量用在在數據可用性上。以太坊danksharding 不僅僅是數據可用性,還有結算層。
近期熱點話題討論:
剛才必成將的問題需要糾正下, data root 不是2K*2K根,是2K+2k個根。欺詐證明這塊,Celestia 還有個最小誠實節點假設,這意味著當輕節點連接到一個誠實驗證者的時候,就能保證安全。這種情況下拜占庭是不能工作的(⅔)。最新的情況更新下:以前認為多個交易放在一個share裡面,現在是一個交易分成多個shares。
最近團隊第三次電話溝通會議也解釋了danksharding的差異。技術上,上文我們已經做了介紹。而從用戶角度來講,有以下差別:
1)區塊大小。相較於以太坊的blob, 每個區塊16M。 Celestia 承諾會達到100兆的大區塊;
2)Celesita專注於DA, 塊的元數據(輔助數據)較少,和執行有關的數據比較少。門檻費理論上略低於ETH;
3)Rollups的主權的問題,Celestia偏向於自由,Rollups需要確保自主安全性。 ETH有合約檢查Rollups提交的數據的有效性;
Celestia 通過命名空間的方式,確保你不用獲取主鏈上全部的數據,你只需要獲取跟你rollups有關的數據就可以了。
Mamaki 測試網
目前沒有激勵,年底或者明年初可能會有,下一次測試網的升級大概在十月,計劃中更多的是服務開發者,現在的測試網主要是給大家體驗Clestia的工作方式。測試網現在節點工作都是正常的。崩盤之類的bug現在已經比較少了。節點能正常運行。輕節點工作情況還不錯,符合預期。比如減少下載數據量,執行效率高等。網絡方面可能需求稍微高些。主鏈的運行不太穩定,經常出現卡頓的情況,出一個塊需要五分鐘,十分鐘。出塊的順序, 本來在Tendermint機制中,根據質押數決定出塊概率,在質押額差不多的情況下,應該輪流出,但目前經常會有驗證者連續出3–4個塊。
目前看到的問題:
1)驗證者節點的進入和退出,不管質押多少,哪怕小的驗證節點退出都會造成網絡不穩定。
2)不能連接太多的對等節點,只能連接少量的節點,相對比較穩定的節點;
3)交易量不大的情況下,出塊時間為五十秒/塊,讓人擔憂之後的吞吐量。目前還比較早期,優化空間還比較大。
4)橋接節點問題比較大。中秋期間,我們節點重啟後,發現內存和網絡都發生了暴漲的情況。我們也嘗試聯繫了其他驗證者節點服務商。有的橋接節點內存已經跑到了個20個G,非常不正常。 Celestia落盤的數據量是14個G,橋接節點理應是不存儲數據,內存用到20個G,是比較明顯的問題(原因還在研究)。
Tendermint是做一個共識。 Optimint是Celestia rollup用的。目前市面上的rollups只有一個排序者。不需要做共識,只是比較簡單地把排序者打包的數據上傳至主網。如果以後rollups也需要做共識的話,還是應該在Tendermint上改吧。做共識的難度還是比做一個數據上傳難度大很多的。所以這兩個是沒有競爭關係的。
合約方面,Celestia目前考慮執行比較少,它也是藉用現成的CosmWasm這個技術(和Cosmos結合比較好,現在也是屬於一個可用的狀態)(將來還可能有Move VM EVM等)。目前做了兩個示例, 受到主網不穩定的影響比較大。提交交易有時候需要10分鐘,用戶體驗不太好。
Optimint 和App (Cosmos App是應用鏈的形式實現) 目前連接通過ABCI,鏈自己的交易要用共識引擎,上傳功能是通過ABCI,以後還會添加其他方式。
現在節點之間的硬連接(tcp連接)是GRPC,技術比較先進。但用的比較多,兼容性更好的是Rest等方式。還有一點點不完善,在補全的過程中。
講下系統的驗證。輕節點不用下載所有數據,就可以驗證數據有效性。因為做了4倍糾刪碼的擴展,它可以保證很高的可靠性。
1)那麼如何保障抽樣的可靠性如何呢,比如100行*100列,那就是100,00個shares。但每抽樣一次,不是萬分之一的保證。擴展四倍意味著在整個share至少要有1/4的share不可用,你才可能抽到一個不可用的share, 才表示真正不可用,因為恢復不出來。只有在1/4不可用的情況下才恢復不出來,才是真正有效的發現錯誤,所以抽一次的概率大概是1/4。抽十多次,十五次,可以達到99%的可靠性保證。現在在15–20次的範圍之內做選擇。
2)Celesita有沒有正確在做DA 驗證。比如你一個rollups,你把數據傳到Celesita,ETH有合約驗證交易的有效性,而Celestia 返還給rollups節點以後,再去驗證數據。
這裡講下節點的角色。比如節點在rollups 是什麼角色,在Celestia上可能是另外的角色。比如他可能是rollups上的輕節點,全節點,但是可能都是Celestia上的輕節點。只需要作為輕節點,就能夠獲取數據,沒必要像在以太坊中一樣重新做一個全節點,可能相對於ETH現在的方案,更為優勢些。 ETH如果要驗證數據發送到主網,你需要啟一個主網的全節點。 Celesita只需要輕節點。輕節點的話,那麼就是說抽樣保證可靠性。
剛才提到的最小誠實假設意味著你作為輕節點,只需要連接一個誠實節點,就能保證安全性,如果你連這個都不信呢,萬一一個誠實節點都沒連上呢?那麼你可以啟動一個rollups的全節點,你把你rollups的數據全部拿來,跟你的排序者發布的root做一個校驗。關於Rollups自己狀態的驗證,Celesita沒有執行能力。比如你賬戶餘額,需要自己驗證。如果你的排序者作惡,發兩個塊高一樣的塊至Celestia,Celestia只是保證把他發來的這兩份數據都發給你Rollups的節點, Rollup節點收到兩個塊高一樣的數據,現在ETH遇到這種情況,那就是分叉了,怎麼處理,Rollups自己負責了。
Celestia的費用有兩部分
1)Rollups自己的字節費用和執行gas。如果以太坊作為執行層,用ETH結算。
2)Celesita保存交易數據的費用(排序者,自己打包支付,你如何從其他節點,或者說Rollups用戶怎麼把錢收回來,需要Rollups自己設計。)(可能還有狀態根數據等等)。存儲費用是celestia本幣支付,架構上也支持其他幣種。目前也做了更改。你上傳的數據與支付的邏輯分開了。
3)目標是做到兩部分的數據綜合起來也要比單獨把數據放在以太坊便宜。 ETH是call data 比較貴。 ETH做了danksharding之後,KZG 之後成本會更低。但是Celesita承諾費用更低。
4)存儲方式的選擇更為靈活,Celestia, ETH,或者線下存儲。
Celestia 應用的方式
1)直接上主網或者執行Rollups, 不太關心交易的順序。讓Celestia的驗證者做交易排序,你沒有主權。
2)主權rollups 排序者和Celesita打交道,其他節點從Celesita獲取數據,執行,維護安全交給Rollups 自己
3)ER 直接構建在L1 規範中,而不是作為智能合約部署。和ETH結合,ETH 作為Celestia結算層,其他rollups連接到結算層。可能不是直接到Celesita,通過結算層和Celesita打交道
4)量子引力橋,完全把Celesita作為ETH的外掛。
理論上都可以實現,ETH作為Celestia的結算層,或者Celestia作為ETH的DA層。可組合型,都是可實現的。
社區問答
1)Celestia有幾種節點?
Q&A:Member A
Celestia上的全節點:存儲節點,不是ETH 那種全功能節點。存儲所有數據的節點。共識節點也好理解。輕節點也好理解。橋接節點,為了做DA, 要提供RPC服務,要給輕節點連接的服務,提供給輕節點做數據採樣專門用的功能。這個專門做了節點叫做橋接節點:共識節點,全節點和輕節點間的二傳手。類似於網關
2)Q&A: 命名空間是什麼?
Rollup上傳給Celesia, 存儲在Celestia,而每個Rollups只想取自己的數據。命名空間是每個Rollups之間區分標誌。 Rollups取數據的時候帶上這個標誌,就可以僅取出自己的數據了。工作方式的不同:主權rollups 就是你把數據傳送給我,我只需要驗證交易數據簽名是排序者的簽名,認可你這個數據。我給你Rollups的服務,保證數據原封不動的傳送給其他Rollups的節點。就完成了DA的工作。這是rollup的一種工作方式。還有另一種工作方式,ETH的Smart Contract Rollups由一系列合約來定義的。為了區分,給了不同的名稱。
3)分片,擴展性如何解決?
區塊就是純數據,不做執行,處理能力比較高,沒有很多驗證。一個塊100兆,現在看來還是有一定把握。純二進制數據,不關心裡面是什麼,只要排序者簽名,不管裡面的內容。
4)Rollups 數據存了一份在Celestia上,數據可用,但是驗證有效性,效率如何?抽樣驗證,會隨著你的存的數據越大,成本變化越來越高嗎,以太坊全節點幾百個G, 將近1T (1T=1000G). 一個Rollups 未來數據量越來越大,所需要花的成本越來越多。其中關係有沒有相關研究?
W3回答:Celestia 區塊是有容量的,交易越多,成本越大,那麼Celestia如何處理的呢?首先其沒有執行層,所有Rollups交易對於Celesita來說都是一段二進制,純粹是一段數據,沒有實際意義的。對於任何一個鏈,都是有一個容量大小的。 data root,K*K就是區塊容量。怎麼擴展區塊容量呢,輕節點是可以幫助整個網絡來收斂的。 Celestia比較鍾情於這種大區塊。那麼我怎麼幫助整個網絡大區塊的傳播。我會加速網絡的收斂速度,輕節點越多。輕節點抽樣的時候會進行二次轉發。這個二次轉發的過程加速整個網絡收斂的過程,提高網絡的效率。我的輕節點的帶寬也是能夠貢獻出來的,幫助共識節點之間進行區塊的傳播。增加輕節點的數量,而不是單個節點的負載。
CFG Labs: DA區塊大小就像互聯網的帶寬,是核心指標。每秒DA區塊能容納的bytes 越多,rollups執行層的交易就越多,區塊鏈速度越快。每秒的bytes,從流量的角度來看就是bandwidth。
5)問:區塊存儲的數據變大,花費是否成線性關係?輕節點還要參與共識,成本增高,共識的時間也會增多? (時間,成本,實驗結果)
回答:Celestia 是沒有執行層的。我的共識是什麼?我的共識只需要把數據蒐集過來。數據確認好,順序確認好,我的共識就完了。我的共識並不需要執行。那麼隨著數據量的增加,那麼我的開銷主要增加在哪裡呢?一個是存儲,一個是帶寬。我的計算是沒有的。我們有全節點,專門做存儲的節點。還有輕節點是通過抽樣部分數據幫助大區塊P2P 傳播。輕節點帶寬幫助共識節點的交互。
問題:Celestia 採樣,採樣速度是否和數據區塊數據區塊大小無直接關聯。 100個區塊中,採樣不同位置的10個點,100兆,1000兆,時間一樣。消耗的費用更多?
回答:你提到數據量變大了,整體費用上漲,而官方解釋節點越多,處理量越大。我不知道你對這句話的理解是什麼樣的?我如果節點數量固定,我能處理的量就那麼多了,但可以增加節點增加節點。所以這個輕節點網絡擴展了處理能力,Celesita是用了另外一種方式緩解這個容量衝突的問題。 Celestia 區塊大小,隨著輕節點數量擴展,這裡的輕節點並不限於某一個rollups 的輕節點,而是指所有Rollups的輕節點共同參與這個事情(不管是哪個Rollups參與)。對於全網來說,成本越多, 但是輕節點分攤下來,每個採樣的數據量不會有太多變化。比如說數據現在100兆,之後變為200兆。可能需要的輕節點數量也翻倍了。對於單個輕節點來說,成本不會太大。也是通過數量的擴展,對於單個輕節點,感知不到擴容問題的。對於輕節點的影響是有限的。 100兆這樣的塊,還沒達到極限。
沒有這個東西,平方根是一個老早就有的,以訛傳訛的東西,來源於最早的翻譯者沒有完全理解,不管區塊多大,區塊頭里面,data root的大小根本不會變化。但以後可能會加上消息索引,那個會隨消息數量變化,但是索引嘛,本來就很小,只有數據本身的幾百分之一。
問題:存儲節點,輕節點,出塊節點,這幾個節點的激勵分配是如何?
W3: 費用考慮的不是特別多。輕節點主要是用戶, Celestia存儲費用可能分不到,其他與共識節點,存儲節點,橋接節點,之間的分配。像我們目前搭節點是搭一套,我們目前也沒有想過怎麼給自己分錢這個問題。按照POS的機制,是根據質押數量來決定。涉及安全和攻擊,一定要平衡。
問題:執行層,DA層,Celestia和我們現有的方案,比如以太坊,zkrollups, OProllups, 還有Cosmos 其他生態項目,我自己比如想做rollups,應該如何部署?
回答: Celesita的應用方式有三種,如果直接上Celestia主網或者簡單Rollups, 那麼直接搭Celesia的全節點就好了。如果主權Rollups,就要考慮如何設計你的排序器,考慮如何設計自己網絡的安全機制。排序器負責把數據傳給Celestia,付存儲數據的費用,你Rollups上的其他節點可以作為Celestia上的輕節點, 把數據從Celestia上取下來。你自己的鏈,做自己的業務,和邏輯。如果是量子引力橋,那是部署在ETH的合約,如果你是ETH的rollups,是不會和Celesitia打交道。
8)問題Cevmos 以太坊智能合約可以部署在Cevmos,Celesita + Cevmos +Rollups
Cevmos可以理解用來做執行層,結算。那麼整個工作機制是怎樣。
回答:Rollups上其他的節點從Celestia 取得數據之後,傳給Cevmos上去執行,執行更新自己的狀態。根據你的設計,因為你的排序者可能會執行,也可能不執行。如果要驗證你的交易,打包,也需要將你的交易到cevmos中跑一下,確認你的交易是有效的,然後再打包,上傳。這取決於你自己的rollups怎麼去設計這個機制。 Rollups將交易發給排序者,排序者將交易上傳至Celestia,你的其他節點再從Celestia上把數據取下來,你再通過一個執行的虛擬機去執行。這是整個循環過程。結算層主要解決不同資產之間的交易所問題,並且提供了安全保障(比如以太坊)。不同鏈間的資產交易所需要搭橋(可信任橋和最小信任橋),需要共同結算層。目前典型的Rollups 只有一個排序者,未來會引入共識機制,比如Tendermint,Avalanche等方式,可以實現自主設計。
來源:bress_xyz
資訊來源:由0x資訊採集自互聯網。版權歸作者“Bress”所有,未經許可,不得轉載