DA=數據髮布≠歷史數據檢索

中級2/28/2024, 5:25:00 AM
本文著重探討到底什麽是數據可用性。
  • 轉髮原文標題:對數據可用性的誤解:DA=數據髮布≠歷史數據檢索

導語:到底什麽是數據可用性?可能絶大多數人第一印象是“可以穫取某個時刻的歷史數據”,但這其實是對DA概念最大的誤解。近期L2BEAT聯創與Danksharding提出者、Celestia創始人都對這一誤區做出了澄清,他們指出,Data Avalibity實際上應該指“數據髮布”,但大多數人把DA理解成了“歷史數據可檢索”,而後者實際上涉及到數據存儲問題。


比如,前一陣子Dankrad曾提到了Layer2的強製提款/逃生艙機製,他指出,Validium的強製提款需要穫取最新的L2狀態來構造Merkle Proof,但Plasma隻需要7天以前的(這和兩者的合法Stateroot判定方式有關)。

借此,Dankrad明確指出,Validium需要DA保障用戶資金安全,而Plasma不需要。在此處,Dankrad用案例指出了DA和歷史數據可檢索的不衕之處,即DA往往隻涉及新髮布的數據。


在L2BEAT那裡,數據可用性DA與數據存儲DS的區別被進一步加強。L2BEAT的Bartek多次強調,DA和數據存儲/歷史數據可查是兩碼事,而用戶能夠穫取到自己需要的L2數據,隻是因爲那些提供數據的節點“對你足夠好”。此外,L2BEAT還計畫把“是否有權限開放的數據存儲節點”當做DA之外的一個測評Rollup的新指標。



以太坊社區/以太坊基金會成員的上述言辭,錶明了他們要在未來對Layer2相關概念進行規範化的梳理,併對Layer2本身進行更詳實的定義。因爲圍繞著Rollup和L2的很多名詞其實都沒有被很好的解釋清楚,比如多久前的數據算“歷史數據”——有人認爲,因爲智能合約隻能調用256個block內的過往區塊數據,所以256個區塊(50min)前的數據都算“歷史數據”。

而Celestia和以太坊基金會口中的“Rollup”,嚴格來説都是兩種東西。本文旨在澄清DA概念和數據存儲的區別,從DA的來源、數據可用性採樣、Rollup的DA實現方式,來爲大家解釋到底什麽才是數據可用性——數據髮布。

DA概念的來源

關於“數據可用性”問題到底指什麽,Celestia創始人Mustafa如此解釋:DA就是,當區塊生成者提出新block時,如何確保區塊裡的所有數據都髮布到了網絡中?如果區塊生成者不Release區塊中的所有數據,就無法檢測區塊裡是否包含錯誤交易。

Mustafa還指出,以太坊Rollup簡單地將L2區塊數據髮布到以太坊鏈上,併依賴ETH來保障數據可用性。

而在以太坊官網,有關於DA的如下概括:可以把數據可用性難題概括爲一個問題:“我們如何驗證一個新區塊的數據是否可用?”……對於輕客戶端來説,數據可用性問題是指在無需下載整個區塊的情況下,驗證區塊的可用性。

以太坊官網還明確區分了數據可用性與可檢索性的區別:數據可用性是指區塊被提出時,節點下載區塊數據的能力。換句話説,數據可用性與區塊尚未達成共識時相關……數據可檢索性是指節點從區塊鏈中檢索歷史信息的能力……雖然存檔可能需要區塊鏈歷史數據,但節點無需使用歷史數據就可以驗證區塊併處理交易。

在Celestia中國貢獻者——W3Hitchhiker合伙人任泓毅看來,Layer2事先假設Ethereum足夠安全和去中心化,排序器可以放心大膽的把DA數據髮到以太坊,這些數據會無阻礙的傳播給所有以太坊全節點。而L2全節點本身就要運行Geth客戶端,算是以太坊全節點的子集,所以可以接收到Layer2的DA數據。

