> For the complete documentation index, see [llms.txt](https://docs.lumia.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.lumia.org/run-a-node/zknode/zknode-overview.md).

# zkNode overview

**Who this is for:** operators trying to understand the "zkNode" / validium role in Lumia's architecture before deciding whether to run one. For the actual deployable node most operators run, see [RPC node overview](https://app.gitbook.com/s/chmhPiVNAafGw48c4oU2/run-a-node/rpc-node/rpc-node-overview) and its [deployment tutorial](https://app.gitbook.com/s/chmhPiVNAafGw48c4oU2/run-a-node/zknode/run-a-local-validium-node).

**You should already know:** [Chain Security](https://app.gitbook.com/s/chmhPiVNAafGw48c4oU2/ecosystem/lumia/chain-security), covering the sequencer and zkProvers concepts referenced below.

**A naming note:** Lumia's engineering material does not use the term "zkNode": it describes the equivalent roles as the **sequencer** (block production, key-gated, not self-runnable), the **prover/executor** (proof generation and execution), and **RPC replicas** (read/verification nodes, permissionless).

### Why Lumia isn't a validator network

Lumia Prism is a Polygon CDK validium. There's no consensus protocol and no validator set: exactly one *trusted sequencer* builds every block, with no voting, no leader election, no quorum. State validity is enforced cryptographically instead of socially: a prover generates a ZK validity proof for each batch, and an L1 verifier contract checks it. An invalid state transition simply cannot produce a valid proof. There's no equivalent role here.

```mermaid
flowchart TD
  SEQ["Sequencer<br/>builds every block<br/>key-gated, not self-runnable"]
  PE["Prover and executor<br/>proof generation and execution<br/>heavy hardware, no confirmed self-service path"]
  RPC["RPC replica<br/>re-executes and verifies every block<br/>permissionless"]
  YOU["What an independent operator can run today"] --> RPC
```

### The prover / executor role

The component that actually does proof work runs in two capacities:

* **Executor**: stateless EVM execution used by the sequencer to close batches.
* **Prover**: generates the ZK proofs submitted to L1.

{% hint style="warning" %}
It's also only useful to the network if the live sequencer is actually configured to call it, which is an operational integration point with no confirmed self-service path.
{% endhint %}

### What you can actually run yourself

If what you want is a node that syncs Lumia's validium state and verifies it independently (which is what most people mean when they ask about running a "zk node"), that's the [RPC node](https://app.gitbook.com/s/chmhPiVNAafGw48c4oU2/run-a-node/rpc-node/rpc-node-overview): a permissionless read replica that re-executes and verifies every block itself rather than trusting the sequencer's output. See its [deployment tutorial](https://app.gitbook.com/s/chmhPiVNAafGw48c4oU2/run-a-node/zknode/run-a-local-validium-node) for setup.
