文章來源:ASXN;編譯:金色財經xiaozou1、前言
Monad是一個高性能優化的EVM兼容L1,具有10,000TPS(每秒10億gas)、500毫秒的出塊頻率和1秒的最終性。該鏈從零開始構建,旨在解決EVM面臨的一些問題,具體來說:
*EVM按順序處理交易,導致網絡高活動期間的瓶頸,從而延長交易時間,尤其是在網絡擁堵時。
*吞吐量低,僅為12-15TPS,且出塊時間長,為12秒。
*EVM要求每筆交易支付gas費用,費用波動較大,尤其是在網絡需求高時,gas費用可能變得極其昂貴。2、為什么擴展EVM
Monad提供完整的EVM字節碼和EthereumRPCAPI兼容性,使開發者和用戶無需更改現有工作流程即可集成。
一個常見的問題是,當存在像SVM這樣性能更好的替代方案時,為什么還要擴展EVM。與大多數EVM實現相比,SVM提供更快的出塊時間、更低的費用和更高的吞吐量。然而,EVM具有一些關鍵優勢,這些優勢源于兩個主要因素:EVM生態系統中的大量資本和廣泛的開發者資源。
(1)資本基礎
EVM擁有大量資本,Ethereum的TVL接近520億美元,而Solana為70億美元。L2如Arbitrum和Base各自持有約25-30億美元的TVL。Monad和其他EVM兼容鏈可以通過與最小摩擦集成的規范橋和第三方橋從EVM鏈上的大資本基礎中受益。這一龐大的EVM資本基礎相對活躍,可以吸引用戶和開發者,因為:
*用戶傾向于流動性和高交易量。
*開發者尋求高交易量、費用和應用的可見性。
除了開發者,用戶也更喜歡熟悉的工作流程。通過Rabby、MetaMask和Etherscan等工具,EVM工作流程已成為標準。這些成熟的平臺促進了橋和協議的集成。此外,基本應用(AMM、貨幣市場、橋)可以立即啟動。這些基本原語對于鏈的可持續性以及新穎應用至關重要。3、擴展EVM
擴展EVM有兩種主要方法:
*將執行移至鏈下:通過rollups將執行卸載到其他虛擬機,采用模塊化架構。
*提高性能:通過共識優化和增加區塊大小及gas限制來提高基礎鏈EVM的性能。
(1)Rollup和模塊化架構
Vitalik在2020年10月引入了rollups作為Ethereum的主要擴展解決方案,符合模塊化Blockchain原則。因此,Ethereum的擴展路線圖將執行委托給rollup,這些rollup是利用Ethereum安全性的鏈下虛擬機。Rollup在執行方面表現出色,具有更高的吞吐量、更低的延遲和更低的交易成本。它們的迭代開發周期比Ethereum短——在Ethereum上需要數年的更新可能在rollup上只需數月,因為潛在成本和損失較低。
Rollup可以使用中心化的排序器運行,同時保持安全逃生艙,幫助它們繞過某些去中心化要求。需要注意的是,許多rollup(包括Arbitrum、Base和OPMainnet)仍處于起步階段(階段0或階段1)。在階段1的rollup中,欺詐證明提交僅限于白名單參與者,且與鏈上可證明錯誤無關的升級必須為用戶提供至少30天的退出窗口。階段0的rollup在許可操作者宕機或審查時為用戶提供不到7天的退出時間。
Arbitrum專注于游戲的L3、Xai和ProofofPlay,展示了這種方法。它們基于ArbitrumOrbit堆棧構建,使用AnyTrust數據可用性在Arbitrum上結算。Xai達到67.5TPS,而ProofofPlayApex達到12.2TPS,ProofofPlayBoss為10TPS。這些L3通過Arbitrum結算引入了額外的信任假設,而不是Ethereum主網,同時面臨去中心化數據可用性層較少的潛在挑戰。Optimism的L2——Base、Blast和即將推出的Unichain——通過Ethereum結算和blob數據可用性保持更強的安全性。
兩個網絡都優先考慮水平擴展。Optimism通過OPStack提供L2基礎設施、鏈部署支持和具有互操作性功能的共享橋接。Arbitrum將特定用例卸載到L3,特別是游戲應用,其中額外的信任假設比金融應用帶來更低的資本風險。
(3)優化鏈和EVM性能
替代擴展方法專注于執行優化或目標權衡,通過垂直而非水平擴展來增加吞吐量和TPS。Base、MegaETH、Avalanche和BNBChain體現了這一策略。
BaseBase宣布計劃通過逐步增加gas目標達到1Ggas/s。9月,他們將目標提高到11Mgas/s,并將gas限制增加到33Mgas。初始區塊處理了258筆交易,保持約70TPS五個小時。到12月18日,gas目標達到20Mgas/s,出塊時間為2秒,每塊支持40Mgas。相比之下,Arbitrum為7Mgas/s,OPMainnet為2.5MGas/s。
*截至2025年1月,其月度費用達到1560萬美元——是Arbitrum的7.5倍,OPMainnet的23倍。
*截至2025年1月,其交易量累計達到3.297億筆,是Arbitrum(5790萬筆)的6倍,OPMainnet(2450萬筆)的14倍。注意:交易量可能被操縱,可能具有誤導性。
Base團隊專注于通過優化速度、吞吐量和低費用提供更統一的體驗,而不是Arbitrum和Optimism的模塊化方法。用戶表現出對更統一體驗的偏好,正如Base的活動和收入數字所示。此外,Coinbase的支持和分發也起到了幫助作用。
MegaETH
MegaETH是一個EVM兼容的L2。其核心是通過使用專用排序器節點的混合架構處理交易。MegaETH在其架構中獨特地將性能和安全任務分離,結合新的狀態管理系統,取代傳統的MerklePatriciaTrie,以最小化磁盤I/O操作。
該系統每秒處理100,000筆交易,延遲低于毫秒,同時保持完全的EVM兼容性和處理TB級狀態數據的能力。MegaETH使用EigenDA進行數據可用性,將功能分布在三種專用節點類型上:
*排序器:一個高性能單節點(100核,1-4TBRAM)管理交易排序和執行,將狀態保持在RAM中以快速訪問。它以大約10毫秒的間隔生成區塊,見證區塊驗證,并跟蹤Blockchain狀態變化的狀態差異。排序器通過并行EVM執行和優先級支持實現高性能,在正常操作期間無需共識開銷。
*證明者:這些輕量級節點(1核,0.5GBRAM)計算驗證區塊內容的加密證明。它們異步和亂序驗證區塊,采用無狀態驗證,水平擴展,并為全節點驗證生成證明。系統支持零知識和欺詐證明。
*全節點:在中等硬件(4-8核,16GBRAM)上運行,全節點橋接證明者、排序器和EigenDA。它們通過點對點網絡處理壓縮的狀態差異,應用差異而無需重新執行交易,使用證明者生成的證明驗證區塊,使用優化的MerklePatriciaTrie維護狀態根,并支持19倍壓縮同步。
(5)Monad的EVM早期的Ethereum分叉主要修改了共識機制,如Avalanche,同時保持了GoEthereum客戶端用于執行。盡管存在多種編程語言的Ethereum客戶端,但它們基本上復制了原始設計。Monad通過從第一原則和零開始重建共識和執行組件而有所不同。
Monad優先考慮最大化硬件利用率。相比之下,Ethereum主網對支持獨立質押者的重視限制了性能優化,因為它需要與較弱的硬件兼容。這一限制影響了區塊大小、吞吐量和出塊時間的改進——最終,網絡的速度取決于其最慢的驗證者。
與Solana的方法類似,Monad采用更強大的硬件來增加帶寬并減少延遲。這一策略利用所有可用的核心、內存和固態硬盤來提高速度。鑒于強大硬件的成本不斷下降,優化高性能設備比限制低質量設備的能力更為實際。
*用戶A剩下80USDC(分別向B和C發送了10USDC)。
*用戶B有10USDC。
*用戶C有310USDC。
并行執行過程
使用并行執行,過程更復雜,但效率更高。多個交易同時處理,而不是等待每個交易按順序完成。雖然交易并行運行,但系統會跟蹤它們的輸入和輸出。在順序“合并”階段,如果檢測到某個交易使用了被較早交易更改的輸入,則該交易將使用更新后的狀態重新執行。
逐步過程如下:
*用戶A最初有100USDC,用戶B最初有0USDC,用戶C最初有300USDC。
*通過樂觀并行執行,多個交易同時運行,最初假設它們都從相同的初始狀態開始工作。
*在這種情況下,交易1和交易2并行執行。兩個交易都讀取用戶A初始狀態為100USDC。
*交易1計劃從用戶A向用戶B發送10USDC,將用戶A的余額減少到90,用戶B的余額增加到10。
*同時,交易2也讀取用戶A的初始余額為100,并計劃向用戶C轉移10USDC,試圖將用戶A的余額減少到90,用戶C的余額增加到310。
*當鏈按順序驗證這些交易時,首先檢查交易1。由于其輸入值與初始狀態匹配,因此提交,用戶A的余額變為90,用戶B收到10USDC。
*當鏈檢查交易2時,發現了一個問題:交易2計劃時假設用戶A有100USDC,但用戶A現在只有90USDC。由于這種不匹配,交易2必須重新執行。
*在重新執行期間,交易2讀取用戶A更新后的狀態為90USDC。然后成功從用戶A向用戶C轉移10USDC,用戶A剩下80USDC,用戶C的余額增加到310USDC。
*在這種情況下,由于用戶A有足夠的資金進行兩次轉賬,兩個交易都能成功完成。
*節點執行已達成共識的交易.
*共識繼續進行下一個區塊,而不等待執行完成,執行跟隨共識.
這種結構使系統能夠在執行開始之前通過共識承諾大量工作,允許Monad通過分配額外的時間來處理更大的區塊和更多的交易。此外,它使每個進程能夠獨立使用整個區塊時間——共識可以使用整個區塊時間進行全球通信,執行可以使用整個區塊時間進行計算,兩個進程互不阻塞。
為了在將執行與共識解耦的同時保持安全性和狀態一致性,Monad使用延遲的默克爾根,其中每個區塊包含N個區塊前的狀態默克爾根(N預計在啟動時為10,在當前測試網中設置為3),允許節點在執行后驗證它們是否達到了相同的狀態。延遲的默克爾根允許鏈驗證狀態一致性:延遲的默克爾根充當檢查點——N個區塊后,節點必須證明它們到達了相同的狀態根,否則它們執行了錯誤的內容。此外,如果節點的執行產生了不同的狀態根,它將在N個區塊后檢測到這一點,并可以回滾并重新執行以達成共識。這有助于消除節點惡意行為的風險。生成的延遲默克爾根可用于輕客戶端驗證狀態——盡管有N個區塊的延遲。
由于執行被延遲并在共識之后發生,一個潛在的問題是惡意行為者(或普通用戶意外地)不斷提交最終會因資金不足而失敗的交易。例如,如果總余額為10MON的用戶提交了5筆交易,每筆交易單獨嘗試發送10MON,可能會導致問題。然而,如果不進行檢查,這些交易可能會通過共識,但在執行期間失敗。為了解決這個問題并減少潛在的垃圾郵件,節點在共識期間通過跟蹤在途交易實施保護措施。
對于每個賬戶,節點檢查N個區塊前的賬戶余額(因為這是最新的已驗證的正確狀態)。然后,對于該賬戶的每筆“在途”的待處理交易(已通過共識但尚未執行),它們減去正在轉移的價值(例如發送1MON)和最大可能的gas成本,計算為gas_limit乘以maxFeePerGas。
這個過程創建了一個運行的“可用余額”,用于在共識期間驗證新交易。如果新交易的價值加上最大gas成本超過此可用余額,則在共識期間拒絕該交易,而不是讓它通過后在執行期間失敗。
由于Monad的共識以略微延遲的狀態視圖進行(由于執行解耦),它實施了一種保護措施,以防止包含發送者最終無法支付的交易。在Monad中,每個賬戶在共識期間都有一個可用或“儲備”余額。隨著交易被添加到提議的區塊中,協議從該可用余額中扣除交易的最大可能成本(gas*最大費用+轉移的價值)。如果賬戶的可用余額將降至零以下,則該賬戶的進一步交易不會包含在區塊中。
這種機制(有時被描述為向儲備余額收取運輸成本)確保只有可以支付的交易被提議,從而防御攻擊者試圖用0資金淹沒網絡的無用交易的DoS攻擊。一旦區塊最終確定并執行,余額將相應調整,但在共識階段,Monad節點始終對未決交易的可花費余額進行最新檢查。
6、MonadBFT
(1)共識
HotStuff
MonadBFT是一種低延遲、高吞吐量的拜占庭容錯(“BFT”)共識機制,源自HotStuff共識。
Hotstuff由VMresearch創建,并由Meta前Blockchain團隊的LibraBFT進一步改進。它實現了線性視圖更改和響應性,意味著它可以有效地輪換Leader,同時以實際網絡速度而不是預定的超時時間進行。HotStuff還使用閾值簽名以提高效率,并實現了流水線操作,允許在提交前一個區塊之前提議新區塊。
然而,這些好處伴隨著某些權衡:與經典的兩輪BFT協議相比,額外的輪次導致更高的延遲和流水線期間分叉的可能性。盡管有這些權衡,HotStuff的設計使其更適合大規模Blockchain實現,盡管它導致比兩輪BFT協議更慢的最終性。
以下是HotStuff詳解:
*當交易發生時,它們被發送到網絡的一個驗證者,稱為Leader。
*Leader將這些交易編譯成一個區塊,并將其廣播給網絡中的其他驗證者。
*驗證者然后通過投票驗證區塊,投票發送給下一個區塊的Leader。
*為了防止惡意行為者或通信故障,區塊必須經過多輪投票才能最終確定狀態。
*根據具體實現,區塊只有在成功通過兩到三輪后才能提交,確保共識的健壯性和安全性。
*第1輪:初始區塊被提議并獲得QC
*第2輪:下一個區塊被提議并獲得QC如果這兩輪連續完成,則可以提交第一個區塊。
DiemBFT過去使用三輪系統,但升級為兩輪系統。兩輪系統通過減少通信輪次實現更快的提交。它允許更低的延遲,因為交易可以更快地提交,因為它們不需要等待額外的確認。
具體過程
MonadBFT中的共識過程如下:
*Leader操作和區塊提議:當當前輪的指定Leader啟動共識時,過程開始。Leader創建并廣播一個包含用戶交易的新區塊,以及前一輪共識的證明,形式為QC或TC。這創建了一個流水線結構,其中每個區塊提議都攜帶前一個區塊的認證。
*驗證者操作:一旦驗證者收到Leader的區塊提議,他們開始驗證過程。每個驗證者根據協議規則仔細審查區塊的有效性。有效的區塊收到發送給下一輪Leader的簽名YES投票。然而,如果驗證者在預期時間內沒有收到有效區塊,他們通過廣播包括他們已知的最高QC的簽名超時消息來啟動超時程序。這種雙路徑方法確保即使區塊提議失敗,協議也能取得進展。
*證書創建:協議使用兩種類型的證書來跟蹤共識進展。當Leader從三分之二的驗證者收集到YES投票時,創建QC,證明對區塊的廣泛共識。或者,如果三分之二的驗證者在沒有收到有效提議的情況下超時,他們創建TC,允許協議安全地進入下一輪。兩種證書類型都作為驗證者參與的關鍵證明。
*區塊最終確定(兩鏈提交規則):MonadBFT使用兩鏈提交規則進行區塊最終確定。當驗證者觀察到來自連續輪的兩個相鄰認證區塊形成一個鏈B←QC←B'←QC'時,他們可以安全地提交區塊B及其所有祖先。這種兩鏈方法在保持性能的同時提供了安全性和活躍性。
本地內存池架構
Monad采用本地內存池架構,而不是傳統的全局內存池。在大多數Blockchain中,待處理交易被廣播到所有節點,這可能很慢(許多網絡跳)并且由于冗余傳輸而帶寬密集。相比之下,在Monad中,每個驗證者維護自己的內存池;交易由RPC節點直接轉發給接下來的幾個預定Leader(目前是接下來的N=3個Leader)以包含。
這利用了已知的Leader時間表(避免不必要的廣播給非Leader),并確保新交易快速到達區塊提議者。即將到來的Leader執行驗證檢查并將交易添加到他們的本地內存池中,因此當驗證者輪到領導時,它已經有相關的交易排隊。這種設計減少了傳播延遲并節省了帶寬,實現了更高的吞吐量。
(2)RaptorCast
Monad使用一種稱為RaptorCast的專用多播協議,以快速將區塊從Leader傳播到所有驗證者。Leader不是將完整區塊串行發送給每個對等方或依賴簡單的廣播,而是使用糾刪碼方案(根據RFC5053)將區塊提議數據分解為編碼塊,并通過兩級中繼樹高效分發這些塊。在實踐中,Leader將不同的塊發送給一組第一層驗證者節點,然后這些節點將塊轉發給其他人,這樣每個驗證者最終都會收到足夠的塊以重建完整區塊。塊的分配按權益加權(每個驗證者負責轉發一部分塊),以確保負載平衡。這樣,整個網絡的上傳容量被用來快速傳播區塊,最小化延遲,同時仍然容忍可能丟棄消息的拜占庭(惡意或故障)節點。RaptorCast使Monad即使在大區塊的情況下也能實現快速、可靠的區塊廣播,這對于高吞吐量至關重要。
BLS和ECDSA簽名
QC和TC使用BLS和ECDSA簽名實現,這是密碼學中使用的兩種不同類型的數字簽名方案。
Monad結合使用BLS簽名和ECDSA簽名以提高安全性和可擴展性。BLS簽名支持簽名聚合,而ECDSA簽名通常驗證速度更快。
ECDSA簽名
雖然無法聚合簽名,但ECDSA簽名速度更快。Monad將它們用于QC和TC。
QC創建:
*Leader提議一個區塊
*驗證者通過簽名投票表示同意
*當收集到所需的投票部分時,它們可以組合成一個QC。
*QC證明驗證者同意該區塊
TC創建:
*如果驗證者在預定時間內沒有收到有效區塊
*它向對等方廣播簽名的超時消息
*如果收集到足夠的超時消息,它們形成一個TC。
*TC允許即使當前輪失敗也能進入下一輪
BLS簽名Monad將BLS簽名用于多重簽名,因為它允許簽名逐步聚合成單個簽名。這主要用于可聚合的消息類型,如投票和超時。
投票是驗證者在同意提議的區塊時發送的消息。它們包含表示批準區塊的簽名,并用于構建QC。
超時是驗證者在預期時間內沒有收到有效區塊時發送的消息。它們包含帶有當前輪號、驗證者的最高QC和這些值的簽名的簽名消息。它們用于構建TC。
投票和超時都可以使用BLS簽名組合/聚合以節省空間并提高效率。如前所述,BLS比ECDSA簽名相對較慢。
Monad結合使用ECDSA和BLS以受益于兩者的效率。盡管BLS方案較慢,但它允許簽名聚合,因此特別適用于投票和超時,而ECDSA更快但不允許聚合。7、MonadMEV
簡單來說,MEV指的是通過重新排序、包含或排除區塊中的交易,各方可以提取的價值。MEV通常被分類為“好的”MEV,即保持市場健康高效的MEV(例如清算、套利)或“壞的”MEV(例如三明治攻擊)。
Monad的延遲執行影響了鏈上MEV的工作方式。在Ethereum上,執行是共識的前提——意味著當節點就一個區塊達成一致時,它們就交易列表和順序以及結果狀態達成一致。在提議新區塊之前,Leader必須執行所有交易并計算最終狀態,允許搜索者和區塊構建者可靠地針對最新確認的狀態模擬交易。
相比之下,在Monad上,共識和執行是解耦的。節點只需要就最近區塊的交易順序達成一致,而狀態的共識可能稍后達成。這意味著驗證者可能基于較早區塊的狀態數據工作,這使得它們無法針對最新區塊進行模擬。除了缺乏確認的狀態信息帶來的復雜性外,Monad的1秒出塊時間可能對構建者模擬區塊以優化構建的區塊具有挑戰性。
訪問最新的狀態數據對搜索者是必要的,因為它為他們提供了DEX上的確認資產價格、流動性池余額和智能合約狀態等——這使他們能夠識別潛在的套利機會和發現清算事件。如果最新的狀態數據未確認,搜索者無法在下一個區塊產生之前模擬區塊,并面臨狀態確認之前交易回滾的風險。
鑒于Monad區塊存在延遲,MEV格局可能與Solana類似。
作為背景,在Solana上,區塊每約400毫秒在一個槽中產生,但區塊產生到“根化”(最終確定)之間的時間更長——通常為2000-4000毫秒。這種延遲不是來自區塊生產本身,而是來自收集足夠的權益加權投票以使區塊最終確定所需的時間。
在這個投票期間,網絡繼續并行處理新區塊。由于交易費用非常低,并且可以并行處理新區塊,這創造了一個“競爭條件”,搜索者會發送大量交易希望被包含——這導致許多交易被回滾。例如,在12月期間,Solana上的31.6億筆非投票交易中有13億筆(約41%)被回滾。Jito的Buffalu早在2023年就強調,“Solana上98%的套利交易失敗”。
由于Monad上存在類似的區塊延遲效應,最新區塊的確認狀態信息不存在,并且新區塊并行處理,搜索者可能會被激勵發送大量交易——這些交易可能會失敗,因為交易被回滾,確認的狀態與它們用于模擬的狀態不同。
8、MonadDB
Monad選擇構建一個自定義數據庫,稱為MonadDB,用于存儲和訪問Blockchain數據。鏈擴展性的一個常見問題是狀態增長——即數據大小超過節點的容量。Paradigm在四月份發布了一篇關于狀態增長的簡短研究文章,強調了狀態增長、歷史增長和狀態訪問之間的區別,他們認為這些通常被混為一談,盡管它們是影響節點硬件性能的不同概念。
正如他們所指出的:
*狀態增長指的是新賬戶(賬戶余額和隨機數)和合約(合約字節碼和存儲)的積累。節點需要有足夠的存儲空間和內存容量來適應狀態增長。
*歷史增長指的是新區塊和新交易的積累。節點需要有足夠的帶寬來共享區塊數據,并且需要有足夠的存儲空間來存儲區塊數據。
*狀態訪問指的是用于構建和驗證區塊的讀寫操作。
如前所述,狀態增長和歷史增長都會影響鏈的擴展性,因為數據大小可能會超過節點的容量。節點需要將數據存儲在永久存儲中以構建、驗證和分發區塊。此外,節點必須在內存中緩存以與鏈同步。狀態增長和歷史增長以及優化的狀態訪問都需要鏈來適應,否則會限制區塊大小和每個區塊的操作。區塊中的數據越多,每個區塊的讀寫操作越多,歷史增長和狀態增長就越大,對高效狀態訪問的需求也就越大。
盡管狀態和歷史增長是擴展性的重要因素,但它們并不是主要問題,特別是從磁盤性能的角度來看。MonadDB專注于通過對數數據庫擴展來管理狀態增長。因此,增加16倍的狀態只需要每次狀態讀取時多一次磁盤訪問。關于歷史增長,當鏈具有高性能時,最終會有太多數據無法本地存儲。其他高吞吐量鏈,如Solana,依賴GoogleBigTable等云托管來存儲歷史數據,這雖然有效,但由于依賴中心化方,犧牲了去中心化。Monad最初將實施類似的解決方案,同時最終致力于去中心化解決方案。
(1)狀態訪問
除了狀態增長和歷史增長,MonadDB的關鍵實現之一是優化每個區塊的讀寫操作(即改進狀態訪問)。
Ethereum使用MerklePatriciaTrie(“MPT”)來存儲狀態。MPT借鑒了PATRICIA(一種數據檢索算法)的特性,以實現更高效的數據檢索。
Merkle樹Merkle樹(“MT”)是一組哈希值,最終縮減為一個單一的根哈希值,稱為Merkle根。數據的哈希值是原始數據的固定大小加密表示。Merkle根是通過反復哈希數據對直到剩下一個哈希值(Merkle根)而創建的。Merkle根的有用之處在于它允許驗證葉子節點(即被反復哈希以創建根的單個哈希值),而無需單獨驗證每個葉子節點。
這比單獨驗證每筆交易要高效得多,特別是在每個區塊中有許多交易的大型系統中。它在各個數據片段之間創建了可驗證的關系,并允許“Merkle證明”,即通過提供交易和重建根所需的中間哈希值(log(n)個哈希值而不是n筆交易),可以證明交易包含在區塊中。
MerklePatriciaTrie
Merkle樹非常適合Bitcoin的需求,其中交易是靜態的,主要需求是證明交易存在于區塊中。然而,它們不太適合Ethereum的用例,Ethereum需要檢索和更新存儲的數據(例如,賬戶余額和隨機數,添加新賬戶,更新存儲中的鍵),而不僅僅是驗證其存在,這就是為什么Ethereum使用MerklePatriciaTrie來存儲狀態。
MerklePatriciaTrie(“MPT”)是一種修改后的Merkle樹,用于在狀態數據庫中存儲和驗證鍵值對。雖然MT獲取一系列數據(例如交易)并僅成對哈希它們,但MPT像字典一樣組織數據——每個數據(值)都有一個特定的地址(鍵)來存儲。這種鍵值存儲是通過PatriciaTrie實現的。
Ethereum使用不同類型的鍵來訪問不同類型的Trie,具體取決于需要檢索的數據。Ethereum使用4種類型的Trie:
*世界狀態Trie:包含地址和賬戶狀態之間的映射。
*賬戶存儲Trie:存儲與智能合約相關的數據。
*交易Trie:包含區塊中包含的所有交易。
*收據Trie:存儲帶有交易執行信息的交易收據。
*Trie通過不同類型的鍵訪問值,這使得鏈能夠執行各種功能,包括檢查余額、驗證合約代碼是否存在或查找特定賬戶數據。
注意:Ethereum計劃從MPT轉向Verkle樹,以“升級Ethereum節點,使其能夠停止存儲大量狀態數據而不失去驗證區塊的能力”。
MonadDB:PatriciaTrie
與Ethereum不同,MonadDb在磁盤和內存中本地實現了PatriciaTrie數據結構。
如前所述,MPT是Merkle樹數據結構與PatriciaTrie的結合,用于鍵值檢索:其中兩種不同的數據結構被集成/結合:PatriciaTrie用于存儲、檢索和更新鍵值對,而Merkle樹用于驗證。這導致了額外的開銷,因為它增加了基于哈希的節點引用的復雜性,并且Merkle需要在每個節點上為哈希值提供額外的存儲。
基于PatriciaTrie的數據結構使MonadDB能夠:
*擁有更簡單的結構:每個節點沒有Merkle哈希,節點關系沒有哈希引用,它只直接存儲鍵和值。*直接路徑壓縮:減少到達數據所需的查找次數。*本地鍵值存儲:雖然MPT將PatriciaTrie集成到單獨的鍵值存儲系統中,但PatriciaTrie的本地功能就是鍵值存儲,這允許更好的優化。*無需數據結構轉換:無需在Trie格式和數據庫格式之間進行轉換。這些使MonadDB具有相對較低的計算開銷,需要更少的存儲空間,實現更快的操作(無論是檢索還是更新),并保持更簡單的實現。
異步I/O
交易在Monad上并行執行。這意味著存儲需要適應多個交易并行訪問狀態,即數據庫應該具有異步I/O。
MonadDB支持現代異步I/O實現,這使得它能夠處理多個操作而無需創建大量線程——與其他傳統的鍵值數據庫(例如LMDB)不同,后者必須創建多個線程來處理多個磁盤操作——由于需要管理的線程較少,因此開銷較小。
在加密領域中輸入/輸出處理的簡單示例是:
*輸入:在交易前讀取狀態以檢查賬戶余額*輸出:在轉賬后寫入/更新賬戶余額異步I/O允許輸入/輸出處理(即讀取和寫入存儲),即使先前的I/O操作尚未完成。這對于Monad來說是必要的,因為多個交易正在并行執行。因此,一個交易需要在另一個交易仍在從存儲中讀取或寫入數據時訪問存儲以讀取或寫入數據。在同步I/O中,程序按順序一次執行一個I/O操作。在同步I/O處理中請求I/O操作時,交易會等待直到前一個操作完成。例如:
*同步I/O:鏈將tx/block#1寫入狀態/存儲。鏈等待其完成。然后鏈可以寫入tx/block#2。*異步I/O:鏈同時將tx/block#1、tx/block#2和tx/block#3寫入狀態/存儲。它們獨立完成。
(2)StateSync
Monad擁有一個StateSync機制,幫助新節點或落后節點高效地趕上最新狀態,而無需從創世開始重放每筆交易。StateSync允許一個節點(“客戶端”)從其同行(“服務器”)請求到目標區塊的最近狀態快照。狀態數據被分割成塊(例如賬戶狀態的部分和最近的區塊頭),這些塊分布在多個驗證者同行中以分擔負載。每個服務器響應請求的狀態塊(利用MonadDb中的元數據快速檢索所需的Trie節點),客戶端組裝這些塊以構建目標區塊的狀態。由于鏈在不斷增長,一旦同步完成,節點要么執行另一輪更接近頂端的StateSync,要么重放少量最近的區塊以完全趕上。這種分塊狀態同步大大加速了節點引導和恢復,確保即使Monad的狀態增長,新的驗證者也可以加入或重啟并完全同步,而無需數小時的延遲。9、生態系統
(1)生態系統努力
Monad團隊專注于為其鏈開發一個強大而穩健的生態系統。過去幾年,L1和L2之間的競爭已經從主要關注性能轉向面向用戶的應用程序和開發者工具。鏈僅僅吹噓高TPS、低延遲和低費用已經不夠了;它們現在必須提供一個包含各種不同應用程序的生態系統,從DePIN到AI,從DeFi到消費者。這變得越來越重要的原因是高性能L1和低成本L1的激增,包括Solana、Sui、Aptos和Hyperliquid,它們都提供了高性能、低成本的開發環境和區塊空間。Monad在這里的一個優勢是它使用了EVM。
如前所述,Monad提供完整的EVM字節碼和EthereumRPCAPI兼容性,使開發者和用戶能夠集成,而無需更改其現有工作流程。那些致力于擴展EVM的人經常受到的一個批評是,有更高效的替代方案可用,例如SVM和MoveVM。然而,如果一個團隊可以通過軟件和硬件改進來最大化EVM性能,同時保持低費用,那么擴展EVM是有意義的,因為存在現有的網絡效應、開發者工具和可以輕松訪問的資本基礎。
Monad的完整EVM字節碼兼容性使應用程序和協議實例可以從其他標準EVM(如ETH主網、Arbitrum和OPStack)移植,而無需更改代碼。這種兼容性既有優點也有缺點。主要優點是現有團隊可以輕松將其應用程序移植到Monad。此外,為Monad創建新應用程序的開發者可以利用為EVM開發的豐富資源、基礎設施和工具,如Hardhat、Apeworx、Foundry、Rabby和Phantom等錢包,以及Etherscan、Parsec和Dune等分析和索引產品。
易于移植的協議和應用程序的一個缺點是,它們可能導致懶惰、低效的分叉和應用程序在鏈上啟動。雖然鏈擁有許多可用的產品很重要,但大多數應該是無法在其他鏈上訪問的獨特應用程序。例如,盡管大多數鏈都需要UniswapV2風格或基于集中流動性的AMM,但鏈還必須吸引一類新的協議和應用程序,以吸引用戶。現有的EVM工具和開發者資源有助于實現新穎和獨特的應用程序。此外,Monad團隊實施了各種計劃,從加速器到風險投資競賽,以鼓勵鏈上的新穎協議和應用程序。
(2)生態系統概述
Monad提供高吞吐量和最低的交易費用,使其非常適合特定類型的應用程序,如CLOB、DePIN和消費者應用程序,這些應用程序非常適合從高速、低成本的環境中受益。
在深入探討適合Monad的特定類別之前,了解為什么應用程序會選擇在L1上啟動,而不是在L2上啟動或啟動自己的L1/L2/應用鏈,可能會有所幫助。
*AI應用
值得關注的項目有:Playback、Score、Fortytwo、Monorail、Mace等。
免責聲明:讀懂Monad及其生態項目一覽文章轉發自互聯網,版權歸其所有。
文章內容不代表本站立場和任何投資暗示。加密貨幣市場極其波動,風險很高,可能不適合所有投資者。在投資加密貨幣之前,請確保自己充分了解市場和投資的風險,并考慮自己的財務狀況和風險承受能力。此外,請遵循您所在國家的法律法規,以及遵守交易所和錢包提供商的規定。對于任何因使用加密貨幣所造成的投資損失或其他損失,本站不承擔任何責任。
Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM