Quantum

Quantum Teleportation

Move the state, not the substrate. One Bell pair plus two classical bits sends one qubit of information — and nothing ever travels between the endpoints except those two bits.

The previous essay closed with a promise: once you have a Bell pair, you can do things classical bits can't, and the headline example is teleportation. Alice has a single qubit in some unknown state. She and Bob set up a shared Bell pair in advance (one half each, prepared in the same lab and then carried apart). Alice runs a short protocol on her two qubits — the unknown one plus her half of the Bell pair — measures both, and phones Bob the two classical bits she gets. Bob does one of four single-qubit corrections, and the state that was on Alice's first qubit is now on Bob's.

No qubit travels. One Bell pair, set up beforehand, plus two classical bits sent over a regular phone line, carries one qubit of quantum information. The unknown state never leaves Alice's lab as a quantum object; it disappears from her register and reappears on Bob's. That's the headline. The rest of this essay is the recipe and a careful look at why the picture below works.

The three qubits

We need three qubits. Index convention matches the rest of the codebase — |q2 q1 q0, LSB-first, Qiskit-compatible:

  • q0 — Alice's message qubit (the unknown state to send).
  • q1 — Alice's half of the shared Bell pair.
  • q2 — Bob's half of the shared Bell pair.

Alice can touch q0 and q1. Bob can touch q2. Nobody can touch each other's qubits — that's the constraint that makes this interesting. The only channel between them is a classical wire.

Step through the protocol

The widget below holds three live Bloch cards (q0, q1, q2), each showing that qubit's reduced state. Below them, a stepper walks the five-step protocol. Each step updates the shared three-qubit simulator under the hood, so the cards repaint to match. Step backward and forward as much as you like — the stepper replays from scratch each time, so jumps can't drift.

Per-qubit reduced Bloch arrows. Watch q₁ and q₂ shrink to the origin once the Bell pair is built — and q₂ return to full length, matching q₀'s original state, after Bob's corrections.

q0

|0⟩ |1⟩
q₀ — message (|1⟩)

r = 1.000

q1

|0⟩ |1⟩
q₁ — Alice's Bell half

r = 1.000

q2

|0⟩ |1⟩
q₂ — Bob

r = 1.000

Step through the protocol and watch each qubit's Bloch arrow respond.

Step 1 / 5

Entangle Bell pair (q1, q2)

Hadamard on q1, then CNOT(q1 → q2) creates the shared Bell pair Alice and Bob will use as the channel.

Try this: press Next through all five steps. The cascade you should see:

  1. Entangle the Bell pair on (q1, q2). Both arrows shrink to the origin. The "Entangled" badge lights up on q1 and q2. q0 hasn't moved.
  2. Prepare the message on q0. Default is X on q0, so the message is |1⟩ — q0's arrow swings to the south pole. The Bell pair is still maximally mixed from each half's point of view.
  3. Alice's Bell-basis measurement on (q0, q1). We apply CNOT(q0 → q1) then H on q0. This rotates Alice's Bell basis into the computational basis — if Alice did measure now, she'd get one of four equally likely two-bit outcomes, each pointing at a different Bell state. q0 and q1 arrows do their own scramble; q2 stays at the origin.
  4. Bob's first correction: CNOT(q1 → q2). Bob conditionally flips q2 based on q1's value. q2's arrow visibly moves.
  5. Bob's second correction: CZ(q0 → q2). Conditional phase. q2's arrow lands at the south pole — |1⟩. The state that was on q0 after step 2 is now on q2. Teleportation complete.

The deferred-measurement trick

If you've read teleportation before, you might be squinting at step 5. The textbook protocol says Alice measures q0 and q1 after step 3, getting two classical bits (a, b), and tells Bob — who then applies Xb Za on q2. The two corrections are classically conditioned on Alice's measurement outcome. Where did the measurement go?

It's a textbook identity, sometimes called the principle of deferred measurement: a quantum circuit that ends with a measurement followed by a classically-conditioned gate is equivalent to the same circuit with the conditional gate replaced by its quantum-controlled cousin and the measurement pushed all the way to the end. For teleportation this means:

measure(q0,q1)    XbZa on q2        CNOT(q1q2)  ;  CZ(q0q2)\text{measure}(q_0, q_1) \;\to\; X^b\, Z^a\text{ on } q_2 \;\;\equiv\;\; \text{CNOT}(q_1 \to q_2)\;;\;\text{CZ}(q_0 \to q_2)

Same final state on q2, no mid-circuit measurement needed, every gate is unitary. That's what the simulator underneath this page is running. Nothing has been cheaped out — the picture is the textbook circuit rewritten as a unitary block, and the math is exact (the appendix walks through it). The "Copy as Qiskit" button on the diagram below emits the same deferred-measurement circuit; you can paste it into a Jupyter notebook and check.