而在EthStorage的創始人Qi Zhou博士眼裡,DA的定義是沒有人可以把用戶提交到網絡裡的交易數據扣留住。對應的信任模型是,我們隻需要信任L1的協議本身,不需要再引入其他信任假設。

Qi Zhou指出,現在以太坊的DA實現方式其實就是P2P廣播(gossip流言協議),每個全節點都會下載併傳播新block,併存儲Rollup的數據。當然,以太坊全節點併不會永久存儲歷史區塊,在4844上線後可能會自動刪除一段時間前的數據(貌似是18天)。存放全部歷史數據的檔案節點,現在全世界也沒有多少,EthStorage則打算填補以太坊體繫的這一空白,併助力Layer2設置自己專屬的數據永存節點。

而以太坊基金會關於數據可用性Data availability的早期討論,可見於Vitalik在2017年的推文與github文檔。當時他認爲,如果要保證區塊鏈可拓展/高效率,就要抬高全節點的硬件配置(全節點就是下載完整block併驗證其有效性的節點,做共識的Validator是全節點的子集)。但如果提高全節點硬件配置,就會提升運行成本,導緻區塊鏈變得中心化。

關於這一點,Vitalik説,可以設計一種方案,解決高性能全節點趨於中心化帶來的安全隱患。他打算引入糾刪碼和數據隨機抽樣來設計一套協議,使得低配硬件的輕節點即便不穫知完整的block,也可以得知block沒有問題。

他最開始的想法其實和比特幣白皮書裡提到的idea有關。這個idea説,輕節點可以不接收完整block,而當block有問題時,誠實全節點會髮出“警報”,通知輕節點。這個思路可以引申到後來的欺詐證明,但不能保證誠實全節點始終可以穫得足夠數據,也無法事後判斷區塊提議者是否扣留了某些數據沒髮布。

比如,某個節點A可以髮布欺詐證明,聲稱從節點B那收到了不完整的block。但此時無法判斷,這個不完整的block是A自己僞造的,還是B髮出去的。Vitalik指出可以用數據可用性採樣DAS解決這個問題(顯然數據可用性實質涉及數據髮布問題)。

Vitalik在”A note on data availability and erasure coding”一文中對這些問題及其解決方案進行了粗略討論。他指出,DA證明實質是對欺詐證明的一種“補完”。

數據可用性採樣

但顯然,DA概念不是那麽好解釋的,因爲Vitalik的這篇github文檔前前後後進行了18次更正。記録顯示,最後一次更正提交於2018.9.25。而就在前一天的2018.9.24,Celestia創始人Mustafa與Vitalik聯名髮錶了日後聲名大噪的論文——Fraud and Data Availability Proofs: Maximising Light Client Security and Scaling Blockchains with Dishonest Majorities.

有趣的是,這篇論文第一作者是Mustafa而不是Vitalik(另一名作者現在是Sui公鏈的研究員)。文中提到了欺詐證明Fraud Proof的概念,併解釋了數據可用性採樣DAS的原理,粗略設計了一套DAS +二維糾刪碼+欺詐證明的混搭協議。論文中則明確提到,DA證明繫統實質是欺詐證明之上的必要補充。

如果我們從Vitalik的視角出髮的話,這套協議的作用可以概括如下:

假設一條公鏈有N個高配硬件的共識節點Validator,它們的數據吞吐量很大,效率很高。這樣的區塊鏈雖然TPS高,但共識節點數量N比較少,是比較中心化的,節點串謀概率高。

但是,N個共識節點中起碼會有1個是誠實的。隻要至少1/N的Validator誠實,檢查出block無效,併願意在必要時刻廣播欺詐證明,輕節點或誠實Validator都能知道網絡出現了安全問題,併可以通過Slash惡意節點、社會共識分叉等方式讓網絡恢覆正常。

可是,就像之前Vitalik提到的,如果誠實全節點接收到一個block且髮現它缺乏某些部分,併髮布欺詐證明,此時不好判斷出是block提議者沒髮布這部分數據,還是中途被其他節點扣留了,亦或是髮布欺詐證明的節點自導自演。

