표면 부호(Surface Code)의 구조: 2차원 위상학적 양자 오류 정정
표면 부호는 2차원 격자 위의 큐비트에 안정자 연산자를 부여하여 단일 논리 큐비트를 인코딩하는 위상학적 양자 오류 정정 부호다. 약 1%에 달하는 높은 오류 임계값과 국소적 측정만으로 신드롬을 추출할 수 있어, 초전도 큐비트 기반 양자 컴퓨터의 사실상 표준 오류 정정 방식으로 자리잡고 있다.
개념 소개
양자 계산에서 오류는 피할 수 없다. 표면 부호(Surface Code)는 물리 큐비트 여러 개를 묶어 하나의 논리 큐비트를 보호하는 방법 중, 현재 가장 실용적인 방안으로 평가받는다. 핵심 아이디어는 격자 위에 큐비트를 배열하고, 국소 안정자 측정만으로 오류 위치를 추론한다는 점이다. 오류 정보를 얻기 위해 논리 큐비트 상태를 직접 측정할 필요가 없다.
핵심 원리
격자 구조
가장 널리 사용되는 **회전 표면 부호(Rotated Surface Code)**를 기준으로 설명한다. 거리(distance) 의 표면 부호는 개의 데이터 큐비트를 45° 회전된 정사각 격자 위에 배치한다. 격자의 면(plaquette)들은 흑백 체커보드 패턴으로 나뉘며, 각 내부 면에는 측정을 담당하는 **보조 큐비트(ancilla qubit)**가 대응된다.
| 구성 요소 | 수량 |
|---|---|
| 데이터 큐비트 | |
| X형 안정자 면 | |
| Z형 안정자 면 | |
| 보조 큐비트 | |
| 인코딩 논리 큐비트 | 1 |
총 개의 물리 큐비트로 논리 큐비트 1개를 보호한다.
안정자 연산자
**안정자 형식론(Stabilizer Formalism)**에 따라 코드 공간은 모든 안정자 연산자의 고유 공간으로 정의된다. 각 면 에 대응하는 두 종류의 안정자는 다음과 같다.
X형 안정자: 면 의 경계 데이터 큐비트에 게이트를 적용
Z형 안정자: 면 의 경계 데이터 큐비트에 게이트를 적용
서로 다른 색의 면에 배치된 X형·Z형 안정자는 모두 쌍별로 가환(commute)하므로 동시에 측정이 가능하다. 개의 독립 안정자가 코드 공간을 정의하며, 나머지 자유도 1이 논리 큐비트에 해당한다.
논리 연산자
논리 연산자는 격자를 끝에서 끝까지 가로지르는 파울리 연산자 사슬로 정의된다.
이 두 연산자는 코드 공간 위에서 반가환(anticommute)하며 을 만족하여, 표준 큐비트 대수를 이룬다.
신드롬 측정과 오류 정정
물리 오류가 발생하면 일부 안정자의 기댓값이 로 변한다. 이 신드롬(syndrome) 패턴이 오류 진단의 핵심이다.
- 오류(비트 반전): 해당 큐비트에 인접한 Z형 안정자가 을 보고
- 오류(위상 반전): 해당 큐비트에 인접한 X형 안정자가 을 보고
신드롬 패턴은 오류 사슬의 **끝점(anyonic endpoint)**을 나타낸다. 디코더(decoder)는 최소 가중치 완전 매칭(Minimum Weight Perfect Matching, MWPM) 등의 알고리즘으로 오류 사슬을 추정하고 복원 연산을 결정한다. 오류 사슬이 격자를 가로지르는 비자명 루프를 형성할 경우 논리 오류가 발생한다.
거리 의 부호는 최대 개의 오류를 완전 정정할 수 있다.
오류 임계값
물리 오류율 가 임계값 미만이면, 거리를 늘릴수록 논리 오류율이 지수적으로 감소한다.
예시·응용
Stim을 이용한 신드롬 시뮬레이션
import stim
# 거리 3 회전 표면 부호 회로 생성 (Z 메모리 실험)
circuit = stim.Circuit.generated(
"surface_code:rotated_memory_z",
rounds=5,
distance=3,
after_clifford_depolarization=0.001, # 물리 오류율 0.1%
)
# 신드롬 샘플링
sampler = circuit.compile_detector_sampler()
detection_events, observables = sampler.sample(
shots=10_000,
separate_observables=True
)
logical_error_rate = observables.mean()
print(f"논리 오류율: {logical_error_rate:.4f}")
# 예상 출력 예: 논리 오류율: 0.0012
자원 추정 예시
물리 오류율 , 목표 논리 오류율 을 달성하려면 거리 가 필요하다. 이때 요구되는 물리 큐비트는 개다. 실용적 양자 응용을 위해서는 수백~수천 개의 논리 큐비트가 필요하므로, 수십만 개의 물리 큐비트가 요구된다는 추산이 일반적이다.
정리
표면 부호는 2차원 국소 연산, 높은 오류 임계값, 직관적인 신드롬 구조를 갖추어 현재 가장 실용적인 양자 오류 정정 방안이다. X형·Z형 안정자의 체커보드 배치가 비트 반전과 위상 반전 오류를 독립적으로 검출하게 하며, 거리 를 키울수록 논리 오류율이 지수적으로 억제된다. 다만 하나의 논리 큐비트를 보호하는 데 개의 물리 큐비트가 필요하다는 자원 overhead가 실용화의 핵심 과제로 남아 있다.
연습문제
Q1.거리 $d=5$ 회전 표면 부호에서 데이터 큐비트, 보조 큐비트, 안정자의 수를 각각 구하라.
힌트 보기
데이터 큐비트는 $d^2$개, 보조 큐비트는 $d^2-1$개이다.
해설 보기
데이터 큐비트: $5^2 = 25$개. 보조 큐비트: $25-1=24$개. X형 안정자: $(25-1)/2=12$개, Z형 안정자: 12개, 총 안정자 24개. 이 부호는 최대 $\lfloor(5-1)/2\rfloor = 2$개의 오류를 정정할 수 있다.
Q2.X형 안정자 $S_p^X$와 Z형 안정자 $S_q^Z$가 서로 같은 면(plaquette)에 배치될 때는 반가환하고, 다른 면에 배치될 때는 가환하는 이유를 파울리 교환 관계로 설명하라.
힌트 보기
$X_i Z_i = -Z_i X_i$이고, 같은 면에 놓인 두 안정자가 큐비트를 공유하는 수를 세어 보라.
해설 보기
체커보드 배치에서 같은 색의 면은 서로 데이터 큐비트를 공유하지 않으므로 가환한다. 만약 같은 큐비트 $i$에 $X_i$와 $Z_i$가 동시에 작용하면 부호 $(-1)$이 발생한다. 회전 표면 부호에서 인접한 X형·Z형 면은 정확히 **2개**의 데이터 큐비트를 공유하므로, $(-1)^2 = +1$이 되어 결국 가환한다. 이것이 모든 안정자 쌍이 가환하는 이유이며, 코드 공간의 일관성을 보장한다.
Q3.물리 오류율 $p=0.5\%$, 임계값 $p_{\text{th}}=1\%$일 때, 거리 $d=3$과 $d=5$에서의 논리 오류율 비율 $p_L(d=5)/p_L(d=3)$을 근사 공식으로 추정하라.
해설 보기
$p_L \propto (p/p_{\text{th}})^{\lfloor(d+1)/2\rfloor}$을 사용한다. $d=3$: 지수 $=\lfloor 4/2\rfloor=2$, $d=5$: 지수 $=\lfloor 6/2\rfloor=3$. $p/p_{\text{th}}=0.5$이므로, $p_L(d=3) \propto 0.5^2 = 0.25$, $p_L(d=5) \propto 0.5^3 = 0.125$. 따라서 비율은 $0.125/0.25 = 0.5$, 즉 거리를 3에서 5로 늘리면 논리 오류율이 절반으로 줄어드는 것을 확인할 수 있다.