A small naming note: there's no native CZ in the simulator's gate set, but CZ = H · CNOT · H on the target qubit. The circuit diagram below shows the explicit three-op decomposition; the protocol stepper bundles them into one labeled "Correct: deferred CZ" step.

q0 q1 q2 H X H H H
Remix in sandbox →
Deferred-measurement teleportation circuit (3 qubits). q₀ is the message; q₁ and q₂ are the Bell pair. The CNOT-then-H block on (q₀, q₁) is Alice's Bell-basis measurement (without the measurement); the trailing CNOT(q₁→q₂) and H·CNOT·H block are Bob's deferred corrections.

Remix in sandbox →

Why this isn't faster-than-light

No information moves between Alice and Bob without the classical phone call. Before Alice's measurement (or its deferred-measurement proxy), Bob's q2 is in the maximally mixed state — a fair coin, with the Bloch arrow at the origin. After Alice runs her side of the protocol but before she calls, q2 is still in the maximally mixed state from Bob's local point of view, because Bob doesn't know which of four correlated branches he's in. Only after the two classical bits arrive can Bob apply the right correction and recover the state. The classical channel is the bottleneck. Special relativity stays intact.

Quantum networks and repeaters

Once teleportation works between two endpoints, you can chain it. Suppose Alice wants to share entanglement with a distant Bob, but the physical channel is lossy enough that a single Bell pair won't make it. The fix is a quantum repeater: an intermediate node that holds two Bell pairs — one with Alice, one with Bob — and "swaps" them with a Bell-basis measurement. The net effect is a fresh Bell pair shared directly between Alice and Bob, despite no qubit having ever traveled the full path.

The widget below is the cleanest cartoon of that. Each line is a physical link that may or may not be carrying an active Bell pair. Click a link to entangle it. The indicator under the diagram turns on only when Alice and Bob share a continuous entangled path:

Click each link to entangle it. Alice and Bob share a Bell pair only when both links are entangled — the repeater swaps them into one.

Alice ↔ Bob: not yet entangled

The cartoon hides a lot. Real repeaters need entanglement distillation (combining several noisy pairs into one cleaner pair), quantum memory long enough to wait for the second link to come up, and synchronization of the Bell-basis measurements. Every hop loses some fidelity, and chaining many hops without error correction degrades the final pair past usefulness — which is why first-generation quantum repeaters target the regime where post-selection and distillation can recover the loss. A fidelity-aware repeater diagram with measured loss rates is a Phase 4 essay; this one stops at the topology.

Self-test

  1. Step the protocol to the end and look at q2's Bloch arrow. Then reset, prepare a different message on q0 (remix the circuit in the sandbox — change the X(0) to H(0), for example), and run the protocol again. Where does q2 land? Does it match what q0 looked like after step 2? (It should — that's the protocol.)
  2. The "deferred CZ" step is actually three op dispatches in the protocol stepper but a single textbook gate. Why does the simulator need the decomposition? (Hint: look at the gate set the circuit IR supports — there's no native CZ. Same reason you'd write cx; h; cx; h in a different framework that lacked cz.)
Deferred measurement, classical-conditioned Paulis, and the Bell-basis projector

Alice's Bell-basis measurement on (q0, q1) can be written, before measurement, as the unitary UBSM  =  (HI)CNOT(q0q1)U_{\text{BSM}} \;=\; (H \otimes I)\,\text{CNOT}(q_0 \to q_1) which rotates the Bell basis on (q0, q1) into the computational basis. After UBSM, measuring in the computational basis yields outcomes (a, b) ∈ 1², one per Bell state, each with probability 1/4 regardless of the input on q0.

The classical-conditioned correction is Xb Za on q2. The principle of deferred measurement says: a measurement followed by a classically-conditioned Pauli is equivalent to the corresponding quantum-controlled Pauli followed by a measurement that's now decoupled from everything downstream. Concretely:

measure(q1)Xb on q2        CNOT(q1q2)  ;  measure(q1)\text{measure}(q_1) \to X^b \text{ on } q_2 \;\;\equiv\;\; \text{CNOT}(q_1 \to q_2)\;;\;\text{measure}(q_1)
measure(q0)Za on q2        CZ(q0q2)  ;  measure(q0)\text{measure}(q_0) \to Z^a \text{ on } q_2 \;\;\equiv\;\; \text{CZ}(q_0 \to q_2)\;;\;\text{measure}(q_0)

Apply both substitutions, and the trailing measure(q0, q1) commutes through every remaining gate (those gates don't touch q0 or q1 anymore). We can drop the measurement entirely from the simulation and trace out q0, q1 at the end; the reduced state on q2 is exactly the input state on q0. Run the algebra once and you have it forever; the proof is in Nielsen & Chuang §4.4.

And CZ = H · CNOT · H on the target — that's the identity HXH=ZHXH = Z conjugated through the CNOT's target-side action — which is why the simulator can run the protocol without growing a native CZ kind.