Nature  Insight  Review
Roads towards faulttolerant universal quantum computation
 Earl T. Campbell^{1}^{, }
 Barbara M. Terhal^{2, 3}^{, }
 Christophe Vuillot^{2}^{, }
 Journal name:
 Nature
 Volume:
 549,
 Pages:
 172–179
 Date published:
 DOI:
 doi:10.1038/nature23460
 Received
 Accepted
 Published online
Abstract
A practical quantum computer must not merely store information, but also process it. To prevent errors introduced by noise from multiplying and spreading, a faulttolerant computational architecture is required. Current experiments are taking the first steps toward noiseresilient logical qubits. But to convert these quantum devices from memories to processors, it is necessary to specify how a universal set of gates is performed on them. The leading proposals for doing so, such as magicstate distillation and colourcode techniques, have high resource demands. Alternative schemes, such as those that use highdimensional quantum codes in a modular architecture, have potential benefits, but need to be explored further.
Subject terms:
At a glance
Figures
Videos
The next decade will probably herald controllable quantum systems with 30 or more physical qubits on various quantum technology platforms, such as iontraps^{1, 2} or superconducting qubits^{3}. It may be difficult to simulate such partially coherent, dynamically driven, manybody systems on a classical computer, because the elementary twoqubit entangling gate time can be as much as a 1,000 times faster than the singlequbit dephasing (T_{2}) and relaxation (T_{1}) times. On the other hand, a system in which one out of 1,000 components fails is unlikely to perform well in executing large quantum algorithms designed for faultfree components. We must either figure out which computational tasks a noisy manybody quantum system can perform well or use partially coherent qubits as the elementary constituents of more robust logical qubits through quantum error correction. The choice of quantum error correction architecture determines all operations at the physical hardware level. It constrains the compilation from quantum software and quantum algorithms to actions on elementary qubits in hardware. For superconducting qubits, efforts to build a first logical qubit using the surface code are underway^{4, 5, 6, 7}. Making such a small logical qubit can be viewed as a first rest stop along a steep and long road to robust quantum computing.
Quantum error correction works by making quantum information highly redundant so that errors that affect only a few degrees of freedom become correctable^{8}. Quantum error correction can preserve quantum information, but a fully faulttolerant architecture for computation must also specify how gates are performed on encoded or logical qubits. Rough requirements for a quantum computing architecture can be formulated to minimize experimental complexity. First, the architecture should have a high noise threshold, providing logical qubits that have a lower logical error probability per logical gate than do their physical constituent qubits. Second, it should enable the implementation of a universal set of logical gates. Third, it should achieve these goals with low spatial (number of physical qubits per logical qubit) and temporal (time duration of logical gate versus physical gate) overhead. Fourth, it should be possible to process error information sufficiently quickly, keeping up with the quantum computation. Last, the code would ideally be a lowdensity parity check (LDPC) code. This final requirement means that the number of qubits involved in each parity check (the paritycheck weight) is at most s and each qubit participates in at most l parity checks (the qubit degree is at most l), where l and s are small integers. The paritycheck operators are the crucial elements of stabilizer (quantum) error correction: each individual parity check has an eigenspace corresponding to a measurement outcome of +1 and the code space is the intersection of all of these eigenspaces. If a paritycheck operator is measured and gives an outcome other than +1, it signals an error. Combining the information of different parity checks enables a decision to be made on a correction. The subclass of LDPC codes that are also topological codes in two or threedimensional (2D or 3D) Euclidean space are strongly preferred for solidstate qubits. Here we compare the leading proposals for promoting a quantum memory to a quantum processor. We compare magicstate distillation, colourcode techniques and other ideas, paying attention to relative resource demands. We discuss what is computationally impossible using lowdimensional topological codes and outline the potential rewards of using highdimensional quantum (LDPC) codes in modular architectures. In Box 1 we present a glossary of technical terms that are important for understanding this discussion.
Box 1: Glossary
Universal gate set. A discrete set of gates is universal if the gates in the set can be arranged to make any unitary gate that is desired with arbitrary precision.
Gates. Examples of singlequbit gates are
and the three Pauli operators
An example of a twoqubit gate is a controlled NOT (CNOT) gate. The CNOT, Hadamard and S gates generate the group of Clifford gates. The nonClifford gate T together with the Hadamard and CNOT gates form a universal gate set.
Stabilizer quantum error correcting code and parity checks. A stabilizer code on n physical qubits is defined by a group of commuting nqubit Pauli operators such that the code space is the common +1 eigenspace (that is, the eigenspace corresponding to an eigenvalue of +1) of all of the elements in the group. We refer to the generators of the stabilizer group as paritycheck operators because they generalize the notion of classical parity checks. Because parity checks are Pauli operators, they have eigenvalues of either +1 or −1: errors are detected when a paritycheck measurement yields a value of −1.
A [[n, k, d]] quantum error correcting code. In this notation, n is the number of physical qubits, k is the number of encoded or logical qubits and d is the distance of the code. The distance is the minimum number of physical qubits that have to be acted on in order to change between logical states.
Lowdensity parity check (LDPC) codes. LDPC codes are families of codes that have a growing number of physical qubits while the parity checks act on a small, constant (nongrowing) number of physical qubits.
Code deformation. Code deformation is a faulttolerant technique that modifies the stabilizer code in which a system is encoded. It can be enacted by performing unitary transformations that transform the code space or by performing altered paritycheck measurements. A sequence of code deformations that starts and ends with the same code provides one way of realizing a logical gate.
Magic state. Magic states are quantum states that can be used as a resource for nontrivial gates. A nontrivial gate can be implemented using a magic state via a simple faulttolerant circuit, so that the burden of faulttolerance shifts to the production of magic states.
Distillation. Distillation is a method of taking several noisy (magic) states and processing them with a quantum circuit to produce a smaller number of lessnoisy (magic) states. Several rounds of distillation can be performed to enhance the quality of the distilled states. If the distillation process is based on the parity checks of a particular code, then we refer to this code as the distillation code.
Subsystem code and gauge fixing. A subsystem or gauge code is a stabilizer code that encodes several logical qubits, some of which do not encode information. The unused logical qubits can be in any state, and are called gauge qubits. The freedom provided by gauge qubits can add flexibility to a code; for example, logical gates on the used qubits can change the state of the gauge qubits in an arbitrary fashion. Gauge fixing is the act of measuring and setting the gauge qubits to a fixed state.
Concatenation. Concatenation is a technique for producing a code with a larger distance from two codes with smaller distances. It entails encoding the logical qubits of one code using the logical qubits of the other code, instead of using physical qubits.
Transversal logical gates
An important universal gate set is the Clifford + T set, with the singlequbit gate T = diag(1, e^{iπ/4}). The Clifford gates are generated by the Hadamard (H), controlled NOT (CNOT) and S = diag(1, e^{iπ/2}) gates. A quantum circuit comprising only Clifford gates is not universal and confers no quantum computational advantage because it can be classically simulated by the Gottesman–Knill theorem^{9, 10}. Faulttolerant gate constructions are therefore necessary for both Clifford gates and T gates. Various stabilizer codes can provide transversal gate constructions for various Clifford gates; for example, for a qubit encoded in Steane’s sevenqubit code (Box 2), the logical Hadamard gate is implemented by applying a Hadamard gate on each of the seven physical qubits (Fig. 1a). This construction is advantageous because it takes the same time as an elementary Hadamard gate and the transversal, or blockwise, character of the logical gate ensures that errors do not spread between qubits of the code. Thus, for a single block of code, a transversal logical gate is one that is realized as a product of singlequbit unitary gates. A transversal logical gate between multiple blocks may use nonproduct unitary gates provided that these interactions are only between the different blocks. The S gate and the CNOT gate are similarly transversal for the Steane code, but the T gate is not. A logical T gate can be designed using a sequence of single and twoqubit gates; however, the presence of twoqubit gates in such a Tgate construction will entirely negate the benefits of using a logical qubit. A sequence of twoqubit gates can spread correctable singlequbit errors to uncorrectable multiqubit errors, making the error probability of the logical qubit higher than that of a single constituent qubit (Fig. 1b).
Box 2: Steane code
Andrew Steane’s sevenqubit code ([[7, 1, 3]]) is the smallest example of a 2D colour code that encodes a single logical qubit (k = 1). The code is defined as the +1 eigenspace of the three sets of commuting X parity checks ( , and ) and three sets of commuting Z parity checks ( , and ); here ‘r’, ‘g’ and ‘b’ refer to red, blue and green, as per the colouring in the figure. These parity checks act on the seven qubits located at the vertices of the lattice of the Steane code. Quantum error correction proceeds by nondestructively measuring these parity checks using ancilla qubits. If a phaseflip (Z) or bitflip (X) error occurs on any of the seven qubits, then some of the paritycheck values will be −1. For example, a bit flip on the first qubit will result in the measured eigenvalue of becoming −1. We can verify that the measured paritycheck eigenvalues provide conclusive information about which of the possible singlequbit errors has occurred. The X operator of the logical qubit can be chosen as and the Z operator is , both of which can be reduced to products of three Pauli operators by multiplication with check operators. The code distance is thus d = 3. The symmetry between the X and Z checks ensures that the H and S gates are implemented transversally (Fig. 1a). Seven CNOT gates between two blocks of Steane code realize the logical CNOT gate, as verified by its action on the logical operators and the stabilizer group that is generated by the paritycheck operators. It has been shown^{25} that a faulttolerant controlledS gate can be implemented between two Steane blocks by applying seven rounds, each with seven blockwise controlledS gates and each followed by Xerror correction. This implementation realizes a faulttolerant universal gate set for this small code. The Steane code has been implemented in iontrap qubits^{79}.
Transversal logical gates are the simplest example of faulttolerant logical gates, meaning logical gates that do not convert correctable errors into uncorrectable ones. However, it has been proved^{11, 12} that it is not possible for a nontrivial code to have transversal implementations of all of the gates necessary for universality, demonstrating the need for other constructions. Other faulttolerant constructions, such as a faulttolerant logical T gate for the Steane code, do exist, but they correspond to larger, more complicated and therefore more costly circuits. What this shows is the following. For unencoded qubits, when singlequbit gates result from resonant driving fields, which rotate the qubit vector around its Bloch sphere, a T gate is similar in complexity to an S or H gate. But for encoded qubits the complexity and quality of, say, a T versus an H gate essentially depends on the choice of code.
Surface code
A promising architecture uses the surface code. The surface code was first put forward as a topological quantum memory^{13}. An attractive feature of the surface code is that it has a high noise threshold^{14, 15, 16} of 0.6%–1% and requires only a 2D qubit connectivity with both qubit degree and parity check weight equal to 4. One logical qubit comprises d^{2} physical qubits (plus d^{2} − 1 ancilla qubits for paritycheck measurements) for a code distance d (Fig. 2). Besides this encoding, there are at least two other ways of defining logical qubits in the surface code. A logical qubit can comprise two holes in an extended surface code sheet^{17}, or a logical qubit could be represented by two pairs of lattice defects or twists^{18, 19}. The logical error probability per round of paritycheck measurements P_{L} is determined by the code distance d; that is, P_{L} ∝ (p/p_{c})^{d/2}, where p_{c} is the noise threshold of the surface code and p is the error probability at the hardware level. Numerical studies^{16} estimate that, assuming a depolarizing error probability of p < 10^{−3} per elementary gate, a logical qubit needs to consist of between 1,000 and 10,000 physical qubits for P_{L} < 10^{−15}. Building a large logical qubit with such a low error rate could be a second rest stop along the road to robust quantum computing.
The surface code architecture handles the faulttolerant implementation of gates in several ways. One faulttolerant method is code deformation—a versatile technique that can be used to execute logical gates in a faulttolerant manner, which goes beyond the transversal execution of gates. In code deformation, the code is altered by changing which paritycheck measurements are done where. A logical CNOT gate can be obtained with the encoding shown in Fig. 2 through a deformation technique called lattice code surgery^{20} (Fig. 2b, c). The encoding of Fig. 2a can also be deformed to a twistdefect encoding in which the four corners of the lattice correspond to four defects^{21}. Braiding of the four twist defects through the bulk of the lattice then generates the singlequbit S and H gates^{21}. Hence, all Clifford gates can be implemented in situ on 2D surface code sheets. Another common approach to logical S gates is shown in Fig. 3b and uses state injection of a Y〉 ∝ 0〉 + i1〉 state, which is an inexpensive resource as it can be used many times^{22, 23}.
Demonstrating Clifford logic by code deformation might be a third rest stop along the road to universality. But to achieve universality, Clifford gates must be complemented with a nonClifford gate. An appealing route toward universality is to augment code deformation methods with magicstate distillation for nonClifford gates. We now discuss this route and some alternative schemes.
Toward universality
The necessity of finding an effective means of implementing a universal gate set has been evident from the beginnings of the field. Various schemes have been developed, each with drawbacks and advantages in terms of overhead, threshold and complexity.
First ideas
One useful tool is the simple circuit (Fig. 3a), in which we replace executing the T gate by preparing the ancilla state A〉 = TH0〉, called a T magic state. The circuit can be executed at the logical level, at which the qubit and the ancilla are encoded.
Peter Shor provided the first construction^{24} for preparing a faulttolerant Toffoli magic state, which can be used to execute a Toffoli gate (also called a controlledcontrolledNOT gate). A similar construction^{25, 26} was proposed for preparing a faulttolerant T magic state. In these constructions we use the fact that the logical magic state is an eigenstate of a logical Clifford gate, which is assumed to be transversal for the code. Ancillary cat states are used to project onto this eigenstate in a faulttolerant manner (Fig. 3c). This approach does not scale favourably for (topological) codes with a growing number n of physical qubits: the number of errors that can flip the outcome p in Fig. 3c will increase with n, thus making p completely unreliable for large n.
Magicstate distillation
The idea of magicstate distillation^{27} is to accept a preparation procedure that provides noisy magic states, and then to filter the many noisy magic states into fewer, yet better quality states. Efficient protocols for magicstate distillation are often designed using an errorcorrecting code with a transversal nonClifford gate, typically a T gate. Therefore, there are a pair of complementary codes at play: the base code that provides a robust memory and faulttolerant Clifford gates; and the distillation code with a transversal T gate that is used during magicstate distillation. An example of such a base code is the surface code. The [[15, 1, 3]] quantum Reed–Muller code has been shown^{25} to have a transversal T gate, and the use of this code as a distillation code for magicstate distillation was proposed by Bravyi and Kitaev^{27}. In addition, the [[15, 1, 3]] code is now recognized as the smallest member of the family of 3D colour codes. In Fig. 4 we outline one variant of magicstate distillation. Each group of qubits (small open circles) represents one logical qubit encoded in the base code (large blue circles); the distillation code is represented by a yellow grouping of a few such logical qubits.
One figure of merit is the number of noisy magic states that are consumed per single T gate. Advances in distillation codes have improved the efficiency by this metric (Box 3). However, the number of physical qubits involved (space cost) and protocol duration (time cost) are more realistic metrics, although they depend on the choice of base code. When optimizing full space–time costs, a useful trick is to increase the distance of the base code with successive distillation rounds (see Fig. 4e). Using this trick in conjunction with the surface code, resource overheads become dominated by the cost of the surface code in the final distillation round^{16, 17, 28, 29}. This results in a space–time cost for the T gate that is only a constant multiple of a surface code overhead—an O(d^{2}) spatial cost and an O(d) time cost. More precisely, the space–time cost of a T gate that is realized in a surface code of distance d is C_{T}d^{3}, with C_{T} ≅ 160–310 when using Bravyi–Haah codes^{16, 28, 29}. For Clifford gates, the overhead per logical gate is also O(d^{3}), but the constant prefactor is close to one. Using magicstate distillation protocols with even higher yields (see Box 3) could reduce the C_{T} factor further, with the Bravyi–Haah codes already shown^{28} to have space–time costs that are three times lower than those of the [[15, 1, 3]] code.
Box 3: Highyield magicstate distillation
The yield is the average number of distilled magic states per input noisy magic state. An [[n_{2}, k_{2}, d_{2}]] distillation code, used for a sufficient number of rounds to achieve a target logical error probability ε_{out} , has an asymptotic yield of , where . Therefore, lower values of γ indicate more efficient distillation protocols. More sophisticated protocols (see table) can reduce the scaling factor γ, with γ = 1 conjectured^{74} to be optimal.
Obtaining a faulttolerant logical T gate achieves only part of the overall goal, because Clifford + T gates are then used to synthesize other logical gates that are needed in quantum algorithms^{30, 31, 32, 33}. A more efficient route to this overall goal could be to distil the magic states that provide the most frequently required logic gates directly. Magicstate distillation has been demonstrated for smallerangle Z rotations^{34, 35, 36}, the Toffoli gate^{37, 38} and a general class of multiqubit circuits^{39}.
Given that magicstate distillation takes up space and time, it requires an allocation of resources and communication infrastructure (in the form of logical roads) to these resources inside the 2D surface code architecture. Clifford gates in such an architecture could be implemented in situ on a ‘Clifford substrate’ of 2D surface code sheets. Throughout this 2D array of sheets, areas are reserved for magicstate distillation ‘factories’ for nonClifford gates. The optimal spatial density of these factories depends on the typical quantum algorithmic use (such as frequency and parallelism) of the nonClifford gates. Clearly, any design of such a quantum computer will require a huge effort in integrated quantum circuit design and optimization, a quantum analogue to VLSI (verylargescale integration) design. This effort is barely underway^{40}.
Colour codes
The [[7, 1, 3]] (see Box 2) and [[15, 1, 3]] (see Fig. 5a) codes are the smallest members of a family of 2D and 3D, respectively, topological codes called colour codes^{41, 42, 43}. An example of a larger 2D colour code is shown in Fig. 5b. The larger members of the family retain the transversality properties of their respective smallest instances. Therefore, the 2D colour codes have transversal Clifford gates^{44, 45, 46}. The 3D colour codes can have a transversal nonClifford gate^{42, 47}, such as a T gate in the tetrahedral 3D colour code. Lattice code surgery^{48} can again be used to perform CNOT gates locally. Colour codes can also be extended to higher dimensions (see Box 4), with transversality properties related to the dimensionality.
Box 4: Arbitrarydimension colour codes
The general construction of Ddimensional gauge or stabilizer colour codes is based on a Ddimensional simplicial complex with vertices that are (D + 1)colourable (adjacent vertices have different colours). We associate qubits with Dsimplexes and X and Z parity checks with x and z simplexes, respectively, obeying x + z ≤ D − 2. This inequality and the colourability property ensure the commutation of the checks, leading to a code family^{45, 46}. A common boundary configuration for these codes is obtained by tiling the inside of a large Dsimplex, respecting colourability but omitting elements of the larger Dsimplex as possible checks. The construction of a 3D colour code is shown in Supplementary Video 1. These colour codes encode one logical qubit, and we refer to them as simplicial colour codes.
In two dimensions, qubits are located on triangles and the only choice is x = z = 0. This implies that an X and a Z parity check is associated with each vertex, leading to a transversal H gate. The simplicial (or triangular) version also has a transversal S gate. The common representation of these codes (Fig. 5) is obtained by considering the dual lattice, where qubits are associated with the vertices and checks are associated with the faces of the lattice.
For dimensions higher than two, it is possible to choose x + z < D − 2. In this case, the code space contains gauge qubits, the X and Z gauge checks of which are given respectively by (D − 2 − z) and (D − 2 − x)simplexes. Remarkably, the gauge checks redundantly represent the information about the stabilizer checks, giving rise to singleshot error correction (see section ‘Singleshot error correction’).
In three dimensions, qubits are located on tetrahedra and there are three choices for (x, z). Choosing (x, z) = (0, 0) yields a 3D gauge colour code^{46}. This code has an X and a Z stabilizer check for each vertex, leading to a transversal Hadamard H gate, and gauge checks associated with edges. Another option is the 3D colour family with (x, z) = (0, 1), in which the X checks are associated with vertices and the Z checks with edges. The simplicial (or tetrahedral) version of this 3D colour code has a transversal T gate^{51}; the smallest example ([[15, 1, 3]]) is shown in Fig. 5a. The third option, (x, z) = (1, 0), is trivially equivalent to the (x, z) = (0, 1) codes.
The 3D colour code does not have the symmetry between X and Z parity checks, and so lacks a transversal H gate. The desire to overcome this limitation caused a surge of interest in 3D colour codes. One idea involves switching between different (3D colour) codes via the concept of gauge fixing^{46, 49}. Gauge fixing is a general technique for switching between two codes and combining the features of both codes: in one code the state of additional logical ‘gauge’ qubits, which are not directly used to encode information (and hence correspond to gauge degrees of freedom), is allowed to vary; in the other code the state of these gauge qubits is fixed by paritycheck measurements. By using gauge fixing it is possible to use the transversal T gate of the 3D colour code, in which the gauge qubit states are fixed, while performing only error correction and the H gate with the 3D gauge colour code^{50} (which has free gauge qubits). Advantages of using the 3D gauge colour code over the 3D colour code (see Table 1) are the lower paritycheck weights and the possibility of singleshot error correction^{50} (see section ‘Singleshot error correction’). Transversal CNOT gates or code deformation techniques allow the T gate to be injected from a 3D colour code into a 2D colour code^{51}. In a 2D colour code architecture augmented with 3D gauge colour code Tgate stations, logical qubits would be shuttled to Tgate stations when a T gate needs to be implemented. Architecturally, this would be similar to a 2D surface code with 2D nonClifford processing occurring at dedicated locations.
We summarize some of the known thresholds and properties of codes in Table 1. The 3D colour and gauge colour codes have a cubic spatial overhead (O(d^{3})) for a given distance d, whereas this overhead is O(d^{2}) for 2D codes. The complexity of decoding 3D colour and 3D and 4D surface codes poses new challenges and is not fully understood, whereas good algorithms exist for 2D surface code decoding. The best thresholds for 2D colour codes are lower than those for the surface code, possibly owing to the fact that the parity checks have higher weight. However, 2D colour code decoding is also more computationally complex than surface code decoding^{52}. The best threshold numbers for circuitbased noise in which each gate undergoes depolarizing noise with probability p are 0.3% for a triangular colour code^{53} and 0.41% for a halfcolour or [[4, 2, 2]] concatenated toric code^{54} (compare with 0.6%–1% for the surface code).
Alternative code constructions
An alternative to topological error correction is concatenated coding, in which the physical qubits in a code block are repeatedly replaced by logical qubits. Extensive work^{55} has been done on comparing the overheads and noise thresholds of various schemes. For a concatenated [[23, 1, 7]] Golay code (with a transversal Clifford set), it has been shown^{56} that the noise threshold is at least 0.13%, and so worse than that for the surface code (0.6%–1.0%). Any concatenated scheme with transversal Clifford gates could be combined with magicstate distillation. The performance of such a combined scheme, relative to the surface code, would largely rely on how much spatial overhead is introduced by a logical Clifford gate.
Another idea for concatenated coding is to combine the transversality of different gates in two different codes^{57} and get rid of magicstate distillation. For example, we could choose [[7, 1, 3]] as the top code, by replacing each physical qubit with seven qubits, and then take [[15, 1, 3]] as the bottom code, by replacing each of the seven qubits with a block of fifteen. The resulting code is the [[105, 1, 9]] code. Owing to the nontransversality of both the H gate at the bottom level and the T gate at the top level, the total logical error probability of these gates will suffer, but singlequbit errors can still be corrected in this construction. The lower bound^{58} for the asymptotic noise threshold of this construction was 0.28%.
In Box 2 we state that the Steane code has a faulttolerant controlledS gate, the execution of which can be broken down into rounds or pieces^{59}. Each piece contains Xerror correction to maintain faulttolerance, but holds off on Zerror correction until the entire gate is implemented. This idea does not easily scale to topological codes, but could be investigated for concatenated codes. It obviates the need for magicstate distillation, but probably at the expense of a lower noise threshold.
Any scheme based on the concatenation of small codes can be converted into a coding scheme that uses only nearestneighbour qubit couplings in one or two dimensions, with some additional overhead for gates that move qubits. If a large 3D colour code is implemented in purely 2D hardware, then it requires nonplanar connections, the length of which grows with the size of the colour code. Recent work^{60, 61, 62} has demonstrated ways to systematically construct codes that have a transversal T gate and to convert these codes to socalled doubled colour or 2D gauge colour codes. However, by making all of the connections local on a 2D lattice, the resulting 2D codes are nontopological. This means that the code performance is maximal for a certain code size and declines for larger sizes. The performance of doubled colour or 2D gauge colour codes in producing a lownoise logical T ancilla (which can then be transferred to the 2D Clifford substrate) has not yet been compared with that of magicstate distillation or using 3D Tgate stations.
Comparison of resource overheads
The combination of magicstate distillation and the surface code is considered a competitive scheme because it combines a highnoise threshold, a 2D architecture and a T gate that is only a few hundred times as costly as Clifford gates in terms of space–time overhead. Alternative schemes could be obtained by replacing magicstate distillation with 3D Tgate stations and/or the surface code substrate with a colour code substrate. The appeal of these schemes depends on the physical error probability and the 2D and 3D colour code thresholds. The use of the 3D gauge colour code for a T gate requires O(d^{3}) qubits, but singleshot error correction makes the space–time cost^{50} also O(d^{3}).
An analysis^{58} of the concatenation scheme discussed in section ‘Alternative code constructions’ shows that the spatial overhead is still not favourable when compared to using surface codes with magicstate distillation. This analysis includes the consideration of a smaller, more efficient, 49qubit code^{63}. To achieve the target error probability of P_{L} < 10^{−15} starting with a physical error probability of the order of 10^{−5}, ref. 58 estimates that the concatenated scheme needs to use at least 10^{7} physical qubits for a logical qubit (versus 10^{4} for surface codes with magicstate distillation).
The blessing of dimensionality
Investigations of the limitations of lowdimensional topological stabilizer codes, which aimed to improve our understanding of their potential, also uncovered new connections and surprises.
Transversality and dimensionality
Bravyi and Koenig^{64} proved that there is a deep connection between transversality and dimensionality of a topological stabilizer code. Their theorem states that for Ddimensional topological stabilizer codes it is impossible to implement logical gates via a transversal or constantdepth circuit unless they are in the socalled Dth level of the Clifford hierarchy C_{D}. Here C_{1} is the group of nqubit Pauli operators, C_{2} is the Clifford group and C_{3} contains gates such as T and Toffoli gates. More generally, C_{D} includes smallrotation gates such as diag(1, exp(2πi/2^{D})). Although the Clifford + T gate set is universal, it can be shown that using gates in higher levels of the Clifford hierarchy reduces the time overhead associated with gate synthesis. The gates that can be realized with Ddimensional colour and surface codes saturate the Bravyi–Koenig theorem^{45, 46, 47}, meaning that we know how to implement every gate that is not ruled out as impossible using these codes. It does not prove that there are no good 2D alternatives to magicstate distillation. However, it does suggest that any alternative might come at the price of a lower threshold for universal quantum logic because such alternatives require a nontrivial faulttolerant gate construction.
Tradeoff bounds
When designing a storage medium—a quantum hard drive—the architectural requirement for a faulttolerant universal gate set can be dropped as long as quantum information can be read and written to the storage. Ideally, the storage code would be a [[n, k, d]] code with high encoding rate k/n and large distance d that scales as a function of n. It has been shown^{65} that 2D Euclidean topological stabilizer codes are constrained by kd^{2} ≤ cn for some constant c: the surface code clearly achieves the upper limit of this bound (kd^{2} = cn). The adjective ‘Euclidean’ means that the qubits can be placed on a regular 2D grid with each qubit connecting to O(1) neighbours. Consequently, the rate of these codes vanishes with increasing distance, leading to a substantial overhead as a storage code. Hyperbolic surface codes^{66} have a less restrictive bound of^{67} kd^{2} ≤ c(logk)^{2}n. One simple hyperbolic surface code consists of qubits placed on the edges of square tiles, with five tiles meeting at a vertex. Such {5, 4} hyperbolic surface codes have an asymptotic (for large d) encoding rate of k/n = 1/10 and logarithmically increasing distance^{66}.
Singleshot error correction
2D topological codes have an intrinsic temporal overhead in executing code deformation in a faulttolerant manner, making gates that rely on this technique take O(d) time. The reason for this intrinsic overhead is that for code deformation paritycheck measurements need to be repeated O(d) times to be sufficiently reliable. The absence of redundancy in the paritycheck measurements is an immediate consequence of the lack of selfcorrection of 2D topological stabilizer codes^{68}. A 4D hypercubic lattice version of the surface code^{13} allows for singleshot error correction instead. Codes that have singleshot error correction also have potentially higher noise thresholds and faster logical gates. Interestingly, it has been shown that singleshot error correction is also possible for 3D gauge colour codes^{50}. For these codes the value of the stabilizer parity checks is acquired by measuring noncommuting lowerweight gaugequbit checks, the products of which determine the stabilizer parity checks. In the 3D gauge colour code, the gaugequbit checks hold redundant information about the stabilizer parity checks, enabling robust measurements of the stabilizer parity checks in O(1) time. This result demonstrates the power of using subsystem codes with gauge degrees of freedom, because we do not expect to have singleshot error correction for 3D stabilizer codes.
Outlook
We have discussed several ideas for adding universal computing power to a quantum device. Currently, using surface codes with magicstate distillation is the most practical solution. We have seen that there is a wealth of fascinating alternatives, but they have yet to demonstrate a comparably high threshold or substantial improvements in resource scaling. An interesting direction for future devices is to move away from the constraints of lowdimensional topological codes.
More general LDPC codes could be considered, such as the 4D surface code in Table 1. Topological quantum LDPC codes can in principle be constructed from tilings of any Ddimensional manifold. There are also nontopological families of LDPC codes, such as those based on expander graphs^{69, 70}.
Such approaches require hardware that supports longrange connectivity. Fortunately, there are experimental platforms that support longrange connectivity, such as iontrap qubits and nuclear spins coupled to nitrogen–vacancy centres in diamond. We expect such architectures to work with modular components with photonic interconnects^{71, 72}, which would enable more flexible and longrange connectivity.
The advantages of using a higherdimensional LDPC code or more general quantum LDPC codes for computation or storage in a coding architecture remain to be fully explored; in particular, efficient decoding software needs to be developed. Independent of whether these codes can be used in a coding architecture, we expect that the study and development of quantum LDPC codes will lead to new insights into robust macroscopic quantum information processing, and the roads that may lead us there.
References
 Häffner, H., Roos, C. F. & Blatt, R. Quantum computing with trapped ions. Phys. Rep. 469, 155–203 (2008)
 Ballance, C. J., Harty, T. P., Linke, N. M., Sepiol, M. A. & Lucas, D. M. Highfidelity quantum logic gates using trappedion hyperfine qubits. Phys. Rev. Lett. 117, 060504 (2016)
 Devoret, M. H. & Schoelkopf, R. J. Superconducting circuits for quantum information: an outlook. Science 339, 1169–1174 (2013)
 Córcoles, A. D. et al. Demonstration of a quantum error detection code using a square lattice of four superconducting qubits. Nat. Commun. 6, 6979 (2015)
 Gambetta, J. M., Chow, J. M. & Steffen M. Building logical qubits in a superconducting quantum computing system. Quantum Inf. 3, 2 (2017)
 Kelly, J. et al. State preservation by repetitive error detection in a superconducting quantum circuit. Nature 519, 66–69 (2015)
 Ristè, D. et al. Detecting bitflip errors in a logical qubit using stabilizer measurements. Nat. Commun. 6, 6983 (2015)
 Terhal, B. M. Quantum error correction for quantum memories. Rev. Mod. Phys. 87, 307–346 (2015)
 Gottesman, D. Stabilizer Codes and Quantum Error Correction. PhD thesis, Californian Institute of Technology (1997)
 Aaronson, S. & Gottesman, D. Improved simulation of stabilizer circuits. Phys. Rev. A 70, 052328 (2004)
 Chen, X., Chung, H., Cross, A. W., Zeng, B. & Chuang, I. L. Subsystem stabilizer codes cannot have a universal set of transversal gates for even one encoded qudit. Phys. Rev. A 78, 012353 (2008)
 Eastin, B. & Knill, E. Restrictions on transversal encoded quantum gate sets. Phys. Rev. Lett. 102, 110502 (2009)
 Dennis, E., Kitaev, A., Landahl, A. & Preskill, J. Topological quantum memory. J. Math. Phys. 43, 4452–4505 (2002). Seminal paper on using the surface code as a quantum memory
 Raussendorf, R. & Harrington, J. Faulttolerant quantum computation with high threshold in two dimensions. Phys. Rev. Lett. 98, 190504 (2007). Presented a planar 0.75%threshold surface code architecture that realizes universal logic by combining the topological execution of the CNOT gate and magicstate distillation
 Fowler, A. G., Stephens, A. M. & Groszkowski, P. Highthreshold universal quantum computation on the surface code. Phys. Rev. A 80, 052312 (2009)
 Fowler, A., Mariantoni, M., Martinis, J. M. & Cleland, A. N. Surface codes: towards practical largescale quantum computation. Phys. Rev. A 86, 032324 (2012)
 Raussendorf, R., Harrington, J. & Goyal, K. Topological faulttolerance in cluster state quantum computation. New J. Phys. 9, 199 (2007)
 Bombín, H. Topological order with a twist: Ising anyons from an Abelian model. Phys. Rev. Lett. 105, 030403 (2010)
 Hastings, M. B. & Geller, A. Reduced spacetime and time costs using dislocation codes and arbitrary ancillas. Quantum Inf. Comput. 15, 962–986 (2015)
 Horsman, C., Fowler, A. G. & Devitt, S. & Van Meter, R. Surface code quantum computing by lattice surgery. New J. Phys. 14, 123011 (2012)
 Brown, B. J., Laubscher, K., Kesselring, M. S. & Wootton, J. R. Poking holes and cutting corners to achieve Clifford gates with the surface code. Phys. Rev. X 7, 021029 (2017)
 Aliferis, P. Level Reduction and the Quantum Threshold Theorem. PhD thesis, California Institute of Technology (2007)
 Jones, N. C. et al. Layered architecture for quantum computing. Phys. Rev. X 2, 031007 (2012)
 Shor, P. W. Faulttolerant quantum computation. In 37th Annual Symposium on Foundations of Computer Science, FOCS ‘96 56–65 (IEEE, 1996). Presented theoretical schemes for realizing faulttolerant universal quantum computation for the first time, using quantum error correcting codes
 Knill, E., Laflamme, R. & Zurek, W. Threshold accuracy for quantum computation. Preprint at https://arxiv.org/abs/quantph/9610011 (1996)
 Knill, E., Laflamme, R. & Zurek, W. Resilient quantum computation. Science 279, 342–345 (1998)
 Bravyi, S. & Kitaev, A. Universal quantum computation with ideal Clifford gates and noisy ancillas. Phys. Rev. A 71, 022316 (2005). Introduced magicstate distillation as an efficient highthreshold way of getting from Clifford circuits to universality
 Fowler, A. G., Devitt, S. J. & Jones, C. Surface code implementation of block code state distillation. Sci. Rep. 3, 1939 (2013)
 O’Gorman, J. & Campbell, E. T. Quantum computation with realistic magic state factories. Phys. Rev. A 95, 032338 (2017)
 Kitaev, A. Yu., Shen, A. H. & Vyalyi, M. N. Classical and Quantum Computation (American Mathematical Society, 2002)
 Ross, N. J. & Selinger, P. Optimal ancillafree Clifford + T approximation of zrotations. Quantum Inf. Comput. 16, 901–953 (2016)
 Bocharov, A., Roetteler, M. & Svore, K. M. Efficient synthesis of probabilistic quantum circuits with fallback. Phys. Rev. A 91, 052317 (2015)
 Amy, M., Maslov, D., Mosca, M. & Roetteler, M. A meetinthemiddle algorithm for fast synthesis of depthoptimal quantum circuits. IEEE Trans. Comput. Aided Des. Integrated Circ. Syst. 32, 818–830 (2013)
 Cesare, C. Topological Code Architectures for Quantum Computation. PhD thesis, Univ. New Mexico (2014)
 DuclosCianci, G. & Poulin, D. Reducing the quantumcomputing overhead with complex gate distillation. Phys. Rev. A 91, 042315 (2015)
 Campbell, E. T. & O’Gorman, J. An efficient magic state approach to small angle rotations. Quant. Sci. Tech 1, 015007 (2016)
 Eastin, B. Distilling onequbit magic states into Toffoli states. Phys. Rev. A 87, 032321 (2013)
 Jones, C. Lowoverhead constructions for the faulttolerant Toffoli gate. Phys. Rev. A 87, 022328 (2013)
 Campbell, E. T. & Howard, M. Unified framework for magic state distillation and multiqubit gate synthesis with reduced resource cost. Phys. Rev. A 95, 022316 (2017)
 Paler, A., Devitt, S. J. & Fowler, A. G. Synthesis of arbitrary quantum circuits to topological assembly. Sci. Rep. 6, 30600 (2016)
 Bombín, H. & MartinDelgado, M. A. Topological quantum distillation. Phys. Rev. Lett. 97, 180501 (2006)
 Bombín, H. & MartinDelgado, M. A. Topological computation without braiding. Phys. Rev. Lett. 98, 160502 (2007). Introduced 3D colour codes with a transversal T gate
 Bombín, H. & MartinDelgado, M. A. Homological error correction: classical and quantum codes. J. Math. Phys. 48, 052105 (2007)
 Katzgraber, H. G., Bombin, H., Andrist, R. S. & MartinDelgado, M. A. Topological color codes on union jack lattices: a stable implementation of the whole clifford group. Phys. Rev. A 81, 012319 (2010)
 Kubica, A. & Beverland, M. E. Universal transversal gates with color codes: a simplified approach. Phys. Rev. A 91, 032330 (2015)
 Bombín, H. Gauge color codes: optimal transversal gates and gauge fixing in topological stabilizer codes. New J. Phys. 17, 083002 (2015)
 Kubica, A., Yoshida, B. & Pastawski, F. Unfolding the color code. New J. Phys. 17, 083026 (2015)
 Landahl, A. J. & RyanAnderson, C. Quantum Computing by ColorCode Lattice Surgery. Report SAND201415911J, https://arxiv.org/abs/1407.5103 (Sandia National Laboratories, 2014)
 Paetznick, A. & Reichardt, B. W. Universal faulttolerant quantum computation with only transversal gates and error correction. Phys. Rev. Lett. 111, 090505 (2013). Showed that a universal set of transversal gates can be realized using gauge fixing
 Bombín, H. Singleshot faulttolerant quantum error correction. Phys. Rev. X 5, 031043 (2015)
 Bombín, H. Dimensional jump in quantum error correction. New J. Phys. 18, 043038 (2016)
 Delfosse, N. Decoding color codes by projection onto surface codes. Phys. Rev. A 89, 012317 (2014)
 Beverland, M. Toward Realizable Quantum Computers. PhD thesis, California Institute of Technology (2016)
 Criger, B. & Terhal, B. M. Noise thresholds for the [[4, 2, 2]]concatenated toric code. Quantum Inf. Comput. 16, 1261–1281 (2016)
 Cross, A. W., DiVincenzo, D. P. & Terhal, B. M. A comparative code study for quantum fault tolerance. Quantum Inf. Comput. 9, 541–572 (2009)
 Paetznick, A. & Reichardt, B. W. Faulttolerant ancilla preparation and noise threshold lower bounds for the 23qubit Golay code. Quantum Inf. Comput. 12, 1034–1080 (2012)
 JochymO’Connor, T. & Laflamme, R. Using concatenated quantum codes for universal faulttolerant quantum gates. Phys. Rev. Lett. 112, 010505 (2014)
 Chamberland, C., JochymO’Connor, T. & Laflamme, R. Overhead analysis of universal concatenated quantum codes. Phys. Rev. A 95, 022313 (2017)
 Yoder, Th. J., Takagi, R. & Chuang, I. L. Universal faulttolerant gates on concatenated stabilizer codes. Phys. Rev. X 6, 031039 (2016)
 Bravyi, S. & Cross, A. Doubled color codes. Preprint at https://arxiv.org/abs/1509.03239 (2015)
 Jones, C., Brooks, P. & Harrington, J. Gauge color codes in two dimensions. Phys. Rev. A 93, 052332 (2016)
 JochymO’Connor, T. & Bartlett, S. D. Stacked codes: universal faulttolerant quantum computation in a twodimensional layout. Phys. Rev. A 93, 022323 (2016)
 Nikahd, E., Sedighi, M. & Zamani, M. S. Nonuniform code concatenation for universal faulttolerant quantum computing. Preprint at https://arxiv.org/abs/1605.07007 (2016)
 Bravyi, S. & Koenig, R. Classification of topologically protected gates for local stabilizer codes. Phys. Rev. Lett. 110, 170503 (2013). Proved that the available transversal gates are constrained by the dimension of a topological code
 Bravyi, S., Poulin, D. & Terhal, B. M. Tradeoffs for reliable quantum information storage in 2D systems. Phys. Rev. Lett. 104, 050503 (2010)
 Breuckmann, N. P. & Terhal, B. M. Constructions and noise threshold of hyperbolic surface codes. IEEE Trans. Inf. Theory 62, 3731–3744 (2016)
 Delfosse, N. Tradeoffs for reliable quantum information storage in surface codes and color codes. In Proc. IEEE International Symposium on Information Theory 917–921 (IEEE, 2013)
 Bravyi, S. & Terhal, B. M. A nogo theorem for a twodimensional selfcorrecting quantum memory based on stabilizer codes. New J. Phys. 11, 043029 (2009)
 Tillich, J.P. & Zémor, G. Quantum LDPC codes with positive rate and minimum distance proportional to the square root of the blocklength. IEEE Trans. Inf. Theory 60, 1193–1202 (2014)
 Freedman, M. H. & Hastings, M. B. Quantum systems on nonkhyperfinite complexes: a generalization of classical statistical mechanics on expander graphs. Quantum Inf. Comput. 14, 144–180 (2014)
 Monroe, C. et al. Largescale modular quantumcomputer architecture with atomic memory and photonic interconnects. Phys. Rev. A 89, 022317 (2014)
 Nickerson, N. H., Fitzsimons, J. F. & Benjamin, S. C. Freely scalable quantum technologies using cells of 5to50 qubits with very lossy and noisy photonic links. Phys. Rev. X 4, 041041 (2014)
 Meier, A. M., Eastin, B. & Knill, E. Magicstate distillation with the fourqubit code. Quantum Inf. Comput. 13, 195–209 (2013)
 Bravyi, S. & Haah, J. Magicstate distillation with low overhead. Phys. Rev. A 86, 052329 (2012)
 Jones, C. Multilevel distillation of magic states for quantum computing. Phys. Rev. A 87, 042305 (2013)
 Wang, C., Harrington, J. & Preskill, J. ConfinementHiggs transition in a disordered gauge theory and the accuracy threshold for quantum memory. Ann. Phys. 303, 31–58 (2003)
 Brown, B. J., Nickerson, N. H. & Browne, D. E. Faulttolerant error correction with the gauge color code. Nat. Commun. 7, 12302 (2016)
 Breuckmann, N. P., Duivenvoorden, K., Michels, D. & Terhal, B. M. Local decoders for the 2D and 4D toric code. Quantum Inf. Comput. 17, 181–208 (2017)
 Nigg, D. et al. Quantum computations on a topologically encoded qubit. Science 345, 302–305 (2014)
Acknowledgements
E.T.C. is supported by the EPSRC (EP/M024261/1). B.M.T. and C.V. acknowledge support from the EU through the ERC GRANT EQEC. This research was also supported in part by Perimeter Institute for Theoretical Physics. Research at Perimeter Institute is supported by the Government of Canada through Industry Canada and by the Province of Ontario through the Ministry of Economic Development and Innovation.
Author information
Affiliations

Department of Physics and Astronomy, University of Sheffield, Sheffield, UK
 Earl T. Campbell

JARA Institute for Quantum Information, RWTH Aachen University, 52056 Aachen, Germany
 Barbara M. Terhal &
 Christophe Vuillot

Forschungszentrum Juelich, D52425 Juelich, Germany
 Barbara M. Terhal
Contributions
E.T.C., B.M.T. and C.V. contributed equally to the planning, writing, researching and graphical work in this Review. C.V. made the movie on the 3D colour code.
Competing financial interests
The authors declare no competing financial interests.
Reviewer Information Nature thanks H. Bombín and the other anonymous reviewer(s) for their contribution to the peer review of this work.
Publisher's note: Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Author details
Earl T. Campbell
Search for this author in:
Barbara M. Terhal
Search for this author in:
Christophe Vuillot
Search for this author in:
Supplementary information
Video
 Video 1: Construction of a 3D colour code (43.44 MB, Download)
 A short video explaining what makes a tetrahedral colour code.
Additional data

Video 1: Construction of a 3D colour code