From: thepipeline_xyz
Asynchronous execution is one of four core innovations introduced by Monad, forming part of a combination of optimizations that allow the system to achieve 10,000 transactions per second (TPS) at sub-cent gas fees [00:00:08].
Impact of Asynchronous Execution
On a fundamental level, asynchronous execution allows for much larger block sizes [00:00:32]. This capability offers several benefits:
- Enhanced Security for Developers App developers can write more secure code without concern for increasing gas costs for end users [00:00:38].
- Cheaper and Faster Transactions It leads to significantly cheaper and faster transactions [00:00:46].
- New Design Spaces With expanded gas limits, Monad opens up new design spaces, enabling developers to use cutting-edge primitives like proof verification and signature aggregation [00:00:52].
Traditional Blockchain Transaction Flow
To understand asynchronous execution, it’s helpful to review the typical transaction process in blockchains:
- Initiation A user’s wallet interacts with an RPC server to send a transaction [00:01:15].
- Mempool The transaction is sent to a set of validators who maintain a “mempool” where transactions await processing [00:01:26].
- Block Building A validator is chosen as the leader, selects transactions from the mempool, and builds a block, defining their order [00:01:38].
- Block Time Constraints In typical blockchains, the “block time” (t0 to t1) encompasses all operations: block building, transaction execution (blue), and consensus (green) [00:01:52].
- The time allocated for execution within this block time is relatively small [00:02:34].
- The majority of the block time is consumed by consensus, largely due to network messages [00:02:48].
Monad’s Approach: Asynchronous Execution with Parallelism
Asynchronous execution is only effective when coupled with parallelism [00:03:06]. Monad achieves this by using multiple threads [00:03:10].
- Instead of bundling execution and consensus within a single block’s time, Monad separates these processes onto different threads, operating on the same timeline [00:03:14].
- For a given block (e.g., block zero), the system can dedicate the entire block time to consensus [00:03:39].
- Execution for that same block can then occur in the next block’s time, on a separate thread [00:03:43].
- This effectively extends the time budget for execution to the entire block time, rather than a small segment [00:03:51].
- This separation allows for a massive expansion of the block’s gas budget or gas limit [00:04:17].
Interplay with Other Monad Innovations
The concept of asynchronous execution in Monad is deeply intertwined with other performance optimizations:
- Parallelism is evident in the use of two or more threads working simultaneously [00:04:35].
- Pipelining occurs between the threads, as block zero first undergoes consensus on one thread, and then its execution is performed on another thread [00:04:44].
- The separation of consensus (on one thread) and execution (on another thread) defines asynchronous execution [00:05:08].
This combination of parallelism, pipelining, and asynchronous execution is what makes Monad a high-performance system capable of addressing the need for performant blockchains and achieving high throughput [00:05:29].