此外,如果多數節點串謀,1/N的誠實Validator被孤立,可能無法穫取新的block,這算是一種數據扣留攻擊場景。需要註意的是,此時誠實節點不知道是網絡狀況不好,還是其他人串謀搞數據扣留,他也不知道其他節點是否也被孤立,不好判斷多數人是否已經串謀搞數據扣留。

綜上,要有一種辦法,以極高概率保證誠實Validator能穫取到驗證block所需的數據;衕時,要能判斷出是誰在搞數據扣留攻擊——是block提議者沒髮布足量數據,還是説被其他節點扣留了,亦或是多數節點在搞串謀。顯然,這種安全模型比普通POS鏈的“誠實多數假設”多了很多保障,而數據可用性抽樣DAS就是具體的實現方式。

我們現在假設,網絡中輕節點很多,可能是10 N,每個輕節點都連接了多個Validator(爲了方便分析,假設每個輕節點都連接了全部N個Validator)。這些輕節點會曏Validator多次髮動數據抽樣,每次隨機請求一小部分數據(假設隻占一個block的1%)。隨後,它們會把抽到的碎片傳播給沒有這些數據的Validator。隻要輕節點足夠多,且數據抽樣次數足夠頻繁,即便某些請求可能被拒絶,但隻要大部分被響應,就可以保證所有Validator最終都能穫取到驗證block所需的足量數據。這樣可以抵消掉Block提議者以外的其他節點扣留數據的影響。

(圖源:W3 Hitchhiker)

而如果多數Validator搞串謀,拒絶響應大多數輕節點的請求,此時人們很容易意識到鏈出了問題(因爲就算一部分人的網速不好,也不至於差到大部分輕節點的請求都被拒絶)。所以前述方案可以極高概率判斷出多數串謀行爲,當然這種情況本身極少髮生。

到了這裡,我們可以解決掉來自Block提議者之外的不確定性因素。如果Block提議者搞數據扣留,比如他沒有在block裡髮布驗證區塊所需要的足量數據(引入二維糾刪碼後,一個區塊裡包含2k2k個片段,而還原出區塊的原始數據至少需要約kk個片段,占1/4。提議者想讓其他人不能還原出原始數據,最少需要扣留k+1*k+1個片段),最終肯定會被誠實Validator檢測出來,而後者會廣播欺詐證明警告其他人。


按照vitalik和mustafa的説法,他們其實是把此前就有人提出的想法結合了起來,併在此之上做出了一定的創新。而從整個構思的出髮點與實現方式來看,顯然所謂的“數據可用性”指的是驗證最新block所需的那些數據,是否都有被區塊提議者髮布出去,且能不能被驗證者們接收到。這關乎“數據是否完整髮布”而不是“歷史數據是否可以被檢索到”。

以太坊Rollup的DA怎麽實現

有了前麵的論斷,我們再來看以太坊Rollup的DA實現方式,其實就比較清晰了:Rollup裡的區塊提議者就是排序器Sequencer,它每隔一段時間就會在以太坊上髮布驗證Layer2狀態轉換所需要的數據。準確的説,是曏指定的合約髮起一筆Transaction,在自定義的輸入參數裡塞進DA所涉及的數據,併最終被記録進以太坊區塊裡。由於以太坊足夠去中心化,可以確信定序器提交的數據會被“驗證者”順利接收到。但不衕Rollup網絡中充當“驗證者”角色的東西是不衕的。


(Arbitrum排序器曏以太坊上某合約post的交易批次,合約本身不驗證這些數據,隻拋出一個事件讓L2全節點來監聽,讓後者知道排序器髮布了交易批次)

具體而言,ZK Rollup採用以太坊上的Verifier合約充當“驗證者”。ZKR最少隻需要髮布State Diff + Validity Proof,也就是狀態變化情況+有效性證明,Verifier合約會檢測有效性證明,判斷它能否和State Diff對上號。驗證通過後,定序器髮布的L2 Block/Batch就被認作有效。

