zkc-node is the core of ZKCross’ zkWasm modular rollup/validium solution.
zkc-node contains all components that responsible for building a zkWasm based rollup/validium.
The arch of zkc-node
What is included in zkc-node?
The Sequencer is responsible for ordering transactions, batch sorting and making the state move forward
- Transaction Ordering: Get transactions from the mempool and adds them into the data availability(DA) layer.
- State Transition: Collaborates with the Executor to process transactions and update the state.
- Trusted finality: Once the sequencer has added a transaction into the state, it shares this information with other nodes, making the transaction final. Other nodes will need to trust that this transaction is added into the state until they get data availability (DA) and validity (ZKPs) confirmations.
The Wasm Executor is the state transition implementation:
- Batch execution: receives requests to execute batch of transactions.
- Wasm Implementation: Provides an Wasm-compatible implementation for transaction processing.
- Metadata Retrieval: Retrieves necessary metadata like state root, transaction receipts, and logs from the execution.
- Leverage services like ZK kvDB, VRF…
The Prover is tasked with generating proofs for the batched transactions. These proofs are essential for the subsequent validation of the transactions on the Ethereum mainnet.
- ZKP Generation: Creates cryptographic proofs for each batch of transactions or for a combination of batches (proof aggregation).
- Optimization: Utilizes parallel computing to speed up the proof generation process.
- Ethereum Mainnet Preparation: Formats the proofs for validation on the Ethereum mainnet.
The first supported zkProver is the Delphinus Lab zkWasm (opens in a new tab) Proving service.
The Data Availability (DA) layer is a crucial component that ensures all transaction data is available when needed. This off-chain storage solution is configurable, allowing operators to set parameters that best suit their needs. The DA layer is essential for the Validium system, where data availability is maintained off-chain but can be made available for verification when required.
DA layer can be configured to:
- Polygon Avail DA(for Validium)
- Celestia DA(for Validium)
- Ethereum Calldata(for Rollup)
Smart contract proxy is the interface to communicate with the on-chain(e.g Ethereum) smart contract implementation following the zkWasm protocol. Which includes:
- Batch and aggregate zkProofs.
- Post zkProofs with settlement information on-chain for verification