Challenges with Parallel Execution
Last updated
Last updated
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.