From: thepipeline_xyz
Monad introduces several key innovations that collectively contribute to its high performance, enabling it to produce 10,000 transactions per second at sub-cent gas fees [00:00:11]. One of these core innovations is asynchronous execution [00:00:08]. These optimizations are a combination of many different aspects that yield a highly performant system [00:00:17].
Asynchronous Execution: A Core Innovation
Asynchronous execution is a fundamental innovation that allows for significantly larger block sizes compared to systems without it [00:00:29].
Impact of Asynchronous Execution
The impact of asynchronous execution is far-reaching:
- Enhanced Security for Developers It enables app developers to write much more secure code without concerns about increasing gas costs for end-users [00:00:38].
- Cheaper and Faster Transactions For end-users, this translates to much cheaper and faster transactions [00:00:46].
- Expanded Design Spaces With expanded gas limits, Monad opens up new design spaces, allowing developers to leverage cutting-edge primitives like proof verification and signature aggregation [00:00:52].
Traditional Blockchain Transaction Processing
To understand asynchronous execution, it’s helpful to first understand how transactions are typically sent to a blockchain [00:01:10]:
- A wallet interacts with an RPC server to send a transaction [00:01:17].
- The transaction is then sent to a set of validators that maintain the mempool [00:01:26].
- Transactions sit in the mempool until one validator is chosen as the leader [00:01:33].
- The leader then takes transactions from the mempool and builds a block, ordering them [00:01:43].
In typical blockchains, the “block time” (t0 to t1) encompasses all stages: building the block, execution (blue segment), and consensus (green segment) [00:01:52]. The time budget for execution is often much smaller than the time budget for consensus, as network messages for consensus consume the majority of the time [00:02:38].
Monad’s Asynchronous Approach
The concept of asynchronous execution is only possible with parallelism [00:02:58]. Monad utilizes multiple threads [00:03:10]. This approach separates execution and consensus onto different threads [00:03:13]:
- For block zero, one thread can spend all its time doing consensus [00:03:32].
- In the next block time, another thread can execute the entire previous block [00:03:40].
This means the time budget for execution is no longer a small segment but the entire block time [00:03:45]. By separating execution onto a separate thread, Monad massively expands the gas budget available for transactions [00:04:12].
Interplay with Parallelism and Pipelining
Asynchronous execution in Monad is intrinsically linked to other high-performance features:
- Parallelism Parallelism is evident between the two threads, where different operations occur concurrently [00:04:37].
- Pipelining Pipelining exists between the steps performed on these threads [00:04:44]. For example, consensus for Block 0 is completed, and then execution for Block 0 is performed afterwards on a different thread [00:04:50].
This separation of consensus on one thread and execution on another thread is the essence of asynchronous execution [00:05:08]. It is this combination of parallelism, pipelining, and asynchronous execution that makes Monad such a performant system [00:05:29].