What is a Bell State?
Bell states are the simplest and most important examples of quantum entanglement. They are two-qubit states that cannot be described as two independent qubits — the qubits share a single quantum state no matter how far apart they are.
Understanding Bell states is the gateway to quantum teleportation, quantum key distribution (QKD), and quantum error correction. If you understand Bell states, you understand quantum computing's most important resource: entanglement.
The Four Bell States
There are exactly four Bell states, sometimes called the Bell basis. They are maximally entangled — you can't know anything about qubit 1 without knowing about qubit 2:
The most commonly used is |Φ+⟩ — this is what most people mean when they say "Bell state" without qualification. In this state, measuring either qubit always returns 50% |0⟩ and 50% |1⟩, but the two qubits always agree: if you measure qubit 0 and get 0, qubit 1 will also be 0. Always. No exceptions.
Why Entanglement is Strange
Here's the non-classical part: these correlations are not pre-determined. The qubits don't have hidden values before you measure. This was proved mathematically by John Bell in 1964 and confirmed experimentally in 2015 (loophole-free). Quantum mechanics is genuinely non-local — but this doesn't allow faster-than-light communication, because you can't control which outcome you get.
Key fact: A Bell state cannot be written as ψ_A ⊗ ψ_B for any single-qubit states ψ_A and ψ_B. This is the definition of entanglement: the state is non-separable.
How to Build a Bell State: The Circuit
Creating |Φ+⟩ from the ground state |00⟩ takes exactly two gates:
│
q[1]: ───────⊕────────
Step 1 — Hadamard on q[0]: The H gate puts q[0] into superposition: |0⟩ → (|0⟩ + |1⟩)/√2. Qubit 0 is now 50% likely to be 0 or 1.
Step 2 — CNOT with q[0] as control, q[1] as target: The CNOT flips q[1] only if q[0] is |1⟩. Since q[0] is in superposition, both branches run simultaneously. When q[0] would be |0⟩, q[1] stays |0⟩; when q[0] would be |1⟩, q[1] flips to |1⟩. The result: (|00⟩ + |11⟩)/√2.
The Qiskit Implementation
from qiskit import QuantumCircuit from qiskit_aer import AerSimulator # Create a 2-qubit, 2-classical-bit circuit qc = QuantumCircuit(2, 2) # Step 1: Hadamard on q[0] — creates superposition qc.h(0) # Step 2: CNOT — entangles q[0] and q[1] qc.cx(0, 1) # Measure both qubits into classical bits qc.measure([0, 1], [0, 1]) # Simulate 1024 shots sim = AerSimulator() job = sim.run(qc, shots=1024) counts = job.result().get_counts() print(counts) # Output: {'00': 512, '11': 512} (approximately) # Notice: '01' and '10' never appear — entanglement!
What the Results Mean
Running this circuit 1024 times, you'll see roughly 512 counts of '00' and 512 counts of '11'. You will never see '01' or '10'. The qubits always agree — that's entanglement.
The small deviation from exactly 50/50 (e.g., 503 vs 521) is natural quantum randomness described by the Born rule, not an error in the simulation.
The Other Three Bell States
You can create all four Bell states by adding gates before the H+CNOT:
Why Bell States Matter
Quantum teleportation uses a Bell pair as the entanglement channel to move an unknown quantum state from one qubit to another using only classical communication.
Quantum key distribution (BB84, E91) uses Bell state measurements to generate provably secure cryptographic keys.
Superdense coding sends 2 classical bits using just 1 qubit + 1 shared Bell pair — doubling the classical capacity of a quantum channel.
Bell inequality tests use Bell states to prove that quantum mechanics cannot be explained by classical hidden variables (CHSH S ≈ 2.83 > 2).
Build a Bell state right now
TalkinQuantum lets you drag gates, run the simulation, and see the results live in your browser — no install required. Quanta will explain every step.
Try the Circuit Builder →