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:

  1. Initiation A user’s wallet interacts with an RPC server to send a transaction [00:01:15].
  2. Mempool The transaction is sent to a set of validators who maintain a “mempool” where transactions await processing [00:01:26].
  3. Block Building A validator is chosen as the leader, selects transactions from the mempool, and builds a block, defining their order [00:01:38].
  4. 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].