(來源:前Polygon Hermez白皮書)

而樂觀Rollup要在以太坊髮布更多數據,因爲它隻能靠L2全節點去下載數據併驗證Block有效性。這樣的話,至少要披露 每筆L2交易的數字簽名(現在一般用聚合簽名)、如果有調用合約的話,還要披露輸入參數,此外還要披露交易轉賬地址、防重放攻擊的Nonce值等。但相較於完整的Transaction data,還是有一些修剪。

相比於ZK Rollup,樂觀Rollup的DA成本更高,因爲ZK Rollup隻需要披露一批交易執行後的最終狀態變化,附帶一個有效性證明,利用到了ZK SNARK/STARK的簡潔性;而樂觀Rollup隻能採用最笨重的方式,讓所有交易都在其他L2全節點身上重新執行一遍。

此前W3hitchhiker曾粗略估算過,不考慮未來的4844和blob,ZKR的擴容效應可以達到OPR的數倍,而如果考慮到4337相關的智能錢包(用指紋、虹膜數據取代私鑰簽名),ZKR的優勢會更明顯,因爲它不需要把指紋、虹膜的二進製化數據post上以太坊,而樂觀Rollup需要)。

至於Validium和Plasma/Optimium,其實是用以太坊鏈下的DA層來實現DA。比如,採用了有效性證明繫統的ImmutableX自己搭建了一組DAC節點(數據可用性委員會),專門髮布DA涉及的數據;Metis則在Memlabs上髮布DA數據,Rooch 和Manta則採用Celestia。而目前看來,由於有DAS和欺詐證明繫統的存在,Celestia是以太坊之外可信度最高的DA層項目之一。

聲明:

  1. 本文轉載自[極客 Web3],原文標題《對數據可用性的誤解:DA=數據髮布≠歷史數據檢索》,著作權歸屬原作者[Faust,極客web3],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。

DA=數據髮布≠歷史數據檢索

中級2/28/2024, 5:25:00 AM
本文著重探討到底什麽是數據可用性。
  • 轉髮原文標題:對數據可用性的誤解:DA=數據髮布≠歷史數據檢索

導語:到底什麽是數據可用性?可能絶大多數人第一印象是“可以穫取某個時刻的歷史數據”,但這其實是對DA概念最大的誤解。近期L2BEAT聯創與Danksharding提出者、Celestia創始人都對這一誤區做出了澄清,他們指出,Data Avalibity實際上應該指“數據髮布”,但大多數人把DA理解成了“歷史數據可檢索”,而後者實際上涉及到數據存儲問題。


比如,前一陣子Dankrad曾提到了Layer2的強製提款/逃生艙機製,他指出,Validium的強製提款需要穫取最新的L2狀態來構造Merkle Proof,但Plasma隻需要7天以前的(這和兩者的合法Stateroot判定方式有關)。

借此,Dankrad明確指出,Validium需要DA保障用戶資金安全,而Plasma不需要。在此處,Dankrad用案例指出了DA和歷史數據可檢索的不衕之處,即DA往往隻涉及新髮布的數據。


在L2BEAT那裡,數據可用性DA與數據存儲DS的區別被進一步加強。L2BEAT的Bartek多次強調,DA和數據存儲/歷史數據可查是兩碼事,而用戶能夠穫取到自己需要的L2數據,隻是因爲那些提供數據的節點“對你足夠好”。此外,L2BEAT還計畫把“是否有權限開放的數據存儲節點”當做DA之外的一個測評Rollup的新指標。



以太坊社區/以太坊基金會成員的上述言辭,錶明了他們要在未來對Layer2相關概念進行規範化的梳理,併對Layer2本身進行更詳實的定義。因爲圍繞著Rollup和L2的很多名詞其實都沒有被很好的解釋清楚,比如多久前的數據算“歷史數據”——有人認爲,因爲智能合約隻能調用256個block內的過往區塊數據,所以256個區塊(50min)前的數據都算“歷史數據”。

