From: thepipeline_xyz
Monad is a full-scratch redesign of a blockchain that aims to combine high performance with full EVM compatibility and decentralization [00:00:22].
Overview
From a Developer Perspective
Monad is a full EVM L1 equivalent blockchain [00:00:30]. Developers familiar with EVM will find it feels the same to work with, but it offers access to a high-performance system [00:00:35]. It maintains full EVM RPC compatibility, meaning existing wallets and indexers should work out of the box [00:01:02]. Developers can port over any existing contract and tap into the EVM research and network effect [00:01:53].
From a User Perspective
Monad is a platform where Ethereum applications can find a home and realize the vision of a “world computer” [00:01:21]. It is designed as a high-performance, low-cost system, with transactions like Uniswap V2 costing hundreds of a cent [00:01:30].
Key Features
- High Performance
- 10,000 real Ethereum transactions per second [00:00:39].
- Single block times and single slot finality [00:00:58].
- Full EVM Compatibility
- Looks very similar to Ethereum in shape [00:00:27].
- Maintains full EVM RPC compatibility [00:01:02].
- Decentralization
- Aims to stay true to decentralization with hundreds of nodes participating in consensus globally [00:01:36].
- Maintains reasonable hardware requirements for nodes [00:01:43]. For a consumer full node, the target internet requirement is about 100 megabits per second [00:03:04].
Addressing Blockchain Bottlenecks
Monad addresses four fundamental constraints in a blockchain [00:02:21]:
- Network Bandwidth: Internet overhead [00:02:24].
- CPU Throughput: How fast computer cores can run [00:02:28].
- State Access: Database and historical state of the chain [00:02:33].
- State Growth: Current accounts, balances, and the ability to retrieve them [00:02:38].
Many blockchains take “shortcuts” to achieve certain properties, such as requiring very high internet connections (1 GB or 10 GB), placing all nodes physically close together, or increasing RAM requirements, which makes nodes expensive [00:02:56].
Monad’s goals are to get the most out of commodity hardware, design software that saturates hardware through all bottlenecks, and preserve decentralization with reasonable RAM requirements and a globally distributed network of hundreds of nodes [00:04:02].
Monad’s Architectural Innovations
Monad utilizes a new software architecture that is a full redesign [00:04:20]. The only part kept from the EVM was its bytecode (instructions), while consensus, the execution engine, parallel execution, and the custom State database (Monad DB) were rebuilt [00:04:37].
Asynchronous Execution
Unlike typical blockchains that use “interleaved execution” where execution and consensus are done in tandem within a block time (e.g., Ethereum’s 12-second block time, where execution is only about 1% of the time and consensus takes much longer) [00:05:20], Monad employs asynchronous execution [00:06:22].
Asynchronous execution stems from the realization that if you have a deterministic state machine like the EVM, and you know the transaction ordering and data, you don’t need to execute to know the results will always be the same [00:06:37]. This allows Monad to pull execution out of the current block and run it in parallel with the next block’s ordering process [00:07:07].
This means nodes come to consensus on transaction ordering prior to execution, working on two blocks in parallel [00:08:52]. This greatly expands the execution and gas budget, leading to higher throughput and lower fees [00:08:29]. Finality is achieved at consensus time, as a full node can run transactions locally as soon as consensus is reached [00:09:48].
Parallel Execution
Monad implements parallel execution to utilize modern computers’ multiple cores, effectively turning “one lane into multiple lanes” [00:10:17]. Traditionally, transactions are linearly ordered and serially executed [00:10:46]. Monad maintains this ordering but executes everything in parallel using optimistic parallel execution (also known as software transactional memory or optimistic concurrency control) [00:11:13].
How it works:
- Assume everything can run in parallel and generate pending results [00:11:30].
- Walk through the pending results in order, attempting to commit them [00:11:37].
- If a pending result relied on a previous one that changed, re-execute it with the new state [00:11:43].
The algorithm ensures a transaction is never executed more than once serially during the commit phase [00:13:16]. The overhead of re-execution is low because the state is cached, and reading data from disk is the most time-consuming part, not the execution itself [00:13:23]. This model also eliminates the need for access lists, reducing bandwidth overhead for developers [00:13:59].
Monad DB (The Secret Sauce)
Monad DB is a custom state database that makes Ethereum state native to how Ethereum works logically [00:14:43]. It feeds the parallel execution engine by enabling parallel state access [00:14:58]. Without it, parallel execution would be bottlenecked by waiting for data to be pulled from the database for each transaction [00:15:16]. Monad DB achieves this with asynchronous I/O, allowing many requests to be issued in parallel [00:15:25].
Traditional Ethereum clients often use off-the-shelf databases (like b-trees or LSM trees) to store the Merkel Patricia Trie (MPT), which is Ethereum’s logical state structure for succinct verification [00:16:42]. This creates a “tree traversal within a tree traversal,” where traversing the MPT logically requires multiple lookups in the underlying, differently structured physical database, leading to 16 to 32 times more overhead [00:19:10].
Monad DB fully rebuilds the database so that the Merkel Patricia Trie is the actual way data is stored on disk [00:19:42]. This removes the indirection and significantly reduces lookups per traversal [00:19:50]. Combined with asynchronous I/O (using a kernel technology called IOU ring) [00:20:56], Monad DB enables parallel state access, which is crucial for saturating and making parallel execution truly effective [00:21:12].
If you have further questions or want to learn more, you can reach out via the Monad account on Twitter or Telegram [00:21:40].