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:

  1. Their wallet interacts with an RPC server [00:01:15].
  2. The transaction is sent through the RPC server to a set of validators that maintain a mempool [00:01:21].
  3. 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].