표면 부호(Surface Code)의 격자 구조와 안정자 원리
표면 부호는 2차원 격자 위에 물리적 큐비트를 배열하여 하나의 논리 큐비트를 인코딩하는 위상론적 양자 오류 정정 부호다. 꼭짓점 연산자와 면 연산자를 안정자 생성원으로 사용하며, 증후군 측정과 최소 무게 완벽 매칭 디코딩을 통해 오류를 교정한다. 약 1%의 높은 오류 임계값과 국소 연결 구조 덕분에 현실적 내결함성 양자 컴퓨팅의 핵심 후보로 자리잡고 있다.
개념 소개
표면 부호(Surface Code)는 2차원 격자 위에 물리적 큐비트를 배치하고 안정자 형식론(Stabilizer Formalism)을 적용하여 논리 큐비트 하나를 인코딩하는 위상론적 양자 오류 정정 부호다. 키타에프(Kitaev)의 토릭 부호(Toric Code)를 평면 경계 조건으로 변형한 형태로, 현재 초전도 큐비트 플랫폼에서 가장 활발히 연구·구현되는 방식이다.
표면 부호가 선호되는 이유는 두 가지다. 첫째, 인접한 큐비트 사이의 게이트만 필요하므로 2차원 집적 회로 구조에 자연스럽게 대응된다. 둘째, 오류 임계값(error threshold)이 로, 현재 실험적으로 달성 가능한 물리 오류율 수준에 현실적인 목표를 제시한다.
핵심 원리
격자 구조
코드 거리(code distance) 의 표면 부호는 다음과 같은 큐비트 자원이 필요하다.
- 데이터 큐비트(data qubit): 개, 논리 정보를 저장
- 보조 큐비트(ancilla qubit): 개, 증후군 측정에 사용
체커보드 패턴으로 보조 큐비트를 두 종류로 구분한다: X형(꼭짓점 연산자용)과 Z형(면 연산자용).
안정자 생성원
코드 공간은 두 종류의 안정자 생성원으로 정의된다.
꼭짓점 연산자 (Vertex / Star operator)
X형 보조 큐비트 주변 데이터 큐비트 전체에 Pauli 를 적용한다.
면 연산자 (Plaquette operator)
Z형 보조 큐비트 주변 데이터 큐비트 전체에 Pauli 를 적용한다.
내부 안정자는 무게(weight) 4이며, 경계에 위치한 안정자는 무게 2 또는 3으로 줄어든다. 모든 와 는 서로 교환(commute)하고, 코드 공간은
로 정의된다. 이 공간의 차원은 , 즉 논리 큐비트 하나를 저장한다.
증후군 측정
오류가 발생하면 해당 Pauli 오류가 일부 안정자와 반교환(anticommute)하여 측정 결과가 로 반전된다. 이 패턴을 **증후군(syndrome)**이라 한다.
| 오류 종류 | 반응하는 안정자 |
|---|---|
| 오류 (비트 플립) | (Z형 면 연산자) |
| 오류 (위상 플립) | (X형 꼭짓점 연산자) |
| 오류 | 및 모두 |
보조 큐비트를 CNOT 회로로 안정자에 결합한 뒤 측정하면, 데이터 큐비트를 직접 교란하지 않고 증후군을 추출할 수 있다.
논리 연산자
논리 큐비트의 연산자 , 는 격자를 한쪽 경계에서 반대쪽 경계까지 관통하는 Pauli 체인으로 정의된다.
와 는 한 점에서 교차하므로 반교환 관계 를 만족한다. 논리 연산자의 최소 무게가 이므로 오류 정정 능력은
개의 오류까지 완전 수정 가능하다.
MWPM 디코더
증후군 그래프에서 꼭짓점 쌍을 최소 무게 완벽 매칭(Minimum Weight Perfect Matching, MWPM) 알고리즘으로 연결하여 가장 그럴듯한 오류 체인을 추정한다. Blossom 알고리즘이 대표적 구현이며, 최근에는 신경망 기반 디코더도 활발히 연구되고 있다.
예시·응용
표면 부호
부호는 데이터 큐비트 9개, 보조 큐비트 8개(X형 4개, Z형 4개)로 구성되며 단일 큐비트 오류 하나를 완벽히 교정한다. 구글의 Sycamore 프로세서에서 표면 부호의 반복 증후군 측정을 통해 거리 증가에 따른 논리 오류율 지수 감소가 실험적으로 확인된 바 있다.
아래는 Stim 라이브러리로 회전형 표면 부호 회로를 생성하는 예시다.
import stim
# 회전형(rotated) 표면 부호, Z-기저 메모리, 3 라운드
circuit = stim.Circuit.generated(
"surface_code:rotated_memory_z",
rounds=3,
distance=3,
after_clifford_depolarization=0.001, # 물리 오류율 0.1%
)
# 빠른 안정자 시뮬레이터로 샘플링
sampler = circuit.compile_detector_sampler()
detection_events, observable_flips = sampler.sample(
shots=10_000, separate_observables=True
)
print("증후군 이벤트 shape:", detection_events.shape)
논리 오류율 스케일링
물리 오류율 가 임계값 이하일 때 논리 오류율은 거리에 따라 지수적으로 감소한다.
예컨대 , 이면 에서 로 늘릴 때 논리 오류율은 약 배 줄어든다.
정리
표면 부호는 2차원 국소 연결, 높은 오류 임계값, 효율적 디코더라는 세 조건을 동시에 만족하는 현실적 내결함성 부호 체계다. 개의 데이터 큐비트를 격자에 배치하고, 꼭짓점 연산자 와 면 연산자 를 안정자 생성원으로 삼아 논리 큐비트 하나를 인코딩한다. 오류는 증후군 측정을 통해 비파괴적으로 감지되며, MWPM 디코딩으로 교정된다. 코드 거리 를 키울수록 논리 오류율이 지수적으로 억제되므로, 표면 부호는 대규모 내결함성 양자 컴퓨팅의 핵심 기반 기술로 자리잡고 있다.
연습문제
Q1.거리 $d=5$ 표면 부호에서 데이터 큐비트 수, 보조 큐비트 수, 정정 가능한 최대 오류 수를 각각 구하라.
힌트 보기
코드 거리 $d$에 대한 일반식 $d^2$, $(d^2-1)$, $\lfloor(d-1)/2\rfloor$를 적용한다.
해설 보기
데이터 큐비트 수: $5^2 = 25$개. 보조 큐비트 수: $5^2 - 1 = 24$개(X형 12개, Z형 12개). 정정 가능한 최대 오류 수: $t = \lfloor(5-1)/2\rfloor = 2$개.
Q2.표면 부호에서 $X$ 오류 하나가 격자 내부 데이터 큐비트에 발생했을 때, 어떤 종류의 안정자가 $-1$을 출력하며 몇 개나 반전되는가? 그 이유를 안정자 교환자 관계로 설명하라.
힌트 보기
$X$와 $Z$의 교환자 관계 $XZ = -ZX$를 떠올린다. 면 연산자 $B_p = \bigotimes Z_j$가 해당 큐비트를 포함하는 경우를 생각한다.
해설 보기
내부 데이터 큐비트에 $X$ 오류가 발생하면, 해당 큐비트를 지지(support)로 포함하는 면 연산자(Z형, $B_p$)와 반교환하여 그 측정 결과가 $-1$로 반전된다. 내부 큐비트는 최대 2개의 $B_p$에 속하므로 정확히 2개의 면 연산자가 $-1$을 보고한다. 꼭짓점 연산자 $A_v$는 $X$와 교환하므로($XX = +XX$) 반응하지 않는다.
Q3.표면 부호에서 논리 $\bar{Z}$ 연산자가 수직 방향 Z 체인으로 정의될 때, 이 연산자가 어떤 조건을 만족해야 코드 공간 위의 비자명 논리 연산자가 되는지 서술하라.
해설 보기
논리 연산자는 다음 두 조건을 동시에 만족해야 한다. 첫째, 모든 안정자 생성원과 교환해야 코드 공간을 불변으로 유지한다(즉, $[\bar{Z}, A_v] = 0$, $[\bar{Z}, B_p] = 0$). 둘째, 임의의 안정자 원소의 곱으로 표현될 수 없어야 비자명하다(non-trivial). 수직 Z 체인은 각 꼭짓점 연산자 $A_v$와 정확히 짝수 번 겹쳐 교환 관계를 유지하며, 동시에 안정자 군에 속하지 않아 비자명한 논리 연산자가 된다. 이 체인의 최소 무게가 $d$임이 코드 거리를 결정한다.