而Celestia和以太坊基金會口中的“Rollup”,嚴格來説都是兩種東西。本文旨在澄清DA概念和數據存儲的區別,從DA的來源、數據可用性採樣、Rollup的DA實現方式,來爲大家解釋到底什麽才是數據可用性——數據髮布。

DA概念的來源

關於“數據可用性”問題到底指什麽,Celestia創始人Mustafa如此解釋:DA就是,當區塊生成者提出新block時,如何確保區塊裡的所有數據都髮布到了網絡中?如果區塊生成者不Release區塊中的所有數據,就無法檢測區塊裡是否包含錯誤交易。

Mustafa還指出,以太坊Rollup簡單地將L2區塊數據髮布到以太坊鏈上,併依賴ETH來保障數據可用性。

而在以太坊官網,有關於DA的如下概括:可以把數據可用性難題概括爲一個問題:“我們如何驗證一個新區塊的數據是否可用?”……對於輕客戶端來説,數據可用性問題是指在無需下載整個區塊的情況下,驗證區塊的可用性。

以太坊官網還明確區分了數據可用性與可檢索性的區別:數據可用性是指區塊被提出時,節點下載區塊數據的能力。換句話説,數據可用性與區塊尚未達成共識時相關……數據可檢索性是指節點從區塊鏈中檢索歷史信息的能力……雖然存檔可能需要區塊鏈歷史數據,但節點無需使用歷史數據就可以驗證區塊併處理交易。

在Celestia中國貢獻者——W3Hitchhiker合伙人任泓毅看來,Layer2事先假設Ethereum足夠安全和去中心化,排序器可以放心大膽的把DA數據髮到以太坊,這些數據會無阻礙的傳播給所有以太坊全節點。而L2全節點本身就要運行Geth客戶端,算是以太坊全節點的子集,所以可以接收到Layer2的DA數據。

而在EthStorage的創始人Qi Zhou博士眼裡,DA的定義是沒有人可以把用戶提交到網絡裡的交易數據扣留住。對應的信任模型是,我們隻需要信任L1的協議本身,不需要再引入其他信任假設。

Qi Zhou指出,現在以太坊的DA實現方式其實就是P2P廣播(gossip流言協議),每個全節點都會下載併傳播新block,併存儲Rollup的數據。當然,以太坊全節點併不會永久存儲歷史區塊,在4844上線後可能會自動刪除一段時間前的數據(貌似是18天)。存放全部歷史數據的檔案節點,現在全世界也沒有多少,EthStorage則打算填補以太坊體繫的這一空白,併助力Layer2設置自己專屬的數據永存節點。

而以太坊基金會關於數據可用性Data availability的早期討論,可見於Vitalik在2017年的推文與github文檔。當時他認爲,如果要保證區塊鏈可拓展/高效率,就要抬高全節點的硬件配置(全節點就是下載完整block併驗證其有效性的節點,做共識的Validator是全節點的子集)。但如果提高全節點硬件配置,就會提升運行成本,導緻區塊鏈變得中心化。

關於這一點,Vitalik説,可以設計一種方案,解決高性能全節點趨於中心化帶來的安全隱患。他打算引入糾刪碼和數據隨機抽樣來設計一套協議,使得低配硬件的輕節點即便不穫知完整的block,也可以得知block沒有問題。

他最開始的想法其實和比特幣白皮書裡提到的idea有關。這個idea説,輕節點可以不接收完整block,而當block有問題時,誠實全節點會髮出“警報”,通知輕節點。這個思路可以引申到後來的欺詐證明,但不能保證誠實全節點始終可以穫得足夠數據,也無法事後判斷區塊提議者是否扣留了某些數據沒髮布。

比如,某個節點A可以髮布欺詐證明,聲稱從節點B那收到了不完整的block。但此時無法判斷,這個不完整的block是A自己僞造的,還是B髮出去的。Vitalik指出可以用數據可用性採樣DAS解決這個問題(顯然數據可用性實質涉及數據髮布問題)。

