표면 부호(Surface Code)의 구조와 스태빌라이저 형식주의
표면 부호는 2차원 격자 위의 물리 큐비트에 X형·Z형 스태빌라이저를 배치하여 하나의 논리 큐비트를 보호하는 위상학적 양자 오류 정정 부호다. 국소적 측정만으로 신드롬을 추출할 수 있고, 오류 역치가 약 1%에 달해 초전도 큐비트 플랫폼에서 가장 유망한 오류 정정 방식으로 평가받는다.
개념 소개
표면 부호(Surface Code)는 Kitaev의 토릭 부호(Toric Code)에서 파생된 위상학적 안정화 부호(topological stabilizer code)로, 2차원 격자 구조와 인접 큐비트 간 국소적 상호작용만으로 양자 오류를 검출·정정한다. 핵심적인 장점은 두 가지다. 첫째, 오류 역치(error threshold)가 약 로 다른 부호에 비해 높다. 둘째, 인접 큐비트 사이의 2체(two-body) 연산만으로 스태빌라이저 측정이 가능하여 현재의 하드웨어 제약에 부합한다. Google, IBM 등이 채택한 핵심 오류 정정 아키텍처다.
핵심 원리
격자 구조
가장 널리 사용되는 **회전된 표면 부호(Rotated Surface Code)**를 기준으로 기술한다. 부호 거리 에서의 구성은 다음과 같다.
| 구성 요소 | 개수 |
|---|---|
| 데이터 큐비트 | |
| X형 보조 큐비트 | |
| Z형 보조 큐비트 | |
| 전체 물리 큐비트 |
인코딩 비율은 로, 물리 큐비트 수가 늘어날수록 오버헤드가 크지만 논리 오류율이 지수적으로 감소한다.
스태빌라이저 형식주의
표면 부호의 코드 공간은 스태빌라이저 군 의 공통 +1 고유 공간이다.
스태빌라이저는 두 종류로 구성된다.
Z형 스태빌라이저 (플래킷 연산자): 플래킷 주변 데이터 큐비트에 파울리 를 적용한다. 내부 플래킷은 가중치 4, 경계 플래킷은 가중치 2다.
이 연산자는 **비트 플립(X 오류)**을 검출한다. 가 와 반통근(anticommute)하기 때문이다.
X형 스태빌라이저 (버텍스 연산자): 버텍스 주변 데이터 큐비트에 파울리 를 적용한다.
이 연산자는 **위상 플립(Z 오류)**을 검출한다.
두 스태빌라이저가 통근함을 확인할 수 있다. 임의의 와 는 공유하는 데이터 큐비트 수가 항상 0개 또는 짝수이므로, 부호의 일관성이 보장된다.
논리 연산자와 코드 거리
논리 연산자는 스태빌라이저 군에 속하지 않으면서 의 모든 원소와 통근하는 연산자다. 회전 표면 부호에서 논리 연산자는 격자를 관통하는 파울리 체인이다.
코드 거리 는 이 논리 연산자의 최소 파울리 가중치와 동일하며, 정정 가능한 최대 독립 오류 수는 다음과 같다.
신드롬 측정과 디코딩
오류 연산자 가 발생하면 와 반통근하는 스태빌라이저들의 측정값이 로 바뀐다. 이 결과의 집합을 **신드롬(syndrome)**이라 한다. 신드롬에서 원래 오류를 추론하는 과정이 디코딩이며, 대표 알고리즘으로 **최소 가중치 완전 매칭(MWPM, Minimum Weight Perfect Matching)**이 사용된다.
예시·응용
d=3 표면 부호
이면 데이터 큐비트 9개, 보조 큐비트 8개, 총 17개의 물리 큐비트로 논리 큐비트 1개를 인코딩한다. 단일 오류()를 정정할 수 있다.
# d=3 표면 부호 스태빌라이저 측정 개념 코드 (Qiskit 스타일)
from qiskit import QuantumCircuit
def measure_z_stabilizer(qc, data_qubits: list, ancilla: int):
"""Z형 스태빌라이저: 데이터 → 보조 CNOT으로 패리티 추출"""
qc.reset(ancilla)
for dq in data_qubits:
qc.cx(dq, ancilla) # |0⟩ 보조에 X 오류 패리티 누적
qc.measure(ancilla, ancilla)
def measure_x_stabilizer(qc, data_qubits: list, ancilla: int):
"""X형 스태빌라이저: Hadamard 기저 변환 후 CNOT"""
qc.reset(ancilla)
qc.h(ancilla)
for dq in data_qubits:
qc.cx(ancilla, dq) # 보조 → 데이터 CNOT
qc.h(ancilla)
qc.measure(ancilla, ancilla)
논리 오류율 스케일링
물리 오류율 가 역치 보다 작을 때 논리 오류율은 거리 에 따라 지수적으로 감소한다.
, 이면 이므로, 를 3→5→7로 늘릴 때 은 →→ 수준으로 감소한다.
정리
표면 부호는 2차원 격자, Z형·X형 스태빌라이저, 국소적 신드롬 측정이라는 세 축 위에 설계된 실용적 오류 정정 부호다. 코드 거리 를 증가시키면 물리 큐비트 수는 로 늘어나지만, 논리 오류율은 지수적으로 감소한다. 높은 오류 역치와 2차원 격자의 물리적 구현 용이성 덕분에 내결함성 양자컴퓨팅의 핵심 기반 기술로 자리잡고 있다.
연습문제
Q1.부호 거리 $d=5$인 회전 표면 부호의 데이터 큐비트 수, 보조 큐비트 수, 전체 물리 큐비트 수를 각각 구하고, 정정 가능한 최대 독립 오류 수를 계산하라.
힌트 보기
전체 물리 큐비트 수 공식 $2d^2 - 1$과 정정 능력 $t = \lfloor(d-1)/2\rfloor$를 활용한다.
해설 보기
데이터 큐비트: $5^2 = 25$개. 보조 큐비트: $5^2 - 1 = 24$개 (X형 12개, Z형 12개). 전체: $2 \times 25 - 1 = 49$개. 정정 가능 오류 수: $\lfloor(5-1)/2\rfloor = 2$개. 즉, 임의의 독립적인 단일 큐비트 오류 2개까지 완전 정정이 가능하다.
Q2.임의의 Z형 스태빌라이저 $S_Z^{(p)}$와 X형 스태빌라이저 $S_X^{(v)}$가 항상 통근함을 보여라.
힌트 보기
두 스태빌라이저가 같은 큐비트 $i$에 동시에 작용할 때, 단일 큐비트에서 $XZ = -ZX$임을 이용한다. 공유 큐비트가 짝수 개이면 전체 부호가 상쇄됨을 확인한다.
해설 보기
큐비트 $i$에서 $X_i$와 $Z_i$는 반통근($X_i Z_i = -Z_i X_i$)한다. $S_Z^{(p)}$와 $S_X^{(v)}$가 공유하는 큐비트가 $m$개이면, 두 연산자의 교환자는 $(-1)^m$ 인자를 얻는다. 회전 표면 부호의 격자 기하학적 구조상 임의의 플래킷과 버텍스가 공유하는 데이터 큐비트는 0개 또는 2개뿐이다. 따라서 $(-1)^m = (-1)^0 = 1$ 또는 $(-1)^2 = 1$이 되어 $[S_Z^{(p)}, S_X^{(v)}] = 0$이 성립한다.
Q3.물리 오류율 $p = 0.5\%$이고 역치 $p_{\text{th}} = 1\%$일 때, $d=3$과 $d=5$의 논리 오류율 비 $p_L(d=5)/p_L(d=3)$을 근사 공식 $p_L \approx A(p/p_{\text{th}})^{\lceil d/2 \rceil}$을 이용해 추정하라.
해설 보기
$p/p_{\text{th}} = 0.5/1 = 0.5$. $d=3$이면 $\lceil 3/2 \rceil = 2$이므로 $p_L(3) \approx A \cdot (0.5)^2 = 0.25A$. $d=5$이면 $\lceil 5/2 \rceil = 3$이므로 $p_L(5) \approx A \cdot (0.5)^3 = 0.125A$. 비율: $p_L(5)/p_L(3) = 0.125/0.25 = 0.5$. 즉, $d$를 3에서 5로 늘리면 이 조건에서 논리 오류율이 절반으로 감소한다. $p$가 역치보다 훨씬 작을수록 $d$ 증가의 이득이 더 커진다.