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]:

  1. A wallet interacts with an RPC server to send a transaction [00:01:17].
  2. The transaction is then sent to a set of validators that maintain the mempool [00:01:26].
  3. Transactions sit in the mempool until one validator is chosen as the leader [00:01:33].
  4. 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].