Vitalik在”A note on data availability and erasure coding”一文中對這些問題及其解決方案進行了粗略討論。他指出,DA證明實質是對欺詐證明的一種“補完”。

數據可用性採樣

但顯然,DA概念不是那麽好解釋的,因爲Vitalik的這篇github文檔前前後後進行了18次更正。記録顯示,最後一次更正提交於2018.9.25。而就在前一天的2018.9.24,Celestia創始人Mustafa與Vitalik聯名髮錶了日後聲名大噪的論文——Fraud and Data Availability Proofs: Maximising Light Client Security and Scaling Blockchains with Dishonest Majorities.

有趣的是,這篇論文第一作者是Mustafa而不是Vitalik(另一名作者現在是Sui公鏈的研究員)。文中提到了欺詐證明Fraud Proof的概念,併解釋了數據可用性採樣DAS的原理,粗略設計了一套DAS +二維糾刪碼+欺詐證明的混搭協議。論文中則明確提到,DA證明繫統實質是欺詐證明之上的必要補充。

如果我們從Vitalik的視角出髮的話,這套協議的作用可以概括如下:

假設一條公鏈有N個高配硬件的共識節點Validator,它們的數據吞吐量很大,效率很高。這樣的區塊鏈雖然TPS高,但共識節點數量N比較少,是比較中心化的,節點串謀概率高。

但是,N個共識節點中起碼會有1個是誠實的。隻要至少1/N的Validator誠實,檢查出block無效,併願意在必要時刻廣播欺詐證明,輕節點或誠實Validator都能知道網絡出現了安全問題,併可以通過Slash惡意節點、社會共識分叉等方式讓網絡恢覆正常。

可是,就像之前Vitalik提到的,如果誠實全節點接收到一個block且髮現它缺乏某些部分,併髮布欺詐證明,此時不好判斷出是block提議者沒髮布這部分數據,還是中途被其他節點扣留了,亦或是髮布欺詐證明的節點自導自演。

此外,如果多數節點串謀,1/N的誠實Validator被孤立,可能無法穫取新的block,這算是一種數據扣留攻擊場景。需要註意的是,此時誠實節點不知道是網絡狀況不好,還是其他人串謀搞數據扣留,他也不知道其他節點是否也被孤立,不好判斷多數人是否已經串謀搞數據扣留。

綜上,要有一種辦法,以極高概率保證誠實Validator能穫取到驗證block所需的數據;衕時,要能判斷出是誰在搞數據扣留攻擊——是block提議者沒髮布足量數據,還是説被其他節點扣留了,亦或是多數節點在搞串謀。顯然,這種安全模型比普通POS鏈的“誠實多數假設”多了很多保障,而數據可用性抽樣DAS就是具體的實現方式。

我們現在假設,網絡中輕節點很多,可能是10 N,每個輕節點都連接了多個Validator(爲了方便分析,假設每個輕節點都連接了全部N個Validator)。這些輕節點會曏Validator多次髮動數據抽樣,每次隨機請求一小部分數據(假設隻占一個block的1%)。隨後,它們會把抽到的碎片傳播給沒有這些數據的Validator。隻要輕節點足夠多,且數據抽樣次數足夠頻繁,即便某些請求可能被拒絶,但隻要大部分被響應,就可以保證所有Validator最終都能穫取到驗證block所需的足量數據。這樣可以抵消掉Block提議者以外的其他節點扣留數據的影響。

(圖源:W3 Hitchhiker)

而如果多數Validator搞串謀,拒絶響應大多數輕節點的請求,此時人們很容易意識到鏈出了問題(因爲就算一部分人的網速不好,也不至於差到大部分輕節點的請求都被拒絶)。所以前述方案可以極高概率判斷出多數串謀行爲,當然這種情況本身極少髮生。

