Roads towards fault-tolerant universal quantum computation

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 fault-tolerant computational architecture is required. Current experiments are taking the first steps toward noise-resilient 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 magic-state distillation and colour-code techniques, have high resource demands. Alternative schemes, such as those that use high-dimensional quantum codes in a modular architecture, have potential benefits, but need to be explored further.

At a glance

Figures

  1. Transversal and non-transversal gates for the Steane code.
    Figure 1: Transversal and non-transversal gates for the Steane code.

    a, The encoded circuit for the Hadamard gate (HL) on Steane’s seven-qubit code is transversal. It entails applying the H gate on each of the seven physical qubits. b, The encoded circuit for the T gate (TL) on the same code is not transversal and not fault-tolerant. A single phase-flip (Z; red star) error can occur immediately after the T gate on the first qubit and propagates via the two CNOT gates to three phase-flip errors. These three phase-flip errors constitute the Z operator of the logical qubit (ZL).

  2. Lattice code surgery in the surface code.
    Figure 2: Lattice code surgery in the surface code.

    a, One logical qubit is encoded in a surface code sheet consisting of d2 physical qubits at the vertices of the lattice (d = 5 here). Black faces represent X parity checks and white faces represent Z parity checks on the qubits. b, A CNOT circuit is equivalent to performing non-destructive X⊗X and Z⊗Z measurements for the control and target qubits, respectively, with an ancillary qubit. Lattice code surgery provides a method for non-destructively measuring a logical Z⊗Z or X⊗X operator between two encoded qubits. MXX, MZZ and MZ represent these measurements and b, a and c their respective outcomes. Initially, the ancilla is in the state . c, Lattice code surgery between two surface code sheets realizes a logical Z⊗Z measurement. By measuring and merging the parity checks between two surface code sheets, we merge the two sheets into one. At the same time, we learn the value of the logical Z⊗Z operator because it is equal to the product of the newly measured (grey) faces. The two sheets can then be split again for further operations.

  3. Several circuit gadgets.
    Figure 3: Several circuit gadgets.

    a, Standard circuit implementing a T gate on an input state |ψ〉 by preparing a magic ancilla |A〉 = TH|0〉: after the CNOT gate, the measurement in the Z basis determines whether we must perform an additional S gate. b, Similar circuit for implementing an S gate by preparing the magic ancilla |Y〉 = SH|0〉. c, The circuit represents a fault-tolerant implementation of the projection of an encoded state |ψL〉 (in a base code) onto an eigenstate of a transversal logical Clifford gate , assuming that the Clifford gate C has eigenvalues of ±1. To use this circuit to prepare a T magic state, we take C = TXT  ∝ SX (where the dagger denotes the Hermitian conjugate), using a transversal logical S gate for the base code. Because a single error on the jth ancilla qubit can flip its measurement outcome mj, which would flip the global measurement outcome p, the circuit has to be repeated, with the overall outcome determined by which global measurement outcome occurs the most often.

  4. Magic-state distillation.
    Figure 4: Magic-state distillation.

    Physical qubits are protected against noise within a [[n1, 1, d1]] base code (subscripts distinguish the parameters of base and distillation codes), depicted here in blue. We can easily perform fault-tolerant Clifford gates in the base code, for example, transversally or with lattice code surgery. But we cannot straightforwardly perform Clifford gates or prepare high-fidelity magic states. In magic-state distillation, noisy magic states are input (a) and higher-fidelity magic states are output (d). At both input and output, the magic states are encoded within the base code. However, the protocol uses a distillation code (shown in yellow and assumed here to be an [[n2, 1, d2]] code) with a transversal T gate. During the protocol, qubits are encoded between input and output into a concatenation of base code and distillation code, with concatenation illustrated by a nesting of blue regions within yellow regions. The transversality of the T gate is used in b; it ensures that if the noisy magic states carry N logical errors (from the perspective of the base code), then after the step shown in b there are N local errors (local from the perspective of the distillation code). In c, parity-check measurements of the distillation code look for local errors. These checks will be passed if there are no errors (N = 0) and failed for any non-trivial local errors with N < d2. If the initial noisy magic states carry an error with probability ε, then the probability of non-trivial local errors with Nd2 is . We can iterate the protocol by taking the output of a round as the input of the subsequent round. Iterating r times, the error probability reduces to . The optional step (e) plays a crucial part in maintaining a low resource cost.

  5. Colour codes.
    Figure 5: Colour codes.

    a, Smallest example of a tetrahedral 3D colour code with qubits on the vertices (the [[15, 1, 3]] code). A suitable lattice in D dimensions must allow each cell to be coloured so that no two adjacent cells are the same colour, and using only D + 1 colours. Each coloured cell corresponds to a bit-flip (X) parity check of weight s = 8 and each face corresponds to a phase-flip (Z) parity check of weight s = 4. A logical Z gate acts on the qubits along any edge of the tetrahedron. A logical X gate acts on the qubits on any face of the tetrahedron. A logical T gate is implemented by applying a T gate on every qubit. A larger 3D colour code is shown in Supplementary Video 1. b, A 2D triangular [[31, 1, 7]] code, generalizing the Steane code, based on a truncated square lattice. The qubits are placed on vertices and each coloured face corresponds to both an X and a Z parity check. A logical X (Z) gate is any X (Z) path that runs along any of the edges of the triangle.

