# Modules

The ZkMatrix project is divided into three modules: the front-end **ZkWallet**, the side chain **ZkNode**, and the **ZkProver**.&#x20;

When a transaction is sent to **ZkNode** for aggregation, its status changes from Queued to Committed. The transaction party can change to Verified when **ZkProver** develops circuit proof and sends the aggregated transaction to the main chain.&#x20;

***ZkProver*** has created a GPU version to drastically reduce the time required to generate Proof. **ZkNode** allows multi-Prover to generate two-layer block proofs simultaneously, theoretically supporting transaction aggregation up to 2000 TPS.

Most users are happy with a high degree of confidence when the state is changed to the submitted state, which takes relatively little time in the ZkMatrix project. It can be done in 5 seconds thanks to ZkNode’s well-designed transaction pool and state transition logic. Following that, the proof generation time and the main chain block generation rules limit the interaction logic with the main chain. After waiting 60 seconds, it is expected that the transaction data may be placed on the main chain to achieve the same security as the main chain. The block size is automatically coordinated by the ZkNode side chain based on the block time and aggregation performance. It now supports capacities ranging from 8 to 32 to 64. When transaction volume is adequate, the average cost of each transaction on the main chain is merely 1/64.


---

# 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://cortex-blockchain.gitbook.io/zkmatrix/overview/modules.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.