到了這裡,我們可以解決掉來自Block提議者之外的不確定性因素。如果Block提議者搞數據扣留,比如他沒有在block裡髮布驗證區塊所需要的足量數據(引入二維糾刪碼後,一個區塊裡包含2k2k個片段,而還原出區塊的原始數據至少需要約kk個片段,占1/4。提議者想讓其他人不能還原出原始數據,最少需要扣留k+1*k+1個片段),最終肯定會被誠實Validator檢測出來,而後者會廣播欺詐證明警告其他人。


按照vitalik和mustafa的説法,他們其實是把此前就有人提出的想法結合了起來,併在此之上做出了一定的創新。而從整個構思的出髮點與實現方式來看,顯然所謂的“數據可用性”指的是驗證最新block所需的那些數據,是否都有被區塊提議者髮布出去,且能不能被驗證者們接收到。這關乎“數據是否完整髮布”而不是“歷史數據是否可以被檢索到”。

以太坊Rollup的DA怎麽實現

有了前麵的論斷,我們再來看以太坊Rollup的DA實現方式,其實就比較清晰了:Rollup裡的區塊提議者就是排序器Sequencer,它每隔一段時間就會在以太坊上髮布驗證Layer2狀態轉換所需要的數據。準確的説,是曏指定的合約髮起一筆Transaction,在自定義的輸入參數裡塞進DA所涉及的數據,併最終被記録進以太坊區塊裡。由於以太坊足夠去中心化,可以確信定序器提交的數據會被“驗證者”順利接收到。但不衕Rollup網絡中充當“驗證者”角色的東西是不衕的。


(Arbitrum排序器曏以太坊上某合約post的交易批次,合約本身不驗證這些數據,隻拋出一個事件讓L2全節點來監聽,讓後者知道排序器髮布了交易批次)

具體而言,ZK Rollup採用以太坊上的Verifier合約充當“驗證者”。ZKR最少隻需要髮布State Diff + Validity Proof,也就是狀態變化情況+有效性證明,Verifier合約會檢測有效性證明,判斷它能否和State Diff對上號。驗證通過後,定序器髮布的L2 Block/Batch就被認作有效。

(來源:前Polygon Hermez白皮書)

而樂觀Rollup要在以太坊髮布更多數據,因爲它隻能靠L2全節點去下載數據併驗證Block有效性。這樣的話,至少要披露 每筆L2交易的數字簽名(現在一般用聚合簽名)、如果有調用合約的話,還要披露輸入參數,此外還要披露交易轉賬地址、防重放攻擊的Nonce值等。但相較於完整的Transaction data,還是有一些修剪。

相比於ZK Rollup,樂觀Rollup的DA成本更高,因爲ZK Rollup隻需要披露一批交易執行後的最終狀態變化,附帶一個有效性證明,利用到了ZK SNARK/STARK的簡潔性;而樂觀Rollup隻能採用最笨重的方式,讓所有交易都在其他L2全節點身上重新執行一遍。

此前W3hitchhiker曾粗略估算過,不考慮未來的4844和blob,ZKR的擴容效應可以達到OPR的數倍,而如果考慮到4337相關的智能錢包(用指紋、虹膜數據取代私鑰簽名),ZKR的優勢會更明顯,因爲它不需要把指紋、虹膜的二進製化數據post上以太坊,而樂觀Rollup需要)。

至於Validium和Plasma/Optimium,其實是用以太坊鏈下的DA層來實現DA。比如,採用了有效性證明繫統的ImmutableX自己搭建了一組DAC節點(數據可用性委員會),專門髮布DA涉及的數據;Metis則在Memlabs上髮布DA數據,Rooch 和Manta則採用Celestia。而目前看來,由於有DAS和欺詐證明繫統的存在,Celestia是以太坊之外可信度最高的DA層項目之一。

聲明:

  1. 本文轉載自[極客 Web3],原文標題《對數據可用性的誤解:DA=數據髮布≠歷史數據檢索》,著作權歸屬原作者[Faust,極客web3],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.