Monad入門指南:快速理解并行EVM與性能提升
交易擴展性一直是熱門話題。在過去幾周中,我們一直在探索 Monad 如何幫助擴展 TPS。
以下是由Saurabh Deshpande撰寫的關于 Monad 工作原理的詳細說明。
Monad工作原理的詳細說明
TPS 是我們非常關注的一個指標。我們希望我們的鏈能夠支持更高的 TPS,因為它們可以支持更多的用戶和應用程序。下面的圖表顯示了以太坊和 L2 的 TPS 數(shù)字。沒有一條鏈曾經(jīng)突破過 100 TPS 的標志。請注意,TPS 是一個通用的用于衡量規(guī)模的術語。TPS 是不準確的,因為并非所有交易都相同,它們在復雜性上有所不同。但出于簡單起見,我們使用 TPS 作為衡量規(guī)模的指標。
如果我們想增加 TPS,我們該怎么辦?
第一種方法是構(gòu)建一個全新的系統(tǒng),就像 Solana 所做的那樣。它犧牲了與速度相比的 EVM 兼容性。它使用多線程執(zhí)行而不是單線程執(zhí)行(想想多核 CPU 與單核 CPU),進行并行化交易并使用了不同的共識機制。
第二種方法是使用鏈下執(zhí)行,并使用中心化的排序器來擴展以太坊。
第三種方法是將 EVM 分解為單獨的組件,并對其進行優(yōu)化以提高可擴展性。
Monad 是一個新的與 EVM 兼容的 L1,最近籌集了 2.25 億美元,它正在從頭開始構(gòu)建 EVM,而不是直接使用。它選擇了這第三種方法來增加可擴展性。
我們討論了 Monad 帶來的幾個重大變化。
并行執(zhí)行
以太坊虛擬機(EVM)按順序執(zhí)行交易。在執(zhí)行一個交易之前,下一個交易必須等待。可以這樣想。假設在一個摩托車裝配車間中有一個平臺。多輛卡車運送摩托車零件(每輛卡車都有組裝 50 輛摩托車所需的所有零件)。裝配車間分別執(zhí)行四種不同的功能:卸貨、分類、組裝和裝貨。
在當前的 EVM 設置中,只有一個平臺,并且加載和卸載使用相同的位置。因此,當卡車停放時,摩托車部件被卸載、分類、組裝和裝載在同一輛卡車上。當分類團隊在工作時,其他團隊都在等待。因此,如果將它們的工作看作不同的插槽,每個團隊僅在四個插槽中工作一次。這導致了顯著的低效率,突出了需要更加流暢的方法。
現(xiàn)在,想象有四個不同的裝載和卸載區(qū)域的平臺。即使卸貨團隊一次只能與一輛卡車一起工作,他們也不需要等待下三個插槽。他們可以直接轉(zhuǎn)移到下一輛卡車上。
分類、組裝和裝載團隊也是如此。一旦卸貨完成,卡車移動到裝載區(qū)等待裝載團隊裝載組裝好的摩托車。因此,只有一個平臺和加載/卸載區(qū)域的倉庫按順序執(zhí)行所有操作,而具有 4 個平臺和不同加載/卸載區(qū)域的倉庫進行并行化。
將 Monad 視為基礎設施,相當于擁有多個卡車平臺的倉庫。但并不簡單。當卡車依賴時,復雜性增加。例如,如果一輛卡車沒有所有零件來組裝 50 輛摩托車會怎樣?交易可能并不總是獨立的。因此,當 Monad 并行執(zhí)行它們時,它必須處理彼此依賴的交易。
怎么處理?它執(zhí)行一種叫做樂觀并行執(zhí)行的方法。協(xié)議只能并行執(zhí)行獨立的交易。例如,考慮 4 筆交易,其中 Joel 的余額為 1 個ETH:
Joel 將 0.2 個以太發(fā)送給 Saurabh
Sid 鑄造一個 NFT
Joel 將 0.1 個以太發(fā)送給 Sid
Shlok 購買 PEPE
所有這些交易都是并行執(zhí)行的,待定結(jié)果逐一提交。如果待定結(jié)果的輸出與任何交易的原始輸入存在沖突,則重新執(zhí)行交易。交易 2 和 4 沒有與其他交易的輸入沖突的待定結(jié)果,因為它們彼此獨立。但交易 1 和 4 并不獨立。
請注意,由于所有 4 個交易都從同一狀態(tài)開始,所以關注的是 Joel 的余額為 1 個ETH。Joel 將 0.2 個ETH發(fā)送出去后,余額為 0.8 個ETH。在 Joel 將 0.1 個ETH發(fā)送給 Sid 后,他的余額為 0.9 個ETH。結(jié)果逐一提交,確保輸出不與任何輸入沖突。在提交了 1 的待定結(jié)果后,Joel 的新余額為 0.8 個ETH。
這個輸出與第 3 個交易的輸入沖突。所以現(xiàn)在 3 被重新執(zhí)行,輸入為 0.8 個ETH。在執(zhí)行了 3 之后,Joel 的余額為 0.7 個ETH。
MonadDb
在這一點上,一個明顯的問題是我們?nèi)绾沃牢覀儾槐刂匦聢?zhí)行大部分交易。答案在于重新執(zhí)行并不是瓶頸。瓶頸是訪問以太坊的內(nèi)存。事實證明,以太坊在數(shù)據(jù)庫中存儲狀態(tài)的方式使得訪問狀態(tài)變得困難(耗時和因此昂貴)。這就是 Monad 的另一項改進:MonadDb。Monad 構(gòu)建數(shù)據(jù)庫的方式減少了與讀取操作相關的開銷。
當交易必須重新執(zhí)行時,所有輸入已經(jīng)在緩存存儲器中,與整體狀態(tài)相比,這更加容易訪問。
Solana 在其測試網(wǎng)上有 50k TPS,但現(xiàn)在在主網(wǎng)上只有大約1k TPS。Monad 聲稱在其內(nèi)部測試網(wǎng)上已實現(xiàn)了 10k 實際 TPS。盡管這并不總是代表實際性能,但我們迫不及待地想看看 Monad 在實際應用中的表現(xiàn)。
你可能感興趣的文章
-
EVM鏈什么意思?一文讀懂EVM鏈是什么鏈
EVM鏈是建立在以太坊虛擬機上的區(qū)塊鏈網(wǎng)絡,以太坊虛擬機是以太坊區(qū)塊鏈的核心組件,它提供了一個可執(zhí)行智能合約的運行環(huán)境,簡單的介紹還不能夠了解EVM鏈什么意思,接下來小…
2023-09-19 -
EVM兼容鏈是什么意思?通俗解釋EVM兼容鏈
這篇文章主要介紹了EVM兼容鏈是什么意思?通俗解釋EVM兼容鏈的相關資料,需要的朋友可以參考下本文詳細內(nèi)容介紹…
2022-11-02 -
什么是以太坊虛擬機EVM?EVM有什么作用?
這篇文章主要介紹了什么是以太坊虛擬機EVM?EVM有什么作用?每個參與到以太坊協(xié)議中的節(jié)點都會在各自電腦上運行軟件,這就被稱為以太坊虛擬機(EVM)。具體的請大家參考一下…
2021-03-18 -
如何發(fā)行代幣——從創(chuàng)建到托管的操作指南
本文介紹了發(fā)行代幣的操作指南,包括創(chuàng)建、托管和風險管理策略,建議創(chuàng)始人謹慎考慮代幣的生產(chǎn)性用例和影響,并遵循一系列步驟來管理風險、評估運營準備情況,文章還討論了如…
2024-04-28 -
LBP參與指南和LBP協(xié)議代幣潛力
LBP 是 Liquidity Bootstrapping Pool(流動性引導池)的縮寫,其模式類似于荷蘭拍,Fjord Foundry 就是一個 LBP 平臺,本文將為大家詳細介紹LBP參與指南和LBP協(xié)議代幣潛力…
2024-04-22 -
如何識別優(yōu)質(zhì)潛力項目?一覽山寨幣研究指南
風投分析師KOL Ronin分享入行4年的經(jīng)驗,創(chuàng)建了如何研究山寨幣的指南,通常這些策略適用于大型風投公司,讀者只需查看此分步指南即可確定是否應該投資特定代幣,下面一起來看…
2024-03-28 -
操作指南:如何在pSTAKE上獲得dydx、stkdydx獲取125%的收益?
pSTAKE Finance是一個專注于cosmo資產(chǎn)的流動性質(zhì)押協(xié)議,我 一直在探索,因為DYDX應用鏈,$TIA和$DYM更多的關注來到了Cosmos,我發(fā)現(xiàn)了一些很好的收益模式,我將一步步介紹如…
2024-03-18 -
牛市生存指南:不要上頭(附口訣)
本文將討論一些經(jīng)得住時間考驗的策略,確保在不沖動不上頭的情況下利用好這次牛市浪潮,每個普通人都有機會在牛市中創(chuàng)造和積累財富…
2024-03-11 -
進入幣圈需要了解什么?進入幣圈要哪些技能?
隨著加密貨幣和區(qū)塊鏈技術的不斷發(fā)展,幣圈已經(jīng)成為一個備受關注的領域,但是對于新手來說,幣圈的世界可能有些神秘和復雜,那么,進入幣圈需要了解什么?進入幣圈要哪些技能…
2024-02-05 -
ETHS銘文怎么買?ETHS銘文購買小白實用指南
以太坊(Ethereum)作為最具影響力的區(qū)塊鏈之一,其代幣以太幣(Ether)在市場上受到廣泛關注,而就在10月份以太銘文(ETHS)作為以太坊上的一個重要代幣,其參與了加密藝術…
2024-01-18