去中心化 Rollup 訪談系列最後一期,討論了如何利用 DA 重用乙太坊主網的安全屬性,以及各種 l2 儲存的方案比對。
嘉賓:Qi Zhou,EthStorage 創始人
編譯:ECN
封面:Photo by Dynamic Wang on Unsplash
引介
這是去中心化 Rollup 訪談系列最後一期,本集從「數據可用性和去中心化存儲」的角度探討 rollup 去中心化。 我們邀請到了 EthStorage 創始人 Qi Zhou,針對 DA 如何重用乙太坊主網的安全屬性、EIP-4844 和 danksharding、不同 DA 模型的安全性對比進行了討論。 周老師還向大家介紹了 EthStorage 如何在下一次乙太坊升級中與 EIP-4844 進行結合。
Host: Franci
本期嘉賓:
- EthStorage 創始人 Qi Zhou, twitter @qc_qizhou
往期
第一期:如何去中心化 Rollup?
- Arbitrum 研究員 Patrick McCorry
第二期:共享排序器和 L2 共识
- AltLayer Network 创始人 Yaoqi Jia
- Scroll 研究员 Toghrul Maharramov
- Starknet Exploration Lead Abdelhamid Bakhta
第三期: 证明者网络和 zk 硬件加速
- Scroll 联合创始人 Ye Zhang
- Cysic 聯合創始人 Leo Fan
收聽
點擊訂閱 Podcast,瞭解更多:
Youtube:
小宇宙:
時間戳
– 00:43 嘉賓介紹
– 05:42 數據可用性(DA)如何保證 Rollup 的安全
– 10:53 擴容區塊空間
– 14:07 從網路頻寬成本和存儲成本的角度來理解 DA
– 21:27 EIP-4844 和 Danksharding 的關係,以及為什麼需要部署 EIP-4844
– 25:21 Danksharding 如何解決區塊空間的擴容問題
– 27:33 EIP-4844 測試網的一些開發與經驗
– 31:00 數據可用性委員會(DAC)的應用和局限
– 37:17 EthStorage 與 DAC 的區別
– 39:50 存儲證明的機制
– 42:22 EthStorage 如何維持無需許可的存儲證明
嘉賓介紹
很高興能夠跟大家來分享一下我們對整個乙太坊 DA 技術、以及我們在這上面做的去中心化存儲的一些想法。 我是 18 年全職加入 Web3 行業的。 之前在谷歌、Facebook 這些大廠做工程師。 而且有喬治亞理工(Georgia Institute of Technology)PhD 的學位。 自從 2018 年,我一直在關注並且從事 Web3 基礎設施的工作。 主要是因為之前在大廠裡面也是做這方面的事情,包括分散式系統、分散式的存儲。 另外也是認為這方面在整個區塊鏈還有非常多的可以改進的空間。 不管是一開始我們做的各種,比如說像叫做執行分片的技術。 那麼這是乙太坊的分片 1.0,到現在乙太坊的分片 2.0 的這種叫數據分片的技術,以及後來的數據可用性。 其實都是在圍繞整個 Web3 基礎設施做證明的一些創新和工作。
所以我們也是緊密地去跟乙太坊路線圖,去學習研究,並且以這種社區的方式參與、改進。 我們去年年底非常榮幸地拿到了乙太坊基金會對我們在「數據可用採樣」的研究的一個支援。 幫乙太坊基金會做一些偏理論的,danksharding 上的一些研究工作,包括數據如何能夠有效恢復。 同時我們也在乙太坊的 DA 技術基礎上開發 EthStorage 這樣一個乙太坊的數據層。 我們可以使用乙太坊的智慧合約大規模地去驗證鏈下數據存儲。 這個對於乙太坊來說也是非常有意義的。 所以我今天非常高興能跟大家一起分享,包括 EthStorage 如何在 DA 技術上去更好地構建數據存儲層的一個網路。
訪談部分
第一部分:關於 DA 定義的討論
數據可用性(DA)如何保證 Rollup 的安全
首先我在研究 DA 的過程也是發現很多人對 DA 的定義有一些不理解的地方。 今天也非常高興能夠討論一下,此前我也跟很多乙太坊基金會的成員,像 Dankrad Feist 他們討論 DA,以及 DA 在整個的乙太坊 L2 裡面扮演的重要角色。
前面說到了乙太坊 rollup 的一些基本工作機制,怎麼去把這些鏈上的交易挪到鏈下,然後再通過一系列證明方式(fraud proof 和 validity proof)去告訴 L1 的智慧合約這些執行結果是可以通過這些證明方式來證明是對的。
那麼有個非常重要的核心是,他們希望能夠複用乙太坊本身網路的安全性,但同時又能夠對乙太坊整個計算能力進行極大的擴容。 剛才說計算能力擴容,實際上是把鏈上計算放到鏈下,那麼怎麼能夠同時實現乙太坊的安全性。
比如在 Optimistic Rollup 情況下,怎麼保證有人能夠挑戰 sequencer 在做惡意的事情,這裡面很重要一點是需要知道鏈下具體的原始交易是長什麼樣子的。 如果鏈下具體的原始交易都無法獲得的話,那我就無法找到原始交易記錄去鏈上對 sequencer 進行挑戰。 所以 DA 能夠保證安全性,就是因為它需要讓每一筆鏈下交易的元數據可以拿到鏈上。
擴容區塊空間
因為我們所有的交易數據都要上鏈,即便不需要計算,但我們還是會產生巨大的交易數據。 那麼它要解決的核心問題,大家可以理解它是一種非常有效的技術,來擴充區塊的空間。 大家如果對整個區塊鏈的結構非常了解的話,每個區塊裡面包含了很多交易內容。 這個交易的區塊本身,我們把它叫做區塊空間。
當前乙太坊每一個區塊的空間大概是 2、300 KB。 但是這樣的數目很明顯無法滿足接下來乙太坊擴容的需求。 在這裡可以做一個非常快速的計算:200 kB 的空間,除以每個交易大概是 100 個字節數目的話,得到 2000 筆交易的數目。 2000 筆再除乙乙太坊的區塊時間 12,也就是說乙太坊的 TPS 上限就被限制在 100 左右。 那麼這其實對於整個乙太坊擴容計劃來說還是一個非常小的數目。
所以,乙太坊 L2 關心的是如何保障安全的同時,怎麼能夠把大量的區塊數據放到 block space 裡面去。 然後使得不管是欺詐證明還是有效性證明都能夠重用乙太坊的區塊空間裏面的數據去做相應的檢查。 最後讓鏈下交易的計算結果的安全性能夠得到乙太坊的保證。 那麼這基本上就是 DA 跟乙太坊的安全性之間的一些關係。
從網路頻寬成本和存儲成本的角度來理解 DA
DA 主要的成本是兩個方面,一個叫做網路頻寬的成本,另一個是存儲成本。
從網路頻寬成本來說,比如在 P2P 網路中,就是比特幣和乙太坊當前的區塊廣播的方式,是通過 gossip(廣播)給所有 P2P 節點,去告訴大家我有一個新的區塊,長這個樣子的。 那麼這樣的網路方式的好處是,它非常安全,所有網路節點最終會接收到一個備份。
不好的地方就是,它對網路的頻寬和延遲都會有很大的一個開銷。 我們知道乙太坊是 12 秒出一個區塊,經過 POS 升級之後。 那麼如果這個區塊過大導致它可能會超過 12 秒的話,大量的區塊都無法出塊,最後使得整個網路頻寬還是下降到一個大家無法接受的程度。 所以你可以認為 DA 是解決區塊鏈大量數據上鏈的頻寬問題。
那麼第二個就是它的存儲成本,這方面其實乙太坊基金會有非常多的討論。 核心解決方案的設計中,它不會讓整個 DA 上傳的區塊數據一直被保存。
這引出另外一個問題。 當我有這麼多數據上了鏈,但是一個星期或者兩個星期之後,會被乙太坊的協議丟棄。 那麼這個過程,我們有沒有一些更好的去中心化方案能夠來保存這些 DA 的數據。
這也是我們在設計 EthStorage 時的一個初衷。 第一方面,很多 Rollup 它需要有更長時間去保存數據。 第二方面,有了這些數據之後,我其實可以通過 DA 更好去完成一些全鏈上的應用。 舉例來說全鏈的 NFT,或者是很多 DApp 的前端,甚至包括一些像社交網路裡面的大家的寫的大量文章或者評論。 那麼這些都可以通過 DA 的網路,通過更低的成本去上傳到整個區塊鏈,並且能獲得跟乙太坊 L1 一樣的安全保障。
這是我們在研究乙太坊 DA 的整個技術,包括跟乙太坊很多的核心人員討論之後,發現在這方面,乙太坊需要有一個存儲層,而且是一個去中心化的、不需要對乙太坊本身的協定進行升級的一個存儲層,或者我們叫模組化的存儲層來解決數據的長期保存問題。
第二部分:關於不同 DA 方案的討論
EIP-4844 和 Danksharding 的關係,以及為什麼需要部署 EIP-4844
Proto-danksharding 又叫做 EIP-4844,我認為可以算是乙太坊接下來一個非常重大的升級。 為什麼要做 4844,有一個非常重要的原因,乙太坊基因會在估計乙太坊分片的升級路線,也就是 Danksharding 的時間的時候,他們認為整個的升級時間相當長,比如說可能需要三年到五年。 當時是 2021、2020 年的時候。
那麼在這個過程中,他們預測很快會有非常多的 Rollup 在乙太坊上面在跑,但是因為 Danksharding 它提供的數據介面,和現在 Rollup 使用的 Calldata 數據介面是完全不一樣的。 這會導致乙太坊大量的應用會因為新的介面使得他們無法快速升級,並且能夠無縫地獲得 Danksharding 給他們帶來的好處。
我去參加去年的 Devcon 時,Vitalik 他也提到了希望能夠讓乙太坊更好地為這些 Layer 2 提供服務,使得他們可以在使用一樣的 Danksharding 介面的情況下開發他們的合約。 當 Danksharding 在升完級之後,他們就可以直接繼承 Danksharding 提供的新好處,而不需要再去升級他們已有的,並且已經測試好了的合約。
所以 EIP-4844 它實際上是一個超級簡化版的 Danksharding,它提供了一個跟 Danksharding 一樣的應用介面,包括一個新的 opcode 叫 Data Hash; 以及新的一個數據物件叫 Binary Large Objects,也就是 Blob。
這些數據對象是為了設計能夠讓 rollup 提前去相容 Danksharding 提供的數據結構,也就是說 Danksharding 會提供一樣的 Data Hash 和 Blob 這樣類似的概念。 但是通過 EIP-4844,他們就提前把這些想法在乙太坊接下來的升級中實現。 所以在整個 EIP-4844 的設計功能中,大家可以去看他們的介面以及比如說 Pre-compile 和新加的指令,那麼都已經可以隱隱看到整個 Danksharding 的未來,在乙太坊上面怎麼去跟應用層交互的一個過程。
那麼這方面乙太坊也是從應用角度去思考,怎麼能夠提前通過一些升級讓應用更好地去享受在乙太坊上面的各種擴容技術,並且不需要有額外的升級成本。
但是有一個問題就是 EIP-4844 並不解決整個區塊空間的擴容問題,Danksharding 才能解決。 當前乙太坊區塊空間大概是 200 KB。 到了 Danksharding 之後,在規範中計劃的大小是 32 兆,將近是 100 倍的提升。 那麼現在的 EIP-4844 其實並沒有解決區塊上鏈的頻寬問題。
Danksharding 如何解決區塊空間的擴容問題
4844 的設計下,數據在上鏈的廣播過程中,還是使用跟之前 calldata 一樣的方式,是通過 P2P 的網路進行廣播。 那麼這種廣播方式最終還是會受到整個 P2P 網路頻寬的物理瓶頸的限制。 而 Danksharding 的設計方式改變了 P2P 網路廣播,然後通過數據採樣技術,使得大家不需要去下載所有區塊數據的同時,也知道這些區塊數據能夠被下載到。
其實某種意義上來說,有點像 ZK 的方式,通過數據採樣方式,我知道網路裡面包含了(32 兆位元組/區塊)大小的由 Danksharding 帶來的區塊數據。 但是我不需要去下載所有 32 兆的數據,去保存到本地。 如果有足夠的機器頻寬和足夠的存儲空間性能,也可以這麼做,但對於普通的驗證者來說,他是不需要去下載全部 32 兆的數據。
EIP-4844 測試網的一些開發與經驗
我們最近已經把我們內部的 EIP-4844 的測試網跑起來,並且部署相應的合約去測試,包括 blob 的數據上傳、合約的調用以及數據驗證,我們都已經完全走通。 所以 EIP-4844 一旦上線,我們就可以在第一時間把我們的合約部署上去。
同時我們也是希望能夠通過我們現在和乙太坊一些開發者的合作,以及我們的已經開發好的一些合約,能夠為乙太坊接下來各種 rollup 開發還有學習以及各種工具的時間。
所以我們最近提交了非常多的代碼到乙太坊,針對 EIP-4844 的工具集,包括新的智慧合約去支援 opcode,因為 solidity 現在還不能支援 data hash 這個 opcode。 那麼所有的一些工作,我們其實都已經在跟乙太坊基金會的一些開發者進行同步。
數據可用性委員會(DAC)的應用和局限
因為現在 L2 使用者支付的開銷其中可能有 90% 以上的費用都是支付給數據可用的費用,很多 L2 為了能夠更好地降低數據的上傳成本,一些專案方包括 ZKSync 出了 ZKPorter,還有像 Arbitrum 做了 Arbitrum Nova。 他們通過提供自己的 DAC 數據可用性委員會來提供自己的數據層。
这个数据委员会会带来一些额外的信任,才能达到以太坊一样的额外的安全级别。所以他们在挑选数据委员会的时候,一般都会挑选一些比较大牌的比如说数据服务商,或者是大牌的公司去参与这个数据的保存。但是其实也会受到很多挑战和质疑,因为大家觉得这其实是违背了去中心化的无准入的原则,也就是说大家都能够去参与。但是现在的情况是大部分数据委员会都是几个跟 Layer2 项目方非常紧密的一些组织。
像 Arbitrum Nova,我上次看的時候,可能有六七個這樣的節點。 比如說跑在谷歌的雲上面,或者跑在 Amazon 的雲上面的數據委員會節點去保存這個數據,並且他們都能夠提供所有在 Arbitrum Nova 上面的執行成本。 這樣的一個好處是使得他現在的執行成本是以太坊的大概千分之一。 因為他不需要把所有的數據都去寫到乙太坊的 Layer1 上面去。 但是現在還是相對偏中心化,所以比較高價值的應用相對還會有比較大的擔憂,因為如果是有大量的資金,上千萬或上億的資金,那麼他必然要相信數據委員會的數據是可用的。
所以我們在設計 EthStorage 的時候,其實是沒有任何數據委員會的概念。 在設計過程中,我們希望所有人都能夠去參與,成為一個數據供應商。 而且他們是通過加密的證明,去證明他們確實存了這一份數據。 因為理論上來說數據委員會的這個模型,雖然我說我有七個和八個數據委員會節點,但是實際上,我完全可以只保存一份物理數據,但是我可以表現出來我有七八個位址都能提供這個數據。
然後怎麼去證明我這個數據有足夠多的物理副本來保證數據的安全性。 其實是我們在做 EthStorage 時一個非常重要的創新,也是我們去跟乙太坊基金會 ESP(生態支持計劃)去宣講的時候重點強調的地方。 我們通過 EthStorage 使用的 ZK 加密技術,去保障 Layer2 數據提供的節點。 他們能夠無准入加入並且能夠證明他們有這麼多的存儲副本,並且能更好保證數據的安全。
所以我覺得 DAC 的確現在是一個非常臨時去解決數據上傳到 Layer1 的成本的方案。 我們相信我們通過 EthStorage 的一些加密技術,再加上一些 Layer1 基於乙太坊的這種合約上面的一些證明驗證方式,能夠提供更好的數據保存的方案。 接下來我們也是隨著乙太坊的 4844 上線,會主動把這些創新的內容,以及它在網路上面跑的結果給大家分享。
EthStorage 與 DAC 的區別
EthStorage 其實是一個乙太坊存儲 rollup,Storage rollup。 那麼我們可以假設現在一個 Layer 2 不是一個執行乙太坊 EVM,而是一個非常大的資料庫,或者叫 key value database。 它可以是上 10 TB,上百 TB,甚至上千,就是 PB 級別的這樣一個資料庫。
那怎麼保證我的資料庫的數據能夠獲得乙太坊一樣的安全保障。 首先第一步,我們需要把資料庫裡面這些大規模的數據全部都要通過 DA 發佈到乙太坊 Layer 1 上面去,使得大家都能夠看到這些數據在乙太坊的整個 DA 層是可以拿到的。 但是我們不能保證它能夠永久的拿到,因為乙太坊 DA 會在兩個星期或者四個星期左右的時間里丟棄掉這些數據。
第二步就是我們把這些數據上傳之後,接著去保存在我們 Layer 2 的節點上。 這跟 DAC 不一樣,我們的數據保存節點是無需許可的,任何人都可以參與。 並且它證明它的存儲,然後拿到相應的回報。 這種方式是通過我們建立的一套存儲證明機制,當然這個存儲證明機制也是受到了像 Filecoin、Arweave 這些系統的存儲證明的一些設計方案的啟發。 但是我們需要專門針對乙太坊的 DA 框架以及乙太坊智慧合約去做相應的存儲證明的一個網路和證明的系統。 所以這方面的話,我們相信我們在乙太坊整個生態,甚至整個去中心化存儲方面,我們是有一個非常獨特的貢獻的。
存儲證明的機制
基本上所有存儲證明的機制,包括像 Filecoin、Arweave 都需要首先對使用者的元數據作一個編碼。 但是這個編碼的過程是需要根據數據供應商的位址來進行編碼,也就是說每一個數據供應商他都需要有自己的不同位址,然後根據它的位址和元數據進行編碼之後保存一個叫做 unique replica(唯一副本)的東西。 比如 hello world 這個數據,在傳統中心化資料庫裡面,或者是傳統化的分散式系統裡面,可能保存四五個到不同的物理機器上面去,每個保存都是 hello world。 但是在 EthStorage 裡面,它保存四五個或者是十個二十個,它的 hello world 都會根據每一個數據供應商的位址去編碼成為不同的數據,然後保存在不同的地方。
這樣的好處是,我們能夠通過密碼學的機制來證明有這麼多的不同位址,就是不同的存儲供應商。 他們對這些數據進行了編碼,並且根據編碼數據做了相應的存儲證明。 基本上 Filecoin、Arweave 都是類似這樣的。 但是他們只針對靜態數據,我們現在是針對乙太坊 DA 的熱數據。 並且是可以通過乙太坊智慧合約去驗證,這份數據有這麼多的物理副本。 也就是說每個編碼好的數據,我們去證明這些編碼好的數據保存在這個網路,而且每個編碼數據對應的數據本身是不一樣的,因為它是由不同的存儲供應商的位址去編碼出來的。
所以基本上我們在設計的過程中去對現在已有的去中心化存儲的一些思路進行優化和改進。 但是同時我們也需要對乙太坊的 DA 方案做很多優化,包括動態數據的修改,怎麼能夠在乙太坊的合約上有效地證明和優化 gas 開銷。 那麼這裡面有非常多前沿的技術和研究需要完成。
EthStorage 如何維持無需許可的存儲證明
乙太坊有種節點叫歸檔節點,會保存乙太坊的所有交易的歷史記錄,包括世界狀態。 但接下來 Danksharding 裡面的一個巨大挑戰是 Danksharding 計劃會在一年產生大概 80TB 的數據。 那麼假設乙太坊跑了三到四年,它會產生 200 到 300TB 的數據,而且會不斷增加。 那麼這其實會對歸檔節點有不少的挑戰,因為在運行歸檔節點過程中,它是沒有額外的代幣學經濟來激勵大家去保存這個數據的。
EthStorage 首先需要解決數據的永久保存的代幣學激勵的問題。 這方面實際上我們也是採用了 Arweave 的 discounted cash flow 的模型來去實現激勵。 並且同時非常有效地去讓它在整個智慧合約上執行。
第二就是它的無需許可的方式。 因為我們激勵設計裡面是鼓勵 10 個、50 個甚至 100 個節點在網路裡面保存數據。 所以對於任何一個節點來說,它都能夠去聯繫其中的任何一個節點,同步相應的數據,之後它就能夠成為數據存儲方。 可能還會有更多數據激勵的一些優化設計。
第三個,存儲節點因為它一次性要保存所有的數據,可能是好幾百 TB 甚至長期來說很有可能達到一個 PB 級別的數據。 那麼這樣的話對於單個節點來說,成本是非常高的。 所以我們在這裡面再進一步做了一個叫做 data sharding 的東西。 這樣的話,對於普通節點,它只需要有 4 TB 這樣的容量空間(我們現在設計是 4 TB,當然後面可能會升級到比如 8 TB)它就可以去保存網路中歸檔數據中的一部分,但我們又通過一些激勵機制保證大家最後把所有這些數據都拼在一起之後,都能夠在我們的 layer2 網路裡面保存。
所以在這裡面有非常多的問題,比如歸檔節點造成的各種數據太大的問題; 代幣的激勵問題; 還有去中心化的准入問題... 這些問題我們就可以通過乙太坊的智能合約部署在 layer1 自動去實現的。 那麼對我們來說,我們只是去提供數據網路,使大家只要有足夠的數據成本就可以去下載數據並且生成存儲證明,提交到乙太坊網路裡面去,然後達到相應的回報。 我們整個合約基本上已經設計完畢,並且已經在乙太坊的 4844 Devnet 上面開始進行調試。
免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。