撰文:0XNATALIE
在最近的以太坊開發者會議上,討論了將以太坊的 Pectra 硬分叉分成兩部分的提議。這個提議之前曾經被否決,因為大家擔心會延遲 Verkle 樹的升級。不過在這次的會議上,開發者們再次提出了這個想法,因為他們希望在 Pectra 分叉中加入更多的改進提案(EIP)。提議將硬分叉分為兩部分:第一部分將包括目前 Pectra Devnet 3 上的所有 EIP,第二部分的分叉將包括 EOF(EVM 對象格式)和 PeerDAS 等,為了更好地理解 PeerDAS,我們首先從數據可用性這一基礎概念講起。
DA:確保節點獲取鏈上數據
數據可用性(Data Availability,DA)是指要保證區塊提議者發佈的區塊、區塊中所包含的所有交易數據,對於其他網絡參與者來說可以有效地訪問和獲取。數據可用性是區塊鏈安全的一個關鍵因素,因為如果數據不可用,即使區塊合法,其他節點也無法驗證其內容,可能引發共識問題和網絡攻擊。例如,攻擊者可能只發布部分區塊數據,導致其他節點無法進行驗證。
當新區塊被廣播時,所有參與的節點都會下載並驗證區塊的數據。這種模式在網絡規模較小時是可行的,但隨著區塊鏈的不斷增長,數據量會變得非常龐大,每個節點存儲會不斷增加,對硬件的要求隨之提高。為了讓輕節點(如手機或電腦這樣的移動設備)也可以參與區塊驗證,區塊鏈引入了分片技術。
分片技術是將整個區塊鏈網絡分成多個小的「片」(shards)。每個分片只處理自己那部分數據,不必處理整個區塊鏈的數據。因此,單個節點只需要處理自己分片的數據。但每個分片只處理一部分數據,就意味著其他分片的節點無法直接訪問完整的數據。那如何確保分片中的數據是可用的,並且其他節點能夠驗證這些數據的有效性?例如,某個分片的節點發布了一個新生成的區塊,但它可能只發布了一部分數據。如果其他節點無法獲取區塊的全部數據,就無法驗證這個區塊是否真實合法。
DAS:通過部分數據驗證整體數據可用性
為了應對分片中的數據可用性問題,數據可用性抽樣(Data Availability Sampling,DAS)技術被提出,它的核心思想是通過抽樣的方式來驗證區塊的數據可用性,不要求每個節點存儲或下載完整的區塊數據。
數據可用性抽樣允許節點只需隨機獲取區塊中的一部分數據便可以驗證數據可用性,如果節點能夠成功獲取並驗證這些隨機數據片段,便可以推測整個區塊的數據是可用的。
為了支持這種抽樣驗證,區塊數據通常會使用 RS 編碼。這種編碼允許在丟失部分數據的情況下仍然能夠恢復出完整的數據。因此,即使節點僅下載部分區塊數據,也能夠推斷並確認整個區塊數據的有效性。DAS 通過抽樣驗證減少了每個節點需要處理的數據量,輕節點也可以參與區塊驗證。
DA 層比如 Celestia 的就是通過這些技術來實現。主要涉及 RS encoding + validity proof + DAS。
RS 編碼(Reed-Solomon Encoding):這種編碼方式允許只接收到一部分數據片段的節點也能夠重建整個數據塊。它類似於糾錯碼,具有一定的容錯能力,即便丟失一部分數據,剩下的部分也足以重構完整數據。
Validity Proof(有效性證明):使用零知識證明來確保數據在編碼和傳輸的過程中沒有錯誤。如果驗證成功,則可以無誤地解碼出整個數據。
DAS(數據可用性抽樣):通過輕節點隨機抽樣區塊中的一部分 RS 編碼片段,驗證這些片段的可用性,從而推測整個數據塊是可用的。
PeerDAS: 節點間協作驗證數據
PeerDAS 是 DAS 的一種具體實現,通過對等網絡(peer-to-peer network)進行數據可用性抽樣,對等網絡是由多個節點組成的網絡,節點間直接進行通信。在 DAS 下,每個節點獨立進行數據的抽樣驗證,而 PeerDAS 優化了這一過程,它讓節點之間協作共享和驗證區塊中的數據,進一步提高驗證效率。節點之間並不是孤立的,可以共享數據驗證的任務和結果,可以依賴其他節點已驗證的數據。這樣,節點不必單獨承擔所有的驗證工作,而是通過合作分擔驗證任務,進一步減少節點的負擔。而且協作驗證增加了數據篡改的難度,攻擊者需要同時影響多個驗證節點才能成功篡改數據。
目前,根據最新以太坊關於 PeerDAS 的會議,以太坊客戶端 Lighthouse 團隊已經將 DAS 分支合併到主分支,並正在測試以確保與 PeerDAS 的兼容性。分支通常是用來開發和測試新功能或改進的獨立代碼版本,合併到主分支意味著這個功能或改進已經開發完成,並且有信心是穩定的,可以合併到核心代碼中。