Videos

  1. Construction of a 3D colour code
    Video 1: Construction of a 3D colour code
    A short video explaining what makes a tetrahedral colour code.

The next decade will probably herald controllable quantum systems with 30 or more physical qubits on various quantum technology platforms, such as ion-traps1, 2 or superconducting qubits3. It may be difficult to simulate such partially coherent, dynamically driven, many-body systems on a classical computer, because the elementary two-qubit entangling gate time can be as much as a 1,000 times faster than the single-qubit dephasing (T2) and relaxation (T1) 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 fault-free components. We must either figure out which computational tasks a noisy many-body 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 underway4, 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 correctable8. Quantum error correction can preserve quantum information, but a fully fault-tolerant 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 low-density parity check (LDPC) code. This final requirement means that the number of qubits involved in each parity check (the parity-check 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 parity-check 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 parity-check 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 three-dimensional (2D or 3D) Euclidean space are strongly preferred for solid-state qubits. Here we compare the leading proposals for promoting a quantum memory to a quantum processor. We compare magic-state distillation, colour-code techniques and other ideas, paying attention to relative resource demands. We discuss what is computationally impossible using low-dimensional topological codes and outline the potential rewards of using high-dimensional 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 single-qubit gates are

and the three Pauli operators

An example of a two-qubit gate is a controlled NOT (CNOT) gate. The CNOT, Hadamard and S gates generate the group of Clifford gates. The non-Clifford 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 n-qubit 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 parity-check 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 parity-check 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.

Low-density 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 (non-growing) number of physical qubits.

Code deformation. Code deformation is a fault-tolerant 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 parity-check 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 non-trivial gates. A non-trivial gate can be implemented using a magic state via a simple fault-tolerant circuit, so that the burden of fault-tolerance 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 less-noisy (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 single-qubit gate T = diag(1, eiπ/4). The Clifford gates are generated by the Hadamard (H), controlled NOT (CNOT) and S = diag(1, eiπ/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 theorem9, 10. Fault-tolerant 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 seven-qubit 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 block-wise, 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 single-qubit unitary gates. A transversal logical gate between multiple blocks may use non-product 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 two-qubit gates; however, the presence of two-qubit gates in such a T-gate construction will entirely negate the benefits of using a logical qubit. A sequence of two-qubit gates can spread correctable single-qubit errors to uncorrectable multi-qubit 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 seven-qubit 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 non-destructively measuring these parity checks using ancilla qubits. If a phase-flip (Z) or bit-flip (X) error occurs on any of the seven qubits, then some of the parity-check 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 parity-check eigenvalues provide conclusive information about which of the possible single-qubit 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 parity-check operators. It has been shown25 that a fault-tolerant controlled-S gate can be implemented between two Steane blocks by applying seven rounds, each with seven block-wise controlled-S gates and each followed by X-error correction. This implementation realizes a fault-tolerant universal gate set for this small code. The Steane code has been implemented in ion-trap qubits79.

Figure 1: Transversal and non-transversal gates for the Steane code.
Transversal and non-transversal gates for the Steane code.

a, The encoded circuit for the Hadamard gate (HL) on Steane’s seven-qubit code is transversal. It entails applying the H gate on each of the seven physical qubits. b, The encoded circuit for the T gate (TL) on the same code is not transversal and not fault-tolerant. A single phase-flip (Z; red star) error can occur immediately after the T gate on the first qubit and propagates via the two CNOT gates to three phase-flip errors. These three phase-flip errors constitute the Z operator of the logical qubit (ZL).

Transversal logical gates are the simplest example of fault-tolerant logical gates, meaning logical gates that do not convert correctable errors into uncorrectable ones. However, it has been proved11, 12 that it is not possible for a non-trivial code to have transversal implementations of all of the gates necessary for universality, demonstrating the need for other constructions. Other fault-tolerant constructions, such as a fault-tolerant 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 single-qubit 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 memory13. An attractive feature of the surface code is that it has a high noise threshold14, 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 d2 physical qubits (plus d2 − 1 ancilla qubits for parity-check 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 sheet17, or a logical qubit could be represented by two pairs of lattice defects or twists18, 19. The logical error probability per round of parity-check measurements PL is determined by the code distance d; that is, PL ∝ (p/pc)d/2, where pc is the noise threshold of the surface code and p is the error probability at the hardware level. Numerical studies16 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 PL < 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.

Figure 2: Lattice code surgery in the surface code.
Lattice code surgery in the surface code.

a, One logical qubit is encoded in a surface code sheet consisting of d2 physical qubits at the vertices of the lattice (d = 5 here). Black faces represent X parity checks and white faces represent Z parity checks on the qubits. b, A CNOT circuit is equivalent to performing non-destructive X⊗X and Z⊗Z measurements for the control and target qubits, respectively, with an ancillary qubit. Lattice code surgery provides a method for non-destructively measuring a logical Z⊗Z or X⊗X operator between two encoded qubits. MXX, MZZ and MZ represent these measurements and b, a and c their respective outcomes. Initially, the ancilla is in the state . c, Lattice code surgery between two surface code sheets realizes a logical Z⊗Z measurement. By measuring and merging the parity checks between two surface code sheets, we merge the two sheets into one. At the same time, we learn the value of the logical Z⊗Z operator because it is equal to the product of the newly measured (grey) faces. The two sheets can then be split again for further operations.

The surface code architecture handles the fault-tolerant implementation of gates in several ways. One fault-tolerant method is code deformation—a versatile technique that can be used to execute logical gates in a fault-tolerant manner, which goes beyond the transversal execution of gates. In code deformation, the code is altered by changing which parity-check 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 surgery20 (Fig. 2b, c). The encoding of Fig. 2a can also be deformed to a twist-defect encoding in which the four corners of the lattice correspond to four defects21. Braiding of the four twist defects through the bulk of the lattice then generates the single-qubit S and H gates21. 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〉 + i|1〉 state, which is an inexpensive resource as it can be used many times22, 23.

Figure 3: Several circuit gadgets.
Several circuit gadgets.

a, Standard circuit implementing a T gate on an input state |ψ〉 by preparing a magic ancilla |A〉 = TH|0〉: after the CNOT gate, the measurement in the Z basis determines whether we must perform an additional S gate. b, Similar circuit for implementing an S gate by preparing the magic ancilla |Y〉 = SH|0〉. c, The circuit represents a fault-tolerant implementation of the projection of an encoded state |ψL〉 (in a base code) onto an eigenstate of a transversal logical Clifford gate , assuming that the Clifford gate C has eigenvalues of ±1. To use this circuit to prepare a T magic state, we take C = TXT  ∝ SX (where the dagger denotes the Hermitian conjugate), using a transversal logical S gate for the base code. Because a single error on the jth ancilla qubit can flip its measurement outcome mj, which would flip the global measurement outcome p, the circuit has to be repeated, with the overall outcome determined by which global measurement outcome occurs the most often.

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 non-Clifford gate. An appealing route toward universality is to augment code deformation methods with magic-state distillation for non-Clifford 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〉 = TH|0〉, 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 construction24 for preparing a fault-tolerant Toffoli magic state, which can be used to execute a Toffoli gate (also called a controlled-controlled-NOT gate). A similar construction25, 26 was proposed for preparing a fault-tolerant 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 fault-tolerant 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.

Magic-state distillation

The idea of magic-state distillation27 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 magic-state distillation are often designed using an error-correcting code with a transversal non-Clifford gate, typically a T gate. Therefore, there are a pair of complementary codes at play: the base code that provides a robust memory and fault-tolerant Clifford gates; and the distillation code with a transversal T gate that is used during magic-state distillation. An example of such a base code is the surface code. The [[15, 1, 3]] quantum Reed–Muller code has been shown25 to have a transversal T gate, and the use of this code as a distillation code for magic-state distillation was proposed by Bravyi and Kitaev27. 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 magic-state 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.

Figure 4: Magic-state distillation.
Magic-state distillation.

Physical qubits are protected against noise within a [[n1, 1, d1]] base code (subscripts distinguish the parameters of base and distillation codes), depicted here in blue. We can easily perform fault-tolerant Clifford gates in the base code, for example, transversally or with lattice code surgery. But we cannot straightforwardly perform Clifford gates or prepare high-fidelity magic states. In magic-state distillation, noisy magic states are input (a) and higher-fidelity magic states are output (d). At both input and output, the magic states are encoded within the base code. However, the protocol uses a distillation code (shown in yellow and assumed here to be an [[n2, 1, d2]] code) with a transversal T gate. During the protocol, qubits are encoded between input and output into a concatenation of base code and distillation code, with concatenation illustrated by a nesting of blue regions within yellow regions. The transversality of the T gate is used in b; it ensures that if the noisy magic states carry N logical errors (from the perspective of the base code), then after the step shown in b there are N local errors (local from the perspective of the distillation code). In c, parity-check measurements of the distillation code look for local errors. These checks will be passed if there are no errors (N = 0) and failed for any non-trivial local errors with N < d2. If the initial noisy magic states carry an error with probability ε, then the probability of non-trivial local errors with Nd2 is . We can iterate the protocol by taking the output of a round as the input of the subsequent round. Iterating r times, the error probability reduces to . The optional step (e) plays a crucial part in maintaining a low resource cost.

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 round16, 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(d2) 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 CTd3, with CT ≅ 160–310 when using Bravyi–Haah codes16, 28, 29. For Clifford gates, the overhead per logical gate is also O(d3), but the constant prefactor is close to one. Using magic-state distillation protocols with even higher yields (see Box 3) could reduce the CT factor further, with the Bravyi–Haah codes already shown28 to have space–time costs that are three times lower than those of the [[15, 1, 3]] code.

Box 3: High-yield magic-state distillation

The yield is the average number of distilled magic states per input noisy magic state. An [[n2, k2, d2]] 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 conjectured74 to be optimal.

Obtaining a fault-tolerant 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 algorithms30, 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. Magic-state distillation has been demonstrated for smaller-angle Z rotations34, 35, 36, the Toffoli gate37, 38 and a general class of multi-qubit circuits39.

Given that magic-state 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 magic-state distillation ‘factories’ for non-Clifford gates. The optimal spatial density of these factories depends on the typical quantum algorithmic use (such as frequency and parallelism) of the non-Clifford 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 (very-large-scale integration) design. This effort is barely underway40.

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 codes41, 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 gates44, 45, 46. The 3D colour codes can have a transversal non-Clifford gate42, 47, such as a T gate in the tetrahedral 3D colour code. Lattice code surgery48 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.

Figure 5: Colour codes.
Colour codes.

a, Smallest example of a tetrahedral 3D colour code with qubits on the vertices (the [[15, 1, 3]] code). A suitable lattice in D dimensions must allow each cell to be coloured so that no two adjacent cells are the same colour, and using only D + 1 colours. Each coloured cell corresponds to a bit-flip (X) parity check of weight s = 8 and each face corresponds to a phase-flip (Z) parity check of weight s = 4. A logical Z gate acts on the qubits along any edge of the tetrahedron. A logical X gate acts on the qubits on any face of the tetrahedron. A logical T gate is implemented by applying a T gate on every qubit. A larger 3D colour code is shown in Supplementary Video 1. b, A 2D triangular [[31, 1, 7]] code, generalizing the Steane code, based on a truncated square lattice. The qubits are placed on vertices and each coloured face corresponds to both an X and a Z parity check. A logical X (Z) gate is any X (Z) path that runs along any of the edges of the triangle.

Box 4: Arbitrary-dimension colour codes

The general construction of D-dimensional gauge or stabilizer colour codes is based on a D-dimensional simplicial complex with vertices that are (D + 1)-colourable (adjacent vertices have different colours). We associate qubits with D-simplexes 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 family45, 46. A common boundary configuration for these codes is obtained by tiling the inside of a large D-simplex, respecting colourability but omitting elements of the larger D-simplex 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 single-shot error correction (see section ‘Single-shot 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 code46. 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 gate51; 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 fixing46, 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 parity-check 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 code50 (which has free gauge qubits). Advantages of using the 3D gauge colour code over the 3D colour code (see Table 1) are the lower parity-check weights and the possibility of single-shot error correction50 (see section ‘Single-shot 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 code51. In a 2D colour code architecture augmented with 3D gauge colour code T-gate stations, logical qubits would be shuttled to T-gate stations when a T gate needs to be implemented. Architecturally, this would be similar to a 2D surface code with 2D non-Clifford processing occurring at dedicated locations.

Table 1: Code comparison

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(d3)) for a given distance d, whereas this overhead is O(d2) 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 decoding52. The best threshold numbers for circuit-based noise in which each gate undergoes depolarizing noise with probability p are 0.3% for a triangular colour code53 and 0.41% for a half-colour or [[4, 2, 2]] concatenated toric code54 (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 work55 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 shown56 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 magic-state 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 codes57 and get rid of magic-state 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 non-transversality 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 single-qubit errors can still be corrected in this construction. The lower bound58 for the asymptotic noise threshold of this construction was 0.28%.

In Box 2 we state that the Steane code has a fault-tolerant controlled-S gate, the execution of which can be broken down into rounds or pieces59. Each piece contains X-error correction to maintain fault-tolerance, but holds off on Z-error 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 magic-state 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 nearest-neighbour 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 non-planar connections, the length of which grows with the size of the colour code. Recent work60, 61, 62 has demonstrated ways to systematically construct codes that have a transversal T gate and to convert these codes to so-called doubled colour or 2D gauge colour codes. However, by making all of the connections local on a 2D lattice, the resulting 2D codes are non-topological. 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 low-noise logical T ancilla (which can then be transferred to the 2D Clifford substrate) has not yet been compared with that of magic-state distillation or using 3D T-gate stations.

Comparison of resource overheads

The combination of magic-state distillation and the surface code is considered a competitive scheme because it combines a high-noise 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 magic-state distillation with 3D T-gate 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(d3) qubits, but single-shot error correction makes the space–time cost50 also O(d3).

An analysis58 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 magic-state distillation. This analysis includes the consideration of a smaller, more efficient, 49-qubit code63. To achieve the target error probability of PL < 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 107 physical qubits for a logical qubit (versus 104 for surface codes with magic-state distillation).

The blessing of dimensionality

Investigations of the limitations of low-dimensional topological stabilizer codes, which aimed to improve our understanding of their potential, also uncovered new connections and surprises.

Transversality and dimensionality

Bravyi and Koenig64 proved that there is a deep connection between transversality and dimensionality of a topological stabilizer code. Their theorem states that for D-dimensional topological stabilizer codes it is impossible to implement logical gates via a transversal or constant-depth circuit unless they are in the so-called Dth level of the Clifford hierarchy CD. Here C1 is the group of n-qubit Pauli operators, C2 is the Clifford group and C3 contains gates such as T and Toffoli gates. More generally, CD includes small-rotation gates such as diag(1, exp(2πi/2D)). 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 D-dimensional colour and surface codes saturate the Bravyi–Koenig theorem45, 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 magic-state 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 non-trivial fault-tolerant gate construction.

Trade-off bounds

When designing a storage medium—a quantum hard drive—the architectural requirement for a fault-tolerant 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 shown65 that 2D Euclidean topological stabilizer codes are constrained by kd2 ≤ cn for some constant c: the surface code clearly achieves the upper limit of this bound (kd2 = 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 codes66 have a less restrictive bound of67 kd2 ≤ c(logk)2n. 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 distance66.

Single-shot error correction

2D topological codes have an intrinsic temporal overhead in executing code deformation in a fault-tolerant manner, making gates that rely on this technique take O(d) time. The reason for this intrinsic overhead is that for code deformation parity-check measurements need to be repeated O(d) times to be sufficiently reliable. The absence of redundancy in the parity-check measurements is an immediate consequence of the lack of self-correction of 2D topological stabilizer codes68. A 4D hypercubic lattice version of the surface code13 allows for single-shot error correction instead. Codes that have single-shot error correction also have potentially higher noise thresholds and faster logical gates. Interestingly, it has been shown that single-shot error correction is also possible for 3D gauge colour codes50. For these codes the value of the stabilizer parity checks is acquired by measuring non-commuting lower-weight gauge-qubit checks, the products of which determine the stabilizer parity checks. In the 3D gauge colour code, the gauge-qubit 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 single-shot 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 magic-state 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 low-dimensional 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 D-dimensional manifold. There are also non-topological families of LDPC codes, such as those based on expander graphs69, 70.

Such approaches require hardware that supports long-range connectivity. Fortunately, there are experimental platforms that support long-range connectivity, such as ion-trap qubits and nuclear spins coupled to nitrogen–vacancy centres in diamond. We expect such architectures to work with modular components with photonic interconnects71, 72, which would enable more flexible and long-range connectivity.

The advantages of using a higher-dimensional 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

  1. Häffner, H., Roos, C. F. & Blatt, R. Quantum computing with trapped ions. Phys. Rep. 469, 155203 (2008)
  2. Ballance, C. J., Harty, T. P., Linke, N. M., Sepiol, M. A. & Lucas, D. M. High-fidelity quantum logic gates using trapped-ion hyperfine qubits. Phys. Rev. Lett. 117, 060504 (2016)
  3. Devoret, M. H. & Schoelkopf, R. J. Superconducting circuits for quantum information: an outlook. Science 339, 11691174 (2013)
  4. 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)
  5. Gambetta, J. M., Chow, J. M. & Steffen M. Building logical qubits in a superconducting quantum computing system. Quantum Inf. 3, 2 (2017)
  6. Kelly, J. et al. State preservation by repetitive error detection in a superconducting quantum circuit. Nature 519, 6669 (2015)
  7. Ristè, D. et al. Detecting bit-flip errors in a logical qubit using stabilizer measurements. Nat. Commun. 6, 6983 (2015)
  8. Terhal, B. M. Quantum error correction for quantum memories. Rev. Mod. Phys. 87, 307346 (2015)
  9. Gottesman, D. Stabilizer Codes and Quantum Error Correction. PhD thesis, Californian Institute of Technology (1997)
  10. Aaronson, S. & Gottesman, D. Improved simulation of stabilizer circuits. Phys. Rev. A 70, 052328 (2004)
  11. 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)
  12. Eastin, B. & Knill, E. Restrictions on transversal encoded quantum gate sets. Phys. Rev. Lett. 102, 110502 (2009)
  13. Dennis, E., Kitaev, A., Landahl, A. & Preskill, J. Topological quantum memory. J. Math. Phys. 43, 44524505 (2002). Seminal paper on using the surface code as a quantum memory
  14. Raussendorf, R. & Harrington, J. Fault-tolerant 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 magic-state distillation
  15. Fowler, A. G., Stephens, A. M. & Groszkowski, P. High-threshold universal quantum computation on the surface code. Phys. Rev. A 80, 052312 (2009)
  16. Fowler, A., Mariantoni, M., Martinis, J. M. & Cleland, A. N. Surface codes: towards practical large-scale quantum computation. Phys. Rev. A 86, 032324 (2012)
  17. Raussendorf, R., Harrington, J. & Goyal, K. Topological fault-tolerance in cluster state quantum computation. New J. Phys. 9, 199 (2007)
  18. Bombín, H. Topological order with a twist: Ising anyons from an Abelian model. Phys. Rev. Lett. 105, 030403 (2010)
  19. Hastings, M. B. & Geller, A. Reduced space-time and time costs using dislocation codes and arbitrary ancillas. Quantum Inf. Comput. 15, 962986 (2015)
  20. Horsman, C., Fowler, A. G. & Devitt, S. & Van Meter, R. Surface code quantum computing by lattice surgery. New J. Phys. 14, 123011 (2012)
  21. 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)
  22. Aliferis, P. Level Reduction and the Quantum Threshold Theorem. PhD thesis, California Institute of Technology (2007)
  23. Jones, N. C. et al. Layered architecture for quantum computing. Phys. Rev. X 2, 031007 (2012)
  24. Shor, P. W. Fault-tolerant quantum computation. In 37th Annual Symposium on Foundations of Computer Science, FOCS ‘96 5665 (IEEE, 1996). Presented theoretical schemes for realizing fault-tolerant universal quantum computation for the first time, using quantum error correcting codes
  25. Knill, E., Laflamme, R. & Zurek, W. Threshold accuracy for quantum computation. Preprint at https://arxiv.org/abs/quant-ph/9610011 (1996)
  26. Knill, E., Laflamme, R. & Zurek, W. Resilient quantum computation. Science 279, 342345 (1998)
  27. Bravyi, S. & Kitaev, A. Universal quantum computation with ideal Clifford gates and noisy ancillas. Phys. Rev. A 71, 022316 (2005). Introduced magic-state distillation as an efficient high-threshold way of getting from Clifford circuits to universality
  28. Fowler, A. G., Devitt, S. J. & Jones, C. Surface code implementation of block code state distillation. Sci. Rep. 3, 1939 (2013)
  29. O’Gorman, J. & Campbell, E. T. Quantum computation with realistic magic state factories. Phys. Rev. A 95, 032338 (2017)
  30. Kitaev, A. Yu., Shen, A. H. & Vyalyi, M. N. Classical and Quantum Computation (American Mathematical Society, 2002)
  31. Ross, N. J. & Selinger, P. Optimal ancilla-free Clifford + T approximation of z-rotations. Quantum Inf. Comput. 16, 901953 (2016)
  32. Bocharov, A., Roetteler, M. & Svore, K. M. Efficient synthesis of probabilistic quantum circuits with fallback. Phys. Rev. A 91, 052317 (2015)
  33. Amy, M., Maslov, D., Mosca, M. & Roetteler, M. A meet-in-the-middle algorithm for fast synthesis of depth-optimal quantum circuits. IEEE Trans. Comput. Aided Des. Integrated Circ. Syst. 32, 818830 (2013)
  34. Cesare, C. Topological Code Architectures for Quantum Computation. PhD thesis, Univ. New Mexico (2014)
  35. Duclos-Cianci, G. & Poulin, D. Reducing the quantum-computing overhead with complex gate distillation. Phys. Rev. A 91, 042315 (2015)
  36. Campbell, E. T. & O’Gorman, J. An efficient magic state approach to small angle rotations. Quant. Sci. Tech 1, 015007 (2016)
  37. Eastin, B. Distilling one-qubit magic states into Toffoli states. Phys. Rev. A 87, 032321 (2013)
  38. Jones, C. Low-overhead constructions for the fault-tolerant Toffoli gate. Phys. Rev. A 87, 022328 (2013)
  39. 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)
  40. Paler, A., Devitt, S. J. & Fowler, A. G. Synthesis of arbitrary quantum circuits to topological assembly. Sci. Rep. 6, 30600 (2016)
  41. Bombín, H. & Martin-Delgado, M. A. Topological quantum distillation. Phys. Rev. Lett. 97, 180501 (2006)
  42. Bombín, H. & Martin-Delgado, M. A. Topological computation without braiding. Phys. Rev. Lett. 98, 160502 (2007). Introduced 3D colour codes with a transversal T gate
  43. Bombín, H. & Martin-Delgado, M. A. Homological error correction: classical and quantum codes. J. Math. Phys. 48, 052105 (2007)
  44. Katzgraber, H. G., Bombin, H., Andrist, R. S. & Martin-Delgado, M. A. Topological color codes on union jack lattices: a stable implementation of the whole clifford group. Phys. Rev. A 81, 012319 (2010)
  45. Kubica, A. & Beverland, M. E. Universal transversal gates with color codes: a simplified approach. Phys. Rev. A 91, 032330 (2015)
  46. Bombín, H. Gauge color codes: optimal transversal gates and gauge fixing in topological stabilizer codes. New J. Phys. 17, 083002 (2015)
  47. Kubica, A., Yoshida, B. & Pastawski, F. Unfolding the color code. New J. Phys. 17, 083026 (2015)
  48. Landahl, A. J. & Ryan-Anderson, C. Quantum Computing by Color-Code Lattice Surgery. Report SAND2014-15911J, https://arxiv.org/abs/1407.5103 (Sandia National Laboratories, 2014)
  49. Paetznick, A. & Reichardt, B. W. Universal fault-tolerant 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
  50. Bombín, H. Single-shot fault-tolerant quantum error correction. Phys. Rev. X 5, 031043 (2015)
  51. Bombín, H. Dimensional jump in quantum error correction. New J. Phys. 18, 043038 (2016)
  52. Delfosse, N. Decoding color codes by projection onto surface codes. Phys. Rev. A 89, 012317 (2014)
  53. Beverland, M. Toward Realizable Quantum Computers. PhD thesis, California Institute of Technology (2016)
  54. Criger, B. & Terhal, B. M. Noise thresholds for the [[4, 2, 2]]-concatenated toric code. Quantum Inf. Comput. 16, 12611281 (2016)
  55. Cross, A. W., DiVincenzo, D. P. & Terhal, B. M. A comparative code study for quantum fault tolerance. Quantum Inf. Comput. 9, 541572 (2009)
  56. Paetznick, A. & Reichardt, B. W. Fault-tolerant ancilla preparation and noise threshold lower bounds for the 23-qubit Golay code. Quantum Inf. Comput. 12, 10341080 (2012)
  57. Jochym-O’Connor, T. & Laflamme, R. Using concatenated quantum codes for universal fault-tolerant quantum gates. Phys. Rev. Lett. 112, 010505 (2014)
  58. Chamberland, C., Jochym-O’Connor, T. & Laflamme, R. Overhead analysis of universal concatenated quantum codes. Phys. Rev. A 95, 022313 (2017)
  59. Yoder, Th. J., Takagi, R. & Chuang, I. L. Universal fault-tolerant gates on concatenated stabilizer codes. Phys. Rev. X 6, 031039 (2016)
  60. Bravyi, S. & Cross, A. Doubled color codes. Preprint at https://arxiv.org/abs/1509.03239 (2015)
  61. Jones, C., Brooks, P. & Harrington, J. Gauge color codes in two dimensions. Phys. Rev. A 93, 052332 (2016)
  62. Jochym-O’Connor, T. & Bartlett, S. D. Stacked codes: universal fault-tolerant quantum computation in a two-dimensional layout. Phys. Rev. A 93, 022323 (2016)
  63. Nikahd, E., Sedighi, M. & Zamani, M. S. Non-uniform code concatenation for universal fault-tolerant quantum computing. Preprint at https://arxiv.org/abs/1605.07007 (2016)
  64. 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
  65. Bravyi, S., Poulin, D. & Terhal, B. M. Tradeoffs for reliable quantum information storage in 2D systems. Phys. Rev. Lett. 104, 050503 (2010)
  66. Breuckmann, N. P. & Terhal, B. M. Constructions and noise threshold of hyperbolic surface codes. IEEE Trans. Inf. Theory 62, 37313744 (2016)
  67. Delfosse, N. Tradeoffs for reliable quantum information storage in surface codes and color codes. In Proc. IEEE International Symposium on Information Theory 917921 (IEEE, 2013)
  68. Bravyi, S. & Terhal, B. M. A no-go theorem for a two-dimensional self-correcting quantum memory based on stabilizer codes. New J. Phys. 11, 043029 (2009)
  69. 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, 11931202 (2014)
  70. Freedman, M. H. & Hastings, M. B. Quantum systems on non-k-hyperfinite complexes: a generalization of classical statistical mechanics on expander graphs. Quantum Inf. Comput. 14, 144180 (2014)
  71. Monroe, C. et al. Large-scale modular quantum-computer architecture with atomic memory and photonic interconnects. Phys. Rev. A 89, 022317 (2014)
  72. Nickerson, N. H., Fitzsimons, J. F. & Benjamin, S. C. Freely scalable quantum technologies using cells of 5-to-50 qubits with very lossy and noisy photonic links. Phys. Rev. X 4, 041041 (2014)
  73. Meier, A. M., Eastin, B. & Knill, E. Magic-state distillation with the four-qubit code. Quantum Inf. Comput. 13, 195209 (2013)
  74. Bravyi, S. & Haah, J. Magic-state distillation with low overhead. Phys. Rev. A 86, 052329 (2012)
  75. Jones, C. Multilevel distillation of magic states for quantum computing. Phys. Rev. A 87, 042305 (2013)
  76. Wang, C., Harrington, J. & Preskill, J. Confinement-Higgs transition in a disordered gauge theory and the accuracy threshold for quantum memory. Ann. Phys. 303, 3158 (2003)
  77. Brown, B. J., Nickerson, N. H. & Browne, D. E. Fault-tolerant error correction with the gauge color code. Nat. Commun. 7, 12302 (2016)
  78. Breuckmann, N. P., Duivenvoorden, K., Michels, D. & Terhal, B. M. Local decoders for the 2D and 4D toric code. Quantum Inf. Comput. 17, 181208 (2017)
  79. Nigg, D. et al. Quantum computations on a topologically encoded qubit. Science 345, 302305 (2014)

Download references

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

  1. Department of Physics and Astronomy, University of Sheffield, Sheffield, UK

    • Earl T. Campbell
  2. JARA Institute for Quantum Information, RWTH Aachen University, 52056 Aachen, Germany

    • Barbara M. Terhal &
    • Christophe Vuillot
  3. Forschungszentrum Juelich, D-52425 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.

Corresponding author

Correspondence to:

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

Additional data