개념 소개
양자 정보는 환경과의 상호작용(디코히런스)과 불완전한 게이트 연산으로 인해 지속적으로 손상된다. 고전 컴퓨터는 비트를 단순 복제하여 오류를 복구하지만, 양자역학의 복제 불가 정리(no-cloning theorem)는 큐비트의 직접 복사를 금지한다. 이를 우회하기 위해 고안된 것이 **양자 오류 정정 부호(quantum error-correcting code)**이며, 표면 부호(surface code)는 그 중 실용성이 가장 높은 방식이다.
표면 부호는 1997년 Kitaev의 토릭 부호(toric code)에서 출발하여, 경계 조건을 변형한 평면 격자 형태로 발전하였다. 핵심 아이디어는 다수의 물리 큐비트로 하나의 논리 큐비트를 인코딩하고, 큐비트 간 상관관계를 지속적으로 측정하여 오류 징후(syndrome)를 추적하는 것이다.
핵심 원리
격자 구조
거리(distance) 의 표면 부호는 격자 위에 데이터 큐비트(data qubit)를 배치하고, 그 사이사이에 보조 큐비트(ancilla qubit)를 놓아 안정자를 측정한다. 총 물리 큐비트 수는 대략 개이며, 이로써 하나의 논리 큐비트를 표현한다.
격자의 각 면(face)과 꼭짓점(vertex)에는 두 종류의 **안정자(stabilizer)**가 정의된다.
- : 꼭짓점 주변 4개 데이터 큐비트에 연산자를 적용하는 X-안정자 (star operator)
- : 면 경계 4개 데이터 큐비트에 연산자를 적용하는 Z-안정자 (plaquette operator)
모든 와 는 서로 교환(commute)하며, 코드 공간(code space)은 이들의 공통 고유 공간으로 정의된다.
오류 검출: 신드롬 측정
데이터 큐비트에 비트 반전 오류()가 발생하면 인접한 측정값이 로 뒤집힌다. 위상 반전 오류()는 인접한 를 로 만든다. 이처럼 측정 결과의 패턴을 **오류 신드롬(error syndrome)**이라 하며, 데이터 큐비트를 직접 관측하지 않고도 오류 위치를 추정할 수 있다.
오류 체인(error chain)이 격자를 가로지르는 길이가 미만이면 신드롬으로부터 정확히 복구할 수 있다. 거리 가 클수록 정정 가능한 오류 수가 증가하고 논리 오류율은 지수적으로 감소한다.
여기서 는 물리 오류율, 는 임계 오류율이다.
논리 연산자
논리 큐비트의 와 는 격자의 한쪽 경계에서 반대쪽 경계까지 이어지는 Pauli 연산자 체인으로 정의된다.
- : 왼쪽 경계 → 오른쪽 경계를 잇는 체인
- : 위쪽 경계 → 아래쪽 경계를 잇는 체인
이 두 체인은 정확히 한 큐비트에서 교차하므로 가 성립하여 논리 큐비트의 반교환 관계를 만족한다.
디코더
신드롬으로부터 실제 오류 위치를 추론하는 과정을 **디코딩(decoding)**이라 한다. 대표적인 알고리즘은 **최소 가중치 완전 매칭(Minimum Weight Perfect Matching, MWPM)**으로, 신드롬 결함 쌍 사이의 최단 경로를 찾아 오류를 추정한다.
import networkx as nx
def mwpm_decode(syndrome_graph):
"""
syndrome_graph: 결함 꼭짓점을 노드로,
Manhattan 거리를 가중치로 갖는 그래프
"""
# 최소 가중치 완전 매칭
matching = nx.min_weight_matching(syndrome_graph, weight="weight")
corrections = []
for u, v in matching:
# 매칭된 두 결함 사이의 최단 경로를 정정 연산으로 적용
path = nx.shortest_path(syndrome_graph, u, v, weight="weight")
corrections.append(path)
return corrections
예시·응용
**거리-3 표면 부호 (d=3)**는 총 17개의 물리 큐비트(9개 데이터 + 8개 보조)로 구성되며, 임의의 단일 큐비트 오류 1개를 완전히 정정할 수 있다. Google의 Sycamore 프로세서와 IBM의 초전도 큐비트 플랫폼에서 이 구조의 실험적 구현이 보고되었다.
**격자 수술(lattice surgery)**은 표면 부호 패치들을 일시적으로 합치거나 분리하여 논리 게이트를 수행하는 기법으로, CNOT 등의 2큐비트 논리 연산을 내결함성 방식으로 구현한다.
**매직 상태 증류(magic state distillation)**와 결합하면 범용 논리 게이트 집합(Clifford + T)을 완성할 수 있으며, 이것이 실용적 양자컴퓨터 구현의 핵심 경로다.
정리
표면 부호는 2차원 국소 연결성, 높은 오류 임계값, 확장 가능한 구조를 갖춰 현재 기술 수준에서 가장 현실적인 내결함성 아키텍처다. 거리 를 늘릴수록 논리 오류율이 지수적으로 감소하지만, 요구되는 물리 큐비트 수도 으로 증가하기 때문에 물리 큐비트 품질 향상과 디코더 속도 개선이 병행되어야 한다.
Exercises
연습문제
Q1거리 $d=5$인 표면 부호에서 물리 큐비트는 최소 몇 개 필요한가? 또한 이 부호가 정정할 수 있는 최대 오류 개수는?
힌트 보기
물리 큐비트 수 공식 $2d^2 - 1$과, 정정 가능한 오류 수 $t = \lfloor(d-1)/2\rfloor$를 적용한다.
해설 보기
물리 큐비트 수는 $2 \times 25 - 1 = 49$개이다. 정정 가능한 최대 오류 개수는 $\lfloor(5-1)/2\rfloor = 2$개이다. 즉 임의의 2큐비트 오류까지 완전히 정정할 수 있다.
Q2X-안정자 $A_v$와 Z-안정자 $B_f$가 항상 교환(commute)함을 보여라.
힌트 보기
두 연산자가 공유하는 큐비트의 개수를 세어 Pauli 반교환 관계를 적용한다.
해설 보기
$A_v$와 $B_f$가 공유하는 큐비트는 격자 구조상 0개 또는 2개이다. Pauli 연산자 $X$와 $Z$는 같은 큐비트에서 반교환하므로($XZ = -ZX$), 공유 큐비트가 2개이면 부호가 두 번 반전되어 $(-1)^2 = 1$, 즉 교환한다. 공유 큐비트가 0개이면 자명하게 교환한다. 따라서 $[A_v, B_f] = 0$이 항상 성립한다.
Q3논리 오류율 공식 $p_L \propto (p/p_{\text{th}})^{\lfloor d/2 \rfloor + 1}$에서, 물리 오류율 $p = 0.1\%$이고 $p_{\text{th}} = 1\%$일 때, 거리를 $d=3$에서 $d=5$로 늘리면 논리 오류율은 몇 배 감소하는가?
해설 보기
$d=3$일 때 지수는 $\lfloor 3/2 \rfloor + 1 = 2$이므로 $p_L \propto (0.1)^2 = 0.01$. $d=5$일 때 지수는 $\lfloor 5/2 \rfloor + 1 = 3$이므로 $p_L \propto (0.1)^3 = 0.001$. 따라서 논리 오류율은 약 **10배** 감소한다. 이처럼 거리를 2 늘릴 때마다 $p/p_{\text{th}}$ 배씩 추가 억제된다.
관련 용어


