Every controlled gate has a classical story: "apply the operation to the target if and only if the
control is ∣1⟩." Phase kickback is the quantum twist: when the target is an
eigenstate of the gate, the associated eigenvalue does not stay on the target — it travels back and
multiplies the control.
Eigenstates and eigenvalues
A unitary gate U has eigenstates ∣λ⟩ satisfying
U∣λ⟩=eiϕ∣λ⟩.
The gate leaves the state's shape unchanged and only multiplies it by a complex number of magnitude
For the Z gate (and therefore also for CZ), the eigenstates are ∣0⟩ and ∣1⟩
with eigenvalues +1 and −1 respectively:
Z∣0⟩=∣0⟩,Z∣1⟩=−∣1⟩.
The kickback mechanism
Consider a two-qubit system where the target qubit is prepared in an eigenstate ∣λ⟩
of U with eigenvalue eiϕ. Let the control start in an arbitrary superposition
α∣0⟩+β∣1⟩. The joint state before the controlled-U gate is
(α∣0⟩+β∣1⟩)∣λ⟩=α∣0⟩∣λ⟩+β∣1⟩∣λ⟩.
Applying the controlled-U gate acts U on the target only in the ∣1⟩ branch of the
control:
α∣0⟩∣λ⟩+β∣1⟩U∣λ⟩=α∣0⟩∣λ⟩+βeiϕ∣1⟩∣λ⟩.
Factor out ∣λ⟩ because the target state is the same in both branches:
=(α∣0⟩+βeiϕ∣1⟩)∣λ⟩.
The target is unchanged. The phase eiϕ has moved onto the control's ∣1⟩
amplitude — it has "kicked back." The control qubit now carries information about the gate's
eigenvalue even though it was the target that the gate acted on.
A concrete example: CZ with ∣+⟩ control and ∣1⟩ target
The CZ gate multiplies the ∣11⟩ component by −1 and leaves ∣00⟩, ∣01⟩,
∣10⟩ unchanged. Prepare the control in
∣+⟩=21(∣0⟩+∣1⟩) and the target in ∣1⟩:
∣+⟩∣1⟩=21(∣01⟩+∣11⟩).
After CZ, the ∣11⟩ component picks up a factor of −1:
CZ(∣+⟩∣1⟩)=21(∣01⟩−∣11⟩).
Factor the target qubit out:
=21(∣0⟩−∣1⟩)∣1⟩=∣−⟩∣1⟩.
The target is still ∣1⟩. The control, however, has flipped from ∣+⟩ to ∣−⟩
— a phase difference of π on the Bloch sphere's equator. The −1 eigenvalue of Z acting on
∣1⟩ has been transferred to the control qubit.
Try it
Put qubit 0 into ∣+⟩ with a Hadamard, put qubit 1 into ∣1⟩ with an X gate, then
apply CZ. The grader checks the full state vector, which should be
21(∣01⟩−∣11⟩) — equivalently ∣−⟩∣1⟩.
Run your code to see the quantum state.
After running, inspect the Amplitudes tab: the ∣01⟩ amplitude should be
≈+0.707 and the ∣11⟩ amplitude ≈−0.707, while ∣00⟩ and
∣10⟩ remain zero. That sign change on the control is phase kickback in action.
Sign in on the full site to ask questions and join the discussion.