Quantum Teleportation
Using one pre-shared entangled pair and two classical bits, move an unknown quantum state from one place to another — without copying it, and without sending any information faster than light.
The problem it solves
Alice holds a qubit in some unknown state |ψ⟩ = α|0⟩ + β|1⟩ and wants to hand that state
to a distant Bob. "Read it out and re-send" does not work: measurement destroys |ψ⟩, and a
single measurement cannot determine α and β. "Copy it and ship the copy" does not work either — the
no-cloning theorem forbids making an exact copy of an unknown quantum state.
Teleportation offers a third path: it transfers |ψ⟩ to Bob without Alice ever
learning it and without physically moving that qubit through space.
The bill of resources is remarkably small:
| Resource | Amount | Purpose |
|---|---|---|
| Pre-shared entanglement (Bell pair) | 1 pair | Establishes the quantum-correlated channel between Alice and Bob |
| Classical communication bits | 2 | Tell Bob which correction to apply |
| The original qubit | 1 (destroyed) | Measured in the process; its state is transferred to Bob |
Intuition — why the two classical bits are needed
Entanglement makes Alice's measurement instantly correlated with Bob's qubit, but that correlation is
itself random: Alice's measurement projects Bob's qubit, with equal probability, onto one of four
variants of |ψ⟩. Bob does not know which one he got, so Alice must also tell him her two
measurement outcomes over an ordinary classical channel. Only once he has those 2 classical bits does Bob
know which correction to apply to dial his qubit back to exactly |ψ⟩.
This is exactly why teleportation cannot go faster than light: before the 2 classical
bits arrive, Bob's reduced state is the maximally mixed state I/2, carrying no usable
information about |ψ⟩. Classical bits
travel at the speed of light or slower, so the whole protocol strictly respects relativity.
Why it works — Bell measurement plus conditional correction
Let the state to send be |ψ⟩ = α|0⟩ + β|1⟩, with Alice and Bob sharing the Bell state
(|00⟩ + |11⟩)/√2. Alice performs a Bell-basis measurement on her two qubits
(the message qubit plus her half of the Bell pair). Algebraically, the joint three-qubit state can be
rewritten as a table correlating Alice's two outcomes with Bob's qubit state:
| Alice measures (b0, b1) | Bob's qubit becomes | Correction Bob needs |
|---|---|---|
| 0, 0 | α|0⟩ + β|1⟩ | none (already |ψ⟩) |
| 0, 1 | α|1⟩ + β|0⟩ | X |
| 1, 0 | α|0⟩ − β|1⟩ | Z |
| 1, 1 | α|1⟩ − β|0⟩ | X then Z |
Each of the four outcomes occurs with probability 1/4. Whichever it is, Bob simply applies X
according to b1 and Z according to b0, recovering |ψ⟩
exactly. Note that Alice's measurement destroys the original qubit in the process — fully
consistent with no-cloning: at no instant does more than one copy of |ψ⟩ exist. For the
(1,1) case, the order in which X and Z are applied differs only by a global
phase and does not change the final physical state.
The mechanism
| Step | Role |
|---|---|
| Prepare the Bell pair | h then CNOT entangle q1, q2 into (|00⟩+|11⟩)/√2, the quantum channel. |
| Bell measurement | Apply CNOT then h to the message qubit and Alice's half, then measure — equivalent to reading in the Bell basis. |
| Classical feed-forward | Send the two measured bits to Bob; they determine the correction that follows. |
| Conditional correction | Bob applies X and/or Z per the outcome to dial his qubit to |ψ⟩. |
|ψ⟩ exists at any moment. And without those 2 classical bits, Bob's end is
just random noise, so the protocol transmits no faster-than-light information.
What it can and cannot do
- It transfers state, not matter or energy. What is "teleported" is quantum information (α and β), not any particle.
- It requires a classical channel. Without those 2 classical bits the protocol cannot complete — which is precisely why it does not violate relativity.
- It consumes entanglement. Each teleported qubit uses up one Bell pair; to send more, you must distribute more entangled pairs in advance.
- It is a foundational primitive of quantum networks. The same mechanism underpins entanglement swapping, quantum repeaters, and moving states between modules in distributed quantum computing.
The protocol, step by step
- Prepare the state to send,
|ψ⟩(the code usesry(0.7, q[0])for an example state). - Entangle q1, q2 into a Bell pair with
hthenCNOT. - Apply
CNOTthenhto q0, q1 and measure — a Bell-basis measurement yielding b0, b1. - Send b0, b1 to Bob over the classical channel.
- Bob applies corrections by the rule:
Xif b1=1,Zif b0=1. - q2 now holds the original
|ψ⟩exactly.
Seeing it in code
Read it against the theory above: ry(0.7, q[0]) creates the state to send;
h(q[1]) then x.ctrl(q[1], q[2]) prepares the Bell pair; x.ctrl(q[0], q[1])
then h(q[0]) rotate the Bell measurement into the computational basis; mz yields
the two classical bits b0, b1; the following if b1: x(q[2]) and
if b0: z(q[2]) are exactly the conditional feed-forward corrections from the table — a textbook
use of mid-circuit measurement and conditional gates. The final mz(q[2]) reads out the
recovered |ψ⟩.
import qalgora
@qalgora.kernel
def teleport():
q = qalgora.qvector(3) # q0 = message, q1/q2 = Bell pair
ry(0.7, q[0]) # prepare some state to send
h(q[1])
x.ctrl(q[1], q[2]) # entangle q1,q2
x.ctrl(q[0], q[1])
h(q[0])
b0 = mz(q[0])
b1 = mz(q[1])
if b1: x(q[2]) # feed-forward corrections
if b0: z(q[2])
mz(q[2]) # q2 now holds the original state
q[2] —
you will see it degrade into uniform random, because without the classical bits to guide him, Bob's end
is just noise. Add the corrections back and the distribution again matches the original state prepared by
ry(0.7, ...). This is a hands-on demonstration that the classical bits are indispensable.
References
- C. H. Bennett, G. Brassard, C. Crépeau, R. Jozsa, A. Peres, W. K. Wootters, "Teleporting an unknown quantum state via dual classical and Einstein-Podolsky-Rosen channels," Phys. Rev. Lett. 70, 1895-1899 (1993). doi:10.1103/PhysRevLett.70.1895
量子隐形传态
借助一对预先共享的纠缠比特和两个经典比特,把一个未知量子态从一处转移到另一处——既不复制它,也不超光速传递任何信息。
它解决的问题
Alice 手中有一个量子比特,处于某个未知态 |ψ⟩ = α|0⟩ + β|1⟩。她想把这个态交给远处的 Bob。直接"读出再重发"行不通:测量会破坏 |ψ⟩,单次测量也无法确定 α 与 β。直接"复制后寄送"同样行不通——不可克隆定理禁止精确复制一个未知量子态。隐形传态给出第三条路:把 |ψ⟩ 转移给 Bob,而无需 Alice 知道它、也无需在空间中搬运那个物理比特。
代价清单极为精简:
| 资源 | 数量 | 用途 |
|---|---|---|
| 预共享纠缠(Bell 对) | 1 对 | 建立 Alice 与 Bob 之间的量子关联通道 |
| 经典通信比特 | 2 个 | 告诉 Bob 该施加哪种修正 |
| 原始量子比特 | 1 个(被销毁) | 在过程中被测量,其态转移到 Bob 端 |
直觉 为何需要这两个比特
纠缠让 Alice 的测量与 Bob 的比特产生即时关联,但这种关联本身是随机的——Alice 的测量会以等概率把 Bob 的比特投影到 |ψ⟩ 的四个变体之一。Bob 并不知道落到了哪个,因此还需要 Alice 通过普通经典信道告诉他两个比特的测量结果。拿到这 2 个经典比特后,Bob 才知道该做哪种修正,把自己的比特拨回到精确的 |ψ⟩。
这也正是隐形传态不能超光速的原因:在经典比特到达之前,Bob 的约化态是最大混合态 I/2,不含关于 |ψ⟩ 的可用信息。经典比特只能以光速或更慢传播,整个协议因此严格遵守相对论。
为何成立 Bell 测量加条件修正
设待传态为 |ψ⟩ = α|0⟩ + β|1⟩,Alice 与 Bob 共享 Bell 态 (|00⟩ + |11⟩)/√2。Alice 对自己的两个比特(消息比特 + 她那半个 Bell 对)做一次 Bell 基测量。代数上,三比特联合态可重写为 Alice 两个测量结果与 Bob 比特状态的关联表:
| Alice 测得 (b0, b1) | Bob 的比特变为 | Bob 所需修正 |
|---|---|---|
| 0, 0 | α|0⟩ + β|1⟩ | 无(已是 |ψ⟩) |
| 0, 1 | α|1⟩ + β|0⟩ | X |
| 1, 0 | α|0⟩ − β|1⟩ | Z |
| 1, 1 | α|1⟩ − β|0⟩ | X 然后 Z |
四种结果各以 1/4 概率出现。无论哪一种,Bob 只要按 b1 决定是否施加 X、按 b0 决定是否施加 Z,就能精确还原 |ψ⟩。注意 Alice 的测量在过程中销毁了原始比特——这与不可克隆定理完全自洽:任一时刻 |ψ⟩ 都只存在一份。对 (1,1) 情形,X 与 Z 的施加顺序只差一个全局相位,因此不影响最终物理态。
核心机制
| 步骤 | 作用 |
|---|---|
| 制备 Bell 对 | h 接 CNOT 把 q1、q2 纠缠成 (|00⟩+|11⟩)/√2,作为量子通道。 |
| Bell 测量 | 对消息比特与 Alice 那半个 Bell 对做 CNOT 接 h,再测量,等价于在 Bell 基上读取。 |
| 经典前馈 | 把两个测量比特送给 Bob,由它们决定后续修正。 |
| 条件修正 | Bob 据测量结果施加 X 与/或 Z,把自己的比特拨正为 |ψ⟩。 |
|ψ⟩。同时,没有那 2 个经典比特,Bob 端只是随机噪声,因此协议不传递任何超光速信息。
它能做什么 又不能做什么
- 它转移态,不转移物质或能量。被"传送"的是量子信息(α 与 β),不是任何粒子。
- 它需要一条经典信道。少了那 2 个经典比特,协议无法完成——这正是它不违反相对论的根本所在。
- 它消耗纠缠。每传一个量子比特就用掉一对 Bell 纠缠;要传更多,就要预先分发更多纠缠对。
- 它是量子网络的基础原语。同一套机制支撑着纠缠交换、量子中继器,以及分布式量子计算中模块之间的态搬运。
协议逐步拆解
- 制备待传态
|ψ⟩(代码中用ry(0.7, q[0])造一个示例态)。 - 用
h接CNOT把 q1、q2 纠缠成 Bell 对。 - 对 q0、q1 做
CNOT接h,再测量——即一次 Bell 基测量,得到 b0、b1。 - 把 b0、b1 经经典信道送给 Bob。
- Bob 按规则施加修正:b1=1 则
X,b0=1 则Z。 - q2 此刻精确持有原始的
|ψ⟩。
对照代码理解
请对照上文原理来读:ry(0.7, q[0]) 造出待传态;h(q[1]) 接 x.ctrl(q[1], q[2]) 制备 Bell 对;x.ctrl(q[0], q[1]) 接 h(q[0]) 把 Bell 测量旋转到计算基;mz 得到两个经典比特 b0、b1;随后的 if b1: x(q[2]) 与 if b0: z(q[2]) 正是表中的条件前馈修正——这是中途测量与条件门的典范用法。最终 mz(q[2]) 读出已还原的 |ψ⟩。
import qalgora
@qalgora.kernel
def teleport():
q = qalgora.qvector(3) # q0 = message, q1/q2 = Bell pair
ry(0.7, q[0]) # prepare some state to send
h(q[1])
x.ctrl(q[1], q[2]) # entangle q1,q2
x.ctrl(q[0], q[1])
h(q[0])
b0 = mz(q[0])
b1 = mz(q[1])
if b1: x(q[2]) # feed-forward corrections
if b0: z(q[2])
mz(q[2]) # q2 now holds the original state
q[2] 的测量分布——你会看到结果退化成均匀随机,因为少了经典比特的引导,Bob 端只是噪声。把修正加回去,分布便重新与原始 ry(0.7, ...) 制备的态一致。这直观演示了"经典比特不可或缺"。
参考文献
- C. H. Bennett, G. Brassard, C. Crépeau, R. Jozsa, A. Peres, W. K. Wootters, "Teleporting an unknown quantum state via dual classical and Einstein-Podolsky-Rosen channels," Phys. Rev. Lett. 70, 1895-1899 (1993). doi:10.1103/PhysRevLett.70.1895