Challenges with Parallel Execution
The traditional transaction execution process in blockchains, such as Ethereum, operates in a sequential manner. This involves the following steps:
-
The execution module sequentially processes each transaction from the block.
-
The latest world state is updated after each transaction is executed, ultimately reflecting the state after the entire block is processed.
-
The execution of the next block depends on the final state from the current block, necessitating a sequential, single-threaded process.
This sequential execution model is not conducive to parallel execution due to several conflicts:
-
Account Conflict: Concurrently processing the balance or other attributes of an account by multiple threads can lead to inconsistencies.
-
Storage Conflict of the Same Address: Simultaneous modifications to the storage of the same global variable by different contracts can cause conflicts.
-
Cross-Contract Call Conflict: When contracts depend on the deployment or execution order of other contracts, parallel execution without proper sequencing can lead to errors.