표면 부호(Surface Code)의 구조와 안정자 형식론
표면 부호는 2차원 격자 위에 배치된 물리 큐비트와 근접 이웃 결합만으로 하나의 논리 큐비트를 인코딩하는 위상학적 안정자 부호다. X형·Z형 안정자의 증후군 측정을 통해 데이터를 파괴하지 않고 오류 위치를 추론하며, 약 1%에 달하는 높은 오류 임계값 덕분에 현재 내결함성 양자컴퓨터의 핵심 후보 아키텍처로 주목받는다.
개념 소개
표면 부호는 Kitaev의 토릭 부호(toric code)를 평면 경계 조건으로 수정한 안정자 부호다. 핵심 특징은 근접 이웃 결합만으로 구현 가능하다는 점이다. 대다수의 오류 정정 부호가 원거리 큐비트 사이의 게이트를 요구하는 반면, 표면 부호는 격자 위 인접 큐비트 사이의 상호작용만 사용한다. 이 덕분에 초전도 회로, 이온 트랩 등 2차원 배치가 자연스러운 하드웨어와 잘 부합하며, Google과 IBM 모두 대규모 내결함성 양자컴퓨터 로드맵에 표면 부호를 채택하고 있다.
핵심 원리
안정자 형식론
표면 부호는 안정자 부호(stabilizer code)의 일종이다. 개 물리 큐비트의 힐베르트 공간에서, 파울리 군 의 교환 가능한 부분군 (안정자 군)를 정의하고, 모든 원소에 대해 고유값을 갖는 상태들의 부분공간을 논리 부호공간으로 삼는다:
개의 독립 안정자 생성원이 있을 때 개의 논리 큐비트가 인코딩된다.
회전 표면 부호의 격자 구조
실용적으로 가장 많이 쓰이는 **회전 표면 부호(rotated surface code)**는 격자 절점에 데이터 큐비트를 배치한다. 거리(code distance) 인 부호의 구성 요소는 다음과 같다.
| 구성 요소 | 수량 |
|---|---|
| 데이터 큐비트 | |
| X형 안정자 (보조 큐비트) | |
| Z형 안정자 (보조 큐비트) | |
| 논리 큐비트 | 1 |
격자를 체스판으로 시각화하면, 흰 셀마다 X형 안정자, 검은 셀마다 Z형 안정자가 대응된다. 내부 셀의 안정자는 네 꼭짓점의 데이터 큐비트에 파울리 연산자를 동시에 적용하는 4체 연산자이고, 경계 셀은 2체 연산자다:
임의의 X형 안정자와 Z형 안정자는 격자 위에서 공유하는 큐비트 수가 항상 짝수(0 또는 2)이므로 서로 교환 가능하다(). 이것이 군 의 교환 가능성 조건을 만족시킨다.
증후군 측정과 오류 검출
보조 큐비트를 CNOT 회로로 데이터 큐비트와 결합한 뒤 보조 큐비트를 측정하면, 데이터 큐비트를 파괴하지 않고도 각 안정자의 고유값 을 얻을 수 있다. 이를 **증후군 측정(syndrome measurement)**이라 한다.
- 오류 없음 → 모든 안정자
- 데이터 큐비트 에 오류 발생 → 큐비트 를 포함하는 X형 안정자만 로 반전
는 와 반교환()하므로, 해당 X형 안정자의 측정값이 뒤집히는 것이다. Z형 안정자는 와 교환하므로 영향받지 않는다. 반대로 오류는 Z형 안정자만 들뜨게 한다.
디코더(decoder)는 을 반환한 안정자 집합(증후군)을 입력받아 가장 가능성 높은 오류 패턴을 추론하고 수정 연산을 적용한다. 가장 대표적인 디코딩 알고리즘은 **최소 가중치 완전 매칭(minimum-weight perfect matching, MWPM)**이다.
논리 연산자와 부호 거리
논리 파울리 연산자 와 는 안정자 군의 원소가 아니면서 부호공간을 보존하는 연산자다. 회전 표면 부호에서 이들은 각각 격자의 한 경계에서 반대 경계까지 이어지는 파울리 체인이다.
이 체인의 최소 길이, 즉 논리 연산자의 최소 무게가 부호 거리 다. 거리 부호는 최대 개의 임의 단일 큐비트 오류를 정정할 수 있다.
예시·응용
거리-3 표면 부호 시뮬레이션
# Stim 라이브러리로 거리-3 회전 표면 부호 회로 생성
import stim
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=1000, separate_observables=True
)
print(f"검출 이벤트 형상: {detection_events.shape}")
이면 데이터 큐비트 9개, 안정자 8개로 단 하나의 논리 큐비트를 인코딩하며, 임의의 단일 큐비트 오류 1개를 정정할 수 있다.
오류 역치와 물리 큐비트 오버헤드
물리 오류율 가 임계값 이하일 때, 거리 를 늘릴수록 논리 오류율이 지수적으로 감소한다:
디폴라라이징 잡음 모형에서 수치 시뮬레이션으로 추정한 표면 부호의 임계값은 다. 현재 초전도 소자의 게이트 오류율이 수준이므로 원칙적으로 역치 이하 동작이 가능하다.
그러나 오버헤드가 크다. 거리 표면 부호는 총 개의 물리 큐비트로 논리 큐비트 1개를 구현하며, 실용적인 알고리즘 수행을 위해 이 필요하다고 추산되므로 논리 큐비트 하나당 최소 수백수천 개의 물리 큐비트가 필요하다.
정리
표면 부호는 2차원 격자의 X형·Z형 안정자로 하나의 논리 큐비트를 인코딩하고, 증후군 측정을 통해 비파괴적으로 오류를 검출·정정한다. 근접 이웃 결합, 높은 오류 임계값(), MWPM 디코딩의 효율성이 결합되어 현재 내결함성 양자컴퓨터의 가장 유력한 후보 아키텍처로 자리잡았다. 부호 거리 를 늘릴수록 논리 오류율은 지수적으로 감소하지만, 물리 큐비트 수는 으로 증가하는 트레이드오프가 핵심 공학 과제로 남아 있다.
연습문제
Q1.거리-5 회전 표면 부호의 데이터 큐비트 수, X형 안정자 수, Z형 안정자 수, 총 물리 큐비트 수를 각각 구하라.
힌트 보기
공식 $d^2$, $(d^2-1)/2$, $2d^2-1$을 적용한다.
해설 보기
$d=5$이면 데이터 큐비트 $5^2 = 25$개, X형 안정자 $(25-1)/2 = 12$개, Z형 안정자 12개, 총 물리 큐비트 $2 \times 25 - 1 = 49$개다. 인코딩 비율은 1/49로, 하나의 논리 큐비트에 49개의 물리 큐비트가 사용된다.
Q2.내부 데이터 큐비트에 $X$ 오류가 발생했을 때, 들뜨는(측정값이 $-1$이 되는) 안정자의 종류와 그 이유를 설명하라.
해설 보기
Z형 안정자만 들뜬다. $X$ 오류 $X_i$는 같은 큐비트 위치의 $Z_i$와 반교환($\{X_i, Z_i\} = 0$)하므로, 큐비트 $i$를 포함하는 Z형 안정자 $S_Z = Z_a Z_b Z_c Z_d$의 기대값이 $+1$에서 $-1$로 뒤집힌다. X형 안정자는 $X_i$와 교환하므로($[X_i, X_j] = 0$) 영향받지 않는다.
Q3.물리 오류율이 $p = 0.5\%$이고 임계값이 $p_{th} = 1\%$일 때, 거리를 $d=3$에서 $d=5$로 증가시키면 논리 오류율의 지수는 어떻게 변하는가? $p_L \approx A(p/p_{th})^{\lfloor(d+1)/2\rfloor}$ 공식을 사용하라.
힌트 보기
$\lfloor(d+1)/2\rfloor$의 값을 $d=3$과 $d=5$에 대해 각각 계산한다.
해설 보기
$d=3$일 때 지수 $\lfloor 4/2 \rfloor = 2$, $d=5$일 때 지수 $\lfloor 6/2 \rfloor = 3$이다. $p/p_{th} = 0.5$ 이므로 $p_L \propto (0.5)^2 = 0.25$ → $(0.5)^3 = 0.125$로, 거리 증가로 논리 오류율이 절반으로 추가 감소한다. 거리를 계속 늘릴수록 지수가 선형 증가하고 논리 오류율은 지수적으로 억제된다.