> For the complete documentation index, see [llms.txt](https://scalaris.gitbook.io/scalaris/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://scalaris.gitbook.io/scalaris/overview/scalaris-framework/parallel-transaction-execution-for-evm-in-scalaris-framework/challenges-with-parallel-execution.md).

# Challenges with Parallel Execution

<figure><img src="https://3615657405-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvqiE8JyJwtGx16yF0rZu%2Fuploads%2FApksooRECP3jB9FqNDjR%2FScalaris%20-%20Graphic%20(6).png?alt=media&amp;token=fbcfcf6f-14a1-47c1-9499-62591fb15f2c" alt=""><figcaption></figcaption></figure>

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.
