Avail的可擴展性:未來的發展方向
Avail 測試網現已上线。隨着用戶开始將 Avail 集成到他們的鏈設計中,經常出現的一個問題是:“Avail 能處理多少交易?”這是關於擴展性系列文章的最後一篇,將討論 Avail 目前的性能以及其短期和長期的擴展能力。你可以在這裏閱讀第一部分,這裏閱讀第二部分。
下面的模型描述了一種架構,在這個架構中,提出和構建區塊的行為(決定哪些交易/數據塊包含在區塊中)被分开,並由不同的參與者執行。
通過創建這種新的區塊構建者實體,生成行承諾(row commitments)和生成單元證明(cell proofs)所需的計算工作可以在不同的參與者之間分擔。
Avail 的核心功能是接收數據並輸出有序數據。可以將其想象成一個 API。Avail 使任何人都能夠對數據的可用性進行抽樣。
在強調我們能改進的地方之前,我們首先詳細說明 Avail 在當前狀態下對區塊提議者和驗證者/完整節點的要求。
1. 區塊生產者創建區塊主體
-
收集交易(數據提交)
-
將這些交易排序到 Avail 數據矩陣中,該矩陣成為區塊主體
2. 區塊生產者創建區塊頭
-
為矩陣的每一行生成承諾
-
使用多項式插值擴展這些承諾(生成的和擴展的承諾成為區塊頭)
3. 區塊生產者傳播區塊(主體 + 頭)
4. 驗證者和完整節點接收區塊
5. 驗證者和完整節點對區塊進行解碼、重構和驗證
-
重建數據矩陣
-
重建承諾
-
擴展承諾
-
驗證他們收到的所有數據是否與他們生成的承諾相匹配
第五步,要求完整節點重新生成區塊頭,在像 Avail 這樣的系統中是不必要的。
完整節點目前之所以這樣做,是因為 Avail 繼承了傳統區塊鏈的架構,而傳統區塊鏈需要驗證者來確認執行操作是否正確完成。Avail 不處理執行操作。區塊提議者、驗證者和輕客戶端只關心數據的可用性。這意味着 Avail 網絡中的所有參與者都可以選擇使用數據可用性抽樣來無需信任地確認數據的可用性。
由於驗證者和完整節點可以通過抽樣來檢查數據的可用性,他們無需重建整個區塊來保證網絡的安全性。
驗證者無需通過重做生產者所做的所有事情來檢查每件事是否真實。相反,他們可以通過少量抽樣來檢查。就像輕客戶端那樣,當達到數據可用性的統計保證(8 - 30 次抽樣後),驗證者可以將該區塊添加到鏈上。因為 Avail 不處理數據執行,所以可以安全地執行此操作。
數據抽樣為驗證者提供了一種比繁瑣的 1: 1 驗證過程快得多的替代方案。Avail 的神奇之處在於,通過僅使用區塊頭,任何人(在這種情況下是驗證者)都可以達成共識,認為他們正在遵循正確的鏈。
如果我們能做到這一點,我們就可以用幾次抽樣來替代整個區塊頭重建步驟。
本文將探討在我們對驗證者的要求上的轉變,以及其他一些改進。我們將描述一個改進的系統,在這個系統中,區塊提議者(仍然)創建並傳播區塊,但所有其他網絡參與者通過數據可用性抽樣與網絡進行交互。然後,我們將引入一個更進一步的系統,它將區塊構建和區塊提議分开,由兩個不同的網絡參與者進行操作。
需要注意的是,這些變化相對更高級,目前仍在積極研究中。
對於 Avail 來說,一個更有效的模型是由單個節點構建並向網絡傳播承諾。然後,所有其他參與者將生成並驗證證明。
這是我們首次使不僅是輕客戶端,而且任何鏈的部分都能做到這一點。我們允許驗證者以與輕客戶端相同的方式進行抽樣。
這種模型中,單個驗證節點提出區塊,為數據矩陣的所有行創建承諾,然後只提出區塊頭。
-
步驟 1 :提議者只傳播區塊頭的信息。
-
步驟 2 :由於驗證者只接收到頭部信息,他們無法解碼或重構區塊。但由於他們可以進行數據可用性抽樣,所以他們不需要這么做。
在這種情況下,其他驗證者的行為類似於輕客戶端。
這些其他驗證者將使用承諾進行數據可用性抽樣,並且只有在達到可用性保證時才接受區塊。
在這個世界中,所有節點都將類似於輕客戶端一樣運行。驗證者可以避免使用區塊體來重新生成承諾,以確保區塊提議者的正確計算。
當驗證者可以簡單地依賴證明驗證時,生成用於證明計算的承諾是不必要的。
由於我們不需要全節點驗證區塊的有效執行(Avail 不執行執行操作!),所以全節點僅憑頭部信息就可以確定他們正在跟隨正確的鏈。我們只需要可用性的證明,頭部信息(結合少量隨機樣本)可以提供這一點。這使我們能夠減少成為驗證者所需的計算量。
這還有可能降低通信時間的額外好處。
復雜性
我們猶豫是否能在短期內完成這個模型,因為它需要從 Substrate 的基本結構中脫離出來。我們需要移除外部根(extrinsic root),這打破了對 Substrate 工具的所有訪問,盡管這是我們正在積極探索的改進。
另一種模型借鑑了 EIP-4844 中的分片 blob 模型。 https://eips.ethereum.org/EIPS/eip-4844?ref=blog.availproject.org
想象一下這個系統:
1. 區塊數據矩陣的每一行由不同的構建者建立,同時包括該行的相關多項式承諾。
-
構建者將他們的行與 p2p 網絡共享,並將承諾傳遞給提議者。
2. 頭部創建:單個區塊提議者收集這些承諾。
-
提議者從構建者(和 p2p 網絡)中抽樣,以確認給定的承諾在抹除編碼承諾之前可以生成有效的开放證明。這個原始承諾 + 擴展承諾的組合成為頭部。
3. 提議者將這個頭部與驗證者共享。
4. 提議者和驗證者通過從 p2p 網絡(或構建者)中抽樣隨機單元,並確認數據生成有效的开放證明來執行數據可用性抽樣。
5. 一旦驗證者達到可用性的統計保證,區塊頭部就被添加到鏈上。
區塊提議者不需要做太多工作,因為承諾是由許多參與者生成的。
懶惰提議者模型有一個區塊的單一提議者。然後,參與者可以像上述提議者-構建者分離方式一樣被劃分。
可以有多個構建者創建區塊的小塊。他們都將這些塊發送給一個實體(提議者),該實體對每個部分進行隨機抽樣,以構建它提出的頭部。
區塊體是用邏輯結構構建的。
一個例子
使懶惰提議者模型不同的是,區塊構建者和區塊提議者是獨立的實體。
假設有四個區塊構建者,每個人都有數據矩陣的一行。每個構建者使用該行創建一個承諾。
然後,每個構建者將他們的行和構建的承諾發送給指定的提議者,提議者從區塊體中抽樣數據,以確認給出的承諾。然後,提議者對承諾進行多項式插值,以便他們不僅有四個原始構建的承諾,而且還有八個承諾。數據矩陣現在已經被抹除編碼和擴展了。
這八行和八個承諾由同一個提議者驗證。
在查看整個矩陣時,我們可以看到,一半的行是由提議者構建的(通過抹除編碼),另一半是提供給他們的。
然後,制作者提出一個區塊頭,每個人都接受。這導致的區塊看起來與 Avail 測試網當前正在生產的區塊相同,盡管它們構建得更高效。
Avail 的懶惰提議者模型更有效率,但也相當復雜。雖然還有其他更加容易的優化整個系統機會,但 Avail 團隊很高興探索實施這種模型。
對比傳統區塊鏈交易與懶惰提議者模型
懶惰提議者模型與今天非 Avail 區塊鏈上處理的個別區塊鏈交易的方式並無太大不同。
如今,當任何人在幾乎任何鏈上進行交易時,他們會向所有節點發送這筆交易的通知。很快,每個節點的內存池中都會有這筆交易。
那么區塊生產者會做什么呢?
區塊生產者從他們的內存池中取出交易,將它們聚集在一起,生成一個區塊。這是區塊生產者的典型角色。
在 Avail 中,數據塊和它們的承諾被類似地處理為個別交易。這些數據塊+承諾組合在系統上傳播,就像個別交易在傳統鏈上發送一樣。
很快,每個人都會擁有對這些數據塊的承諾。有了這些承諾,提議者就可以开始隨機抽樣以確保數據的可用性。通過足夠的抽樣信心,節點將擴展這些承諾,接受正文中的數據,並構建區塊頭 —— 從而創建下一個區塊。
結語
這些為 Avail 提出的架構方案旨在展示將數據可用性層與區塊鏈的其他核心功能分離的重要性。
當數據可用性單獨處理時,可以進行優化,將數據可用性作為一個獨立的層來對待,這比將數據可用性與執行等其他區塊鏈功能綁定在一起時能夠帶來更大的改進。
無論它們被稱為第三層解決方案、模塊化區塊鏈還是鏈下擴展解決方案,我們很高興看到團隊們利用這個專門的數據可用性層所構想出的新奇想法。團隊們可以放心,Avail 將能夠直接與在其之上構建的任何鏈或應用同步擴展。隨着我們構建一個包含數百個驗證者、數千個輕客戶端以及許多即將到來的新鏈的模塊化區塊鏈網絡,我們預計在滿足需求方面不會有任何問題。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
動區週報》比特幣上漲乏力、聯準會1月不降息機率高、微策略擬增發股票加倉BTC..
本週(12/22-12/28)重要大事速覽 比特幣動態 :Bitwise 示警 BTC 恐迎「 痛...
Roam上线Discovery Ecosystem合作平臺,首批官宣20個項目,共同推動Web3應用大規模落地
12 月 25 日,DePIN 項目 Roam 正式上线了 Roam Discovery Ecos...
雙節期間市場疲軟,明年Q1或迎來上漲行情 | Frontier Lab 加密市場周報
市場概覽 市場整體概況: 本周加密市場在聖誕節假期影響下呈現下跌趨勢,市場情緒指數雖從 7% 微升...
獨家專訪》幣安區域市場總負責人Vishal Sacheendran:幣安不會成為銀行、臺灣監管有好的開始
全 球最大加密貨幣交易所 幣安 全球區域市場總負責人 Vishal Sacheendran 於臺北...
星球日報
文章數量
7762粉絲數
0