From: thepipeline_xyz
Monad introduces asynchronous execution as one of its four key innovations, contributing to its ability to achieve 10,000 transactions per second at sub-cent gas fees [00:00:11]. This approach leverages parallelism and pipelining to optimize blockchain operations [00:03:00].
Impact of Asynchronous Execution
Asynchronous execution fundamentally allows for much larger block sizes [00:00:32].
- For Developers: It enables the writing of more secure code without concern for increasing gas costs for end-users [00:00:38]. The expanded gas limits open up new design spaces, allowing developers to utilize cutting-edge primitives like proof verification and signature aggregation [00:00:52].
- For Users: It results in significantly cheaper and faster transactions [00:00:46].
Traditional Blockchain Process
Typically, when a user sends a transaction:
- Their wallet interacts with an RPC server [00:01:15].
- The transaction is sent through the RPC server to a set of validators that maintain a mempool [00:01:21].
- A leader validator selects transactions from the mempool and builds a block, defining their order [00:01:38].
In most current blockchains, the entire block time (from t0 to t1) is shared for all operations: block building, transaction execution, and consensus [00:01:52]. The time allocated for execution is often much smaller than for consensus, as network messages for consensus consume the majority of the time budget [00:02:34].
Monad’s Approach: Parallelism and Pipelining
Monad separates the execution and consensus phases onto different threads, enabling asynchronous execution [00:03:13].
Parallelism
Monad utilizes multiple threads for processing [00:03:10]. This allows for parallel execution of different operations on different threads [00:03:20]. For instance, while one thread is dedicated to achieving consensus for a block, another thread can simultaneously handle the execution of transactions [00:03:32]. This represents parallelism because two distinct processes are occurring concurrently [00:04:37].
Pipelining
Monad also implements pipelining [00:04:44]. This means that the phases of block processing (consensus and execution) are ordered sequentially but overlap across different blocks on separate threads [00:04:47].
- For Block 0, the first thread focuses on consensus.
- Subsequently, on a second thread, Block 0’s execution is performed [00:05:02].
This separation means that the time budget for execution is no longer a small segment of the block time but the entire block time itself [00:03:45]. This massively expands the gas budget for a block [00:04:17].
Combination for Performance
The combination of parallelism (multiple threads doing work concurrently) and pipelining (ordered steps overlapping across blocks) facilitates asynchronous execution [00:05:12]. This comprehensive approach is what makes Monad a highly performant system [00:05:29].