Loading...
Loading...
Transmitting Quantum States Using Entanglement
Quantum teleportation is a protocol for transferring an arbitrary quantum state from one location to another using a shared entangled pair and a classical communication channel. It demonstrates that entanglement plus classical bits can replace a direct quantum transmission, and it underpins many quantum networking and error-correction protocols.
Suppose Alice wants to send an arbitrary quantum state |ψ⟩ = α|0⟩ + β|1⟩ to Bob. Directly transmitting the qubit might be impossible or unreliable if the channel is noisy. Instead, Alice and Bob share one qubit each of a maximally entangled Bell pair |Φ⁺⟩ = (|00⟩ + |11⟩)/√2. Alice holds both the unknown state |ψ⟩ and her half of the Bell pair; Bob holds the other half.
Alice performs a Bell state measurement on her two qubits: she applies a CNOT gate from the unknown qubit to her entangled qubit, followed by a Hadamard gate on the unknown qubit. She then measures both qubits in the computational basis, obtaining two classical bits b1 and b2. These two bits completely characterize the relationship between |ψ⟩ and Bob's qubit.
Alice sends the two classical bits to Bob over any classical channel. Based on these bits, Bob applies corrective operations to his qubit: if b2 = 1 he applies X, and if b1 = 1 he applies Z. After these corrections, Bob's qubit is exactly |ψ⟩, regardless of which measurement outcome Alice obtained. The original state on Alice's side is destroyed by the measurement, consistent with the no-cloning theorem.
Unknown state
Bell pair
Initial three-qubit state
The full three-qubit state can be rewritten in the Bell basis of Alice's two qubits. After Alice applies CNOT and Hadamard, the state becomes a superposition over the four Bell states, each correlated with a specific Pauli-transformed version of |ψ⟩ on Bob's qubit. When Alice measures, she collapses the state to one of four possibilities, and Bob's qubit instantaneously becomes X^b2 Z^b1 |ψ⟩.
The four possible measurement outcomes (00, 01, 10, 11) each occur with probability 1/4, regardless of α and β. This means Alice learns nothing about the state |ψ⟩ from her measurement — the information is perfectly encrypted until Bob applies the correction. The protocol is therefore both universal (works for any state) and information-theoretically secure against eavesdroppers who only intercept the classical bits.
State after CNOT and H
Bob corrections
Quantum teleportation is deeply connected to the no-cloning theorem, which states that it is impossible to create an identical copy of an arbitrary unknown quantum state. The protocol respects this theorem because the original state on Alice's side is destroyed during measurement; only one copy of |ψ⟩ exists at the end, on Bob's side.
The protocol also illustrates that entanglement alone cannot transmit information faster than light. Although Bob's qubit collapses instantaneously when Alice measures, the state Bob obtains is maximally mixed until he receives the classical bits. Since classical communication is limited by the speed of light, causality is preserved. This elegant balance between instantaneous collapse and classical communication lies at the heart of quantum information theory.
Runnable implementations you can copy and experiment with.
A complete teleportation circuit that transmits a |+⟩ state from Alice to Bob using a shared Bell pair and classical corrections.
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit_aer import AerSimulator
qr = QuantumRegister(3)
cr = ClassicalRegister(3)
qc = QuantumCircuit(qr, cr)
# Prepare |+> on qubit 0 (state to teleport)
qc.h(qr[0])
# Create Bell pair on qubits 1 (Alice) and 2 (Bob)
qc.h(qr[1])
qc.cx(qr[1], qr[2])
# Alice's Bell measurement
qc.cx(qr[0], qr[1])
qc.h(qr[0])
qc.measure(qr[0], cr[0])
qc.measure(qr[1], cr[1])
# Bob's conditional corrections
with qc.if_test((cr[1], 1)):
qc.x(qr[2])
with qc.if_test((cr[0], 1)):
qc.z(qr[2])
# Verify by measuring Bob's qubit in X basis (should be |+>)
qc.h(qr[2])
qc.measure(qr[2], cr[2])
simulator = AerSimulator()
job = simulator.run(qc, shots=1024)
counts = job.result().get_counts()
print(counts)
# Bob's result (last bit) should be predominantly 0, confirming |+> was teleportedPennyLane implementation using mid-circuit measurements and conditional operations to teleport a |+⟩ state.
import pennylane as qml
dev = qml.device("default.qubit", wires=3)
@qml.qnode(dev)
def teleport():
# Prepare |+> on qubit 0
qml.Hadamard(wires=0)
# Create Bell pair on qubits 1 and 2
qml.Hadamard(wires=1)
qml.CNOT(wires=[1, 2])
# Alice's Bell measurement operations
qml.CNOT(wires=[0, 1])
qml.Hadamard(wires=0)
# Measure Alice's qubits
m0 = qml.measure(0)
m1 = qml.measure(1)
# Bob's conditional corrections
qml.cond(m1, qml.PauliX)(wires=2)
qml.cond(m0, qml.PauliZ)(wires=2)
# Verify by measuring PauliX expectation on Bob's qubit
return qml.expval(qml.PauliX(2))
print(teleport())
# Expected: ~1.0, confirming |+> was successfully teleported