
Quantum Teleportation in Qiskit: Move a State, Not a Particle
Transfer a qubit’s state with shared entanglement, two classical bits, and conditional corrections. See why it moves information, not matter.
Imagine a lab with two quantum processors on opposite sides of a campus. One holds a qubit in a delicate, unknown state. The other needs that state, but no one is carrying the original qubit across the room. Quantum teleportation offers a surprising solution: transfer the state using shared entanglement and a short classical message.
The name sounds like science fiction, but the protocol is a precise sequence of gates, measurements, and corrections. It moves quantum information, not matter. The physical qubit that starts with the state stays where it is, and the receiver's qubit becomes the new carrier.
The ingredients: one state, one pair, two bits
Call the qubit to be transferred the input, or |ψ⟩. Alice holds it along with one half of an entangled pair. Bob holds the other half. Before teleportation starts, Alice and Bob share that pair, often prepared as a Bell pair:
(|00⟩ + |11⟩) / √2
This shared entanglement is a resource, not a communication channel by itself. Alice operates on her input and her half of the pair, then measures both. The two measurement results form a classical message of exactly two bits. Bob uses those bits to choose a correction on his qubit.
The input state is generally unknown, so Alice cannot simply measure it and send a description. A measurement would yield a classical result and destroy the quantum details needed to reconstruct an arbitrary state. Teleportation instead uses a joint measurement that combines the input and Alice's entangled qubit.
What happens in the protocol
First, Alice applies a controlled-NOT from the input qubit to her half of the pair, then a Hadamard gate to the input. She measures those two qubits. The outcomes are random, but each one identifies a corresponding correction for Bob.
Let m0 be the input measurement result and m1 be the result from Alice's half of the pair. Bob applies X when m1 is 1, and Z when m0 is 1. If both are 0, he does nothing. After those corrections, Bob's qubit is in |ψ⟩. Before he receives the classical bits and applies the right correction, his local result alone does not reveal the input state.
That last step is why teleportation cannot send a message faster than light. Entanglement is shared in advance, but Bob still needs Alice's two ordinary classical bits. Those bits travel no faster than light, so the protocol cannot deliver usable information ahead of them.
A circuit walkthrough in Qiskit
In Qiskit, a QuantumCircuit gives each qubit a place in the circuit and each classical bit a place to store a measurement result. The sketch below assumes qubit 0 already contains the input state. Qubits 1 and 2 are Alice's and Bob's halves of the shared pair.
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister
q = QuantumRegister(3, "q")
c = ClassicalRegister(2, "c")
qc = QuantumCircuit(q, c)
# q[0] is assumed to hold the state |psi> to be teleported.
# Create the shared Bell pair on q[1] and q[2].
qc.h(q[1])
qc.cx(q[1], q[2])
# Alice performs the joint measurement sequence.
qc.cx(q[0], q[1])
qc.h(q[0])
qc.measure(q[0], c[0]) # m0
qc.measure(q[1], c[1]) # m1
# Bob applies the feed-forward corrections.
with qc.if_test((c[1], 1)):
qc.x(q[2])
with qc.if_test((c[0], 1)):
qc.z(q[2])
The conditional blocks express classical feed-forward: a measured bit controls a later gate. On hardware or a simulator that supports dynamic circuits, Bob's correction can happen as part of the run. In workflows that do not support mid-circuit measurement and conditionals, collect Alice's outcomes and apply the matching correction in a later circuit or analysis step. The correction rule is the important logic; execution support depends on the target.
What teleportation does not do
The protocol does not transport a particle, and it does not make a copy of |ψ⟩. Alice's joint measurement consumes the original state in the process of transferring its quantum information. That is consistent with the no-cloning principle, which forbids making a perfect independent copy of an arbitrary unknown quantum state.
Teleportation also needs an entangled pair prepared ahead of time, reliable measurements, and a classical channel. Noise can spoil the shared pair or the gates, so a real receiver may get an imperfect state. Qiskit makes the information flow visible, but the circuit is not a shortcut around the physical cost of creating, distributing, and protecting entanglement.
For programmers, the useful mental model is simple: entanglement supplies a shared quantum resource, measurement produces two classical control bits, and conditional gates finish the transfer. The state moves from one qubit to another. The particle does not go anywhere.