The Bacon-Shor Code
The Bacon-Shor code is a subsystem code on an n-by-n grid whose gauge operators are all weight two, making syndrome extraction unusually simple.
Construction
The Bacon-Shor code arranges n^2 qubits on an n-by-n square lattice. Its gauge group is generated by weight-two operators: XX on horizontally adjacent qubits and ZZ on vertically adjacent qubits. Products of these weight-two gauge operators along full rows and columns give the stabilizers, which are high weight, but the operators actually measured are only nearest-neighbor two-qubit terms.
Logical operators
The code encodes one logical qubit. Logical X is a product of X down any single column, logical Z is a product of Z along any single row. Because these can be slid to any row or column using gauge operators, the code has flexible logical representatives. For the n-by-n code the distance is n, correcting up to (n-1)/2 errors of each type.
- All directly measured operators are weight two, the smallest nontrivial checks possible.
- It descends from Shor's nine-qubit code, the 3-by-3 case.
- Gauge freedom removes the need to measure the high-weight stabilizers directly.
- It tolerates a geometrically local, nearest-neighbor layout.
A key practical property is that Bacon-Shor syndrome extraction is naturally fault tolerant for small distances without flag qubits: a single faulty two-qubit measurement produces a distinctive, correctable pattern. This simplicity made Bacon-Shor codes attractive for early demonstrations on ion-trap and superconducting hardware.
The limitation is scaling. The Bacon-Shor code does not have a threshold in the usual sense; its distance-to-size scaling and the growth of gauge-operator products mean that beyond modest distances its logical error rate stops improving. It is best understood as an excellent small code and a clear teaching example of subsystem structure rather than a candidate for large-scale fault tolerance.