# Architecture

StratoVM's architecture is modular, allowing for customization and flexibility in various components. The core modules of StratoVM include:

**Data Availability Module: Celestia**

The Data Availability module serves as the foundation of the StratoVM architecture, significantly impacting the security model of the entire stack. StratoVM utilizes Celestia as its primary Data Availability solution, storing the data (compressed transactions) on the Celestia network.

**Data Validation Module: Bitcoin**

To ensure the highest level of security and decentralization, StratoVM inherits the security properties of the Bitcoin network by storing the data hash on the Bitcoin blockchain. This approach enables StratoVM to leverage Bitcoin's consensus mechanism without requiring its own separate consensus protocol.

**Rollup Module: Optimism**

StratoVM reuses the battle-tested Optimism codebase, implementing a modified version of the OP Stack that adds support for Bitcoin. This module defines how the raw data stored in the Data Availability component is processed to form the inputs for the Execution Engine.

**Smart Contract Module: EVM**

StratoVM is designed to be EVM-equivalent, allowing developers to migrate decentralized applications (dapps) from Ethereum to Bitcoin with minimal or no modifications. This compatibility ensures a seamless transition for existing Ethereum developers and projects to leverage the security and decentralization of the Bitcoin network.

{% hint style="info" %}

#### Inheriting Bitcoin's Security through Merged Mining

While StratoVM leverages the security of the Bitcoin network by storing data hashes on the Bitcoin blockchain, the team is actively researching the possibility of inheriting Bitcoin's security through a merged mining protocol. This approach, known as re-staking Bitcoin, would further solidify StratoVM's security by leveraging the vast mining power and decentralization of the Bitcoin network.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.stratovm.io/stratovm/architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
