> For the complete documentation index, see [llms.txt](https://cortex-blockchain.gitbook.io/zkmatrix/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cortex-blockchain.gitbook.io/zkmatrix/overview/modules.md).

# 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.
