# Data Consensus Protocol

<figure><img src="https://3042747009-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaDUBtTPZKYj40o0zqoC8%2Fuploads%2FsA1tYhF5c5cfq8q4R9i7%2Fimage.png?alt=media&#x26;token=87f27624-1fb4-4702-98e9-be198d746eb5" alt=""><figcaption></figcaption></figure>

Most blockchains operate on a state machine model, and Bitcoin adheres to this framework as well, comprising three key elements:

1. **State (Sn)**: This represents the current state of the blockchain, such as account balances or the present state of smart contracts. In Bitcoin's case, it refers to the set of UTXOs (unspent transaction outputs).
2. **Transactions (Txs)** : The transactions are external inputs which trigger the State switch from current to the next. In Bitcoin's case, it refers to the new block data.
3. **State Transition Function f(x)**: This function describes how the blockchain’s state transitions from the current state to the next based on the new transactions. For Bitcoin, it encompasses all rules applied to UTXOs, such as the transfer rules.

exSat’s **Data Consensus Protocol** decentralizes and securely maps these three elements of Bitcoin onto the exSat network. This process includes:

1. **Storing Bitcoin's State Data**: Using exSat's RAM to fully store Bitcoin’s state ,which's the complete set of UTXO data.
2. **PoW + PoS for Block Updates**: [Synchronizers ](https://docs.exsat.network/guides-of-data-consensus/run-a-sychronizer)(mining pools) and [Validators ](https://docs.exsat.network/guides-of-data-consensus/run-a-btc-validator)upload and verify the latest Bitcoin blocks on exSat in a decentralized pattern.
3. **Transaction Parsing**: Each transaction from the uploaded Bitcoin blocks is parsed within exSat smart contract to update UTXO data. This parsing capability is also available to DApps, allowing them to filter their relevant Bitcoin transactions and build Bitcoin-based application databases directly on exSat.

<figure><img src="https://3042747009-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FaDUBtTPZKYj40o0zqoC8%2Fuploads%2F7gSaH6OkviyBxiGPQEAe%2Fimage.png?alt=media&#x26;token=df403c81-b84b-482a-a7f4-a978eaa7ac00" alt=""><figcaption></figcaption></figure>


---

# 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.exsat.network/approach/architecture/data-consensus-protocol.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.
