Monad 入門指南:快速了解EVM 與效能提升


交易擴展性一直是個熱門話題,現在我們正在探討Monad如何幫助擴展TPS。 TPS是我們非常關心的指標,因為它可以支援更多用戶和應用程式。這裡詳細介紹了Monad的工作原理,比較了以太坊和L2的TPS數字。 Monad選擇了一種優化EVM以增加可擴展性的方法。它使用了一種樂觀批量執行的方法來處理交易依賴關係。此外,Monad也改進了資料庫的建置方式,降低了存取成本。雖然Solana在測試網上顯示了很高的TPS,但Monad在其內部測試網上達到了實際10k的TPS。我們期待看到Monad在實際應用上的表現。

交易擴展性一直是熱門話題。在過去的幾週中,我們一直在探索Monad 幫助擴展TPS。

以下是由Saurabh Deshpande 撰寫的關於Monad 工作原理的詳細說明。

TPS是我們非常關注的指標。我們希望我們的鏈能夠支援更高的TPS,因為它們可以支援更多的用戶和應用程式。下面的K線走勢圖坊顯示了以太坊和L2的TPS數字。曾經沒有一條鏈突破100 TPS 的標誌。請注意,TPS 是一個通用的用於緩慢規模的術語。 TPS 是不準確的,因為並非所有交易都相同,它們在複雜性上有所不同。但首先簡單入門,我們使用TPS逐步擴大規模的指標。

如果我們想增加TPS,我們該怎麼辦?

第一種方法是建立一個全新的系統,就像Solana 所做的那樣。它犧牲了與速度相比的EVM 相容性。它使用多執行緒執行而不是單執行緒執行(注意多核心CPU 與單核心CPU) ),進行家具化交易並使用了不同的意見機制。第二個方法是使用鏈下執行,並使用中心化的排序器來擴展以太坊。第三種方法將EVM 分解為單獨的組件,並對其進行最佳化以提高可擴展性。

Monad 是一個新的與EVM 相容的L1,最近募集了2.25 億美元,它正在從頭開始建造EVM,而不是直接使用。它選擇了這第三種方法來增加可擴展性。

我們討論了Monad 帶來的幾個重大變化。

滿足

以太坊虛擬機器(EVM)依序執行交易。在執行一筆交易之前,下一筆交易必須等待。可以這樣想。假設在一個轎廂搬運車間有一個平台。多輛卡車搬運轎廂(每輛)卡車配備了50輛卡車所需的所有部件)。組裝車間分別執行四種不同的功能:卸貨、分類、整理和裝貨。

評估值

在目前的EVM 設定中,只有一個平台,並且載入和卸載使用相同的位置。 ,當卡車停放時,支架部件被卸載、分類、建造並因此裝載在同一個卡車上。當分類團隊在工作時,其他團隊都處於等待狀態。因此,如果將他們的工作放入不同的插槽中,每個團隊只能在四個插槽中工作一次。這導致了明顯的低效率,突出了需要更加流暢的方法。

現在,想像一下有四個不同的裝載和卸載區域的平台。即使卸貨團隊一次只能與一輛卡車一起工作,他們也不需要等待下三個插槽。他們可以直接轉移到下一個卡車。

分類、收集和裝載團隊也是如此。一旦卸貨完成,卡車移動到裝載區等待裝載團隊裝載好的塔。因此,只有一個平台和裝載/卸載區域的倉庫按順序執行所有操作,而有4 個操作平台和不同加載/卸載區域的倉庫進行家具化。

評估值

將Monad 視為基礎設施,相當於擁有多個卡車平台的倉庫。但並不簡單。當卡車依賴時,複雜性增加。例如,如果一輛卡車沒有所有零件來組裝50 輛卡車會怎麼樣?交易可能並不總是獨立的。因此,當Monad 執行它們時,它必須處理異質依賴的交易。

怎麼處理?它執行一種稱為樂觀批量執行的方法。協議只能執行獨立的交易。例如,考慮4 筆交易,其中Joel 的餘額為1 個ETH:

Joel 將0.2 個以太傳送給Saurabh Sid鑄造一個NFT 喬爾將0.1 個以太傳送給Sid Shlok 購買PEPE

所有這些交易都是全部執行的,待定結果逐一提交。如果待定結果的輸出與任何交易的原始輸入有衝突,則重新執行交易。交易2和4沒有與其他交易的輸入衝突的待定結果,因為它們彼此獨立。但交易1 和4 並不獨立。

請注意,由於所有4 個交易都從相同的狀態開始,所以關注的是Joel 的餘額為1 個ETH。 Joel 將0.2 個ETH 送出後,餘額為0.8 個ETH。在Joel 將0.1 個ETH 發送給Sid之後,他的餘額為0.9 個ETH。結果逐一提交,確保輸出不會與任何輸入衝突。在提交了1 的待定結果後,Joel 的新餘額為0.8 個ETH。

這個輸出與第3 個交易的輸入衝突。所以現在3 被重新執行,輸入為0.8 個ETH。在執行了3 個之後,Joel 的餘額為0.7 個ETH。

單子資料庫

評估值

在這一點上,一個明顯的問題是我們如何知道我們必須執行大部分交易。答案是重新執行不是瓶頸。瓶頸是存取以太坊的記憶體。事實證明,以太坊資料庫重新在中儲存狀態的方式使得存取狀態急劇困難(運行和因此昂貴)。這就是Monad 的另一項改進:MonadDb。 Monad 建構資料庫的方式減少了與讀取操作相關的開銷。

當交易必須重新執行時,所有輸入已經在記憶體中,與整體狀態相比,這更容易存取。

Solana 在其測試網上有50k TPS,但現在在主網上只有大約1k TPS。 Monad 聲稱在其內部測試網上已經實現了10k 實際TPS。這並不總是代表實際效能,但儘管我們迫不及待地想看看Monad在實際應用中的表現。

資訊來源:0x資訊編譯自網際網路。版權歸作者Decentralisedco所有,未經許可,不得轉載

Total
0
Shares
Related Posts