From: thepipeline_xyz
Asynchronous execution is one of four key innovations introduced by Monad, combining various optimizations to create a system capable of producing 10,000 transactions per second at sub-cent gas fees [00:00:08]. This approach fundamentally enables significantly larger block sizes compared to traditional blockchains [00:00:32].
Benefits of Asynchronous Execution
The impact of asynchronous execution translates into several key benefits:
-
Larger Block Sizes and Expanded Gas Limits
- In traditional blockchains, the execution and consensus phases share the same block time [00:02:08]. The time budget for execution is often much smaller than that for consensus, as network messages for consensus consume the majority of the time [00:02:40].
- With asynchronous execution, which relies on parallelism using multiple threads [00:03:06], [00:03:32], the consensus for a block (e.g., Block Zero) can be completed on one thread, while its execution is handled on a separate thread in the subsequent block time [00:03:40], [00:04:50].
- This separation of execution and consensus on multiple threads means that the entire block time can be dedicated to execution [00:03:48], [00:04:17]. This massively expands the gas budget available for transactions [00:04:19].
-
Enhanced Security and Developer Capabilities
- Larger block sizes enable app developers to write more secure code without concerns about increasing gas costs for end users [00:00:38].
- This expansion of gas limits opens up new design spaces for developers, allowing them to leverage cutting-edge primitives like proof verification and signature aggregation [00:00:52].
- The outcome for end users is significantly cheaper and faster transactions [00:00:46].
How it Works
The concept of asynchronous execution is intertwined with parallelism and pipelining within the blockchain architecture [00:04:32].
In a typical blockchain interaction, a transaction is sent from a wallet via an RPC server to a set of validators that maintain a mempool [00:01:15]. A leader validator selects transactions from the mempool and builds a block, ordering them [00:01:30].
In a traditional setup, execution (processing transactions) and consensus (agreeing on the block order and state) occur sequentially within the same block time [00:02:02]. This means the time available for execution is constrained by the overall block time, and often, consensus takes up the majority of this time [00:02:40].
Asynchronous execution utilizes multiple threads for these processes [00:03:10]. This allows for:
- Parallelism: Different blocks can be processed concurrently on separate threads [00:04:37].
- Pipelining: The consensus for one block (e.g., Block Zero) can be finalized, while the execution for that same block occurs in the next block time on a separate thread [00:04:44]. This separation of consensus on one thread and execution on another is the core of asynchronous execution [00:05:21].
This combination of parallelism, pipelining, and asynchronous execution contributes to Monad’s high performance [00:05:29].