Quantum error correction is essential for large-scale quantum systems that are prone to decoherence: interaction of the quantum system with the surrounding environment leads to a loss of quantum information, which hinders the development of scalable universal quantum computing. Correcting errors in the qubits poses special challenges.
1
First, a quantum bit is not only subject to bit flip errors (a 0 turning into a 1 or the other way around), but can suffer gradual errors.
2
Second, according to the no-cloning theorem, it is impossible to make perfect copies of qubit state.
3
Lastly, measuring a qubit in an attempt to discover errors immediately destroys the qubit state.
All these obstacles are beautifully overcome through quantum error correction.
In a quantum error correcting code, quantum information is distributed among many qubits, so that the dominant noise processes affect this information in a reversible manner. This means that there exists an error reversal procedure by which one can detect and correct the errors. By encoding a logical quantum bit in multiple physical qubits it becomes possible to detect and correct errors so that the quantum system becomes more stable with increasing size.
The choice of how to represent the quantum information as entangled states of many elementary qubits is made through the choice of quantum error correcting code. The most viable class of codes for 2D solid-state hardware are surface codes. Such codes use a 2D array of elementary data qubits which stores the quantum information. In addition ancilla or helper qubits are placed near the data qubits to collect information about errors. In one quantum error correction cycle ancilla qubits are coupled to the data qubits and pick up information about the data qubits in the form of parity checks.
Errors due to decoherence or faulty gates affect the values of these parity checks, thus allowing errors to be detected and corrected. Classical feedback electronics analyzes the parity check signals and issue all corrective actions. The smallest circuits for demonstration of surface coding require 13 or 17 qubits.