This is the flat, top-down twin of the 3D UBQC (Universal Blind Quantum Computing) simulator — the same brickwork cluster-state graph and the same protocol, viewed as a 2D lattice you can pan and zoom instead of orbit.
Client prepares: |+_θj⟩ = (|0⟩ + e^(iθj)|1⟩) / √2, θj random
Server entangles: CZ gates across a 2D cluster (brickwork) graph
Client requests basis angle: δj = θj + φ'j + rj·π
φ'j = the "real" measurement angle the algorithm needs
rj = random one-time-pad bit (0 or 1), unknown to the server
Server measures in basis δj, reports outcome bj to the client
Client corrects: real outcome = bj ⊕ rj
Because δj is uniformly random regardless of θj (the pad rj masks it perfectly), the server's measurement angles carry zero mutual information about the client's real input or program — this is why the protocol is called "blind," and it holds even though the server does all the heavy lifting.
Trap qubits (gold) are extra qubits spliced into the graph with a client-known expected outcome and no real computational role. If a dishonest server tampers with the state or measurement, a trap fails with probability bounded below by the protocol's security parameter — repeating the test with more traps drives the chance of an undetected cheat toward zero, which is the basis for verifiable blind quantum computing.
- Computation depth — number of entangled columns (algorithm "time steps") in the cluster state.
- Trap-qubit rate — fraction of rows per column reserved as decoys instead of real computation.
- Server: honest/cheating — toggles whether the simulated server silently perturbs real outcomes; watch the trap failure rate rise once it's cheating.
- Run delegated sweep — measures the cluster column by column, left to right, exactly as the adaptive MBQC (measurement-based quantum computing) protocol would.
- Drag / scroll — pan the lattice and zoom in to inspect an individual qubit's colour once it is measured.