표면 부호(Surface Code)의 구조와 원리
표면 부호는 2차원 격자 위에 물리 큐비트를 배치하여 논리 큐비트를 오류로부터 보호하는 위상학적 양자 오류 정정 부호이다. 안정자 형식주의를 기반으로 플래킷(면) 연산자와 꼭짓점(별) 연산자를 측정하여 오류 증후군을 추출한다. 현재 가장 현실적인 하드웨어 구현 가능성을 지닌 양자 오류 정정 방식으로 평가받는다.
개념 소개
양자 연산의 근본적 장애물은 결잡음(decoherence)과 게이트 오류다. 고전 컴퓨터는 비트를 단순 복사하여 다수결로 오류를 복구하지만, 양자역학의 복사 불가 정리(no-cloning theorem) 때문에 큐비트를 그대로 복제할 수 없다. 표면 부호(Surface Code)는 이 제약 안에서 오류를 탐지·정정하는 가장 강력한 방법 중 하나다.
표면 부호의 핵심 아이디어는 정보를 단일 물리 큐비트에 저장하지 않고, 2차원 격자 위의 여러 물리 큐비트 사이의 집단적 상관관계 속에 인코딩하는 것이다. 격자의 크기(거리 )를 키울수록 하나의 논리 큐비트가 견딜 수 있는 오류의 수가 증가한다.
핵심 원리
1. 격자 구조
거리 인 표면 부호는 정방 격자를 기본으로 한다. 격자의 꼭짓점(vertex) 과 면(plaquette) 에 각각 특정 역할이 부여된다.
- 데이터 큐비트: 격자의 각 모서리(edge)에 배치. 총 개 (로토 부호 기준) 혹은 단순 개 (다양한 변형이 존재).
- 보조 큐비트(ancilla): 안정자를 측정하기 위해 꼭짓점 및 면 중앙에 배치.
가장 널리 사용되는 회전형(rotated) 표면 부호는 배열에 개의 데이터 큐비트와 개의 보조 큐비트를 사용하여 총 개의 물리 큐비트로 논리 큐비트 1개를 인코딩한다.
2. 안정자 연산자
표면 부호는 안정자 형식주의(stabilizer formalism) 로 기술된다. 코드 공간은 모든 안정자 연산자의 공통 고유 벡터로 정의된다.
두 종류의 안정자가 존재한다:
꼭짓점 연산자 (스타 연산자, ):
꼭짓점 에 인접한 모든 모서리의 데이터 큐비트에 파울리 연산자를 적용한다. 이 연산자는 형 오류(위상 오류)를 탐지한다.
면 연산자 (플래킷 연산자, ):
면 의 경계를 이루는 모서리의 데이터 큐비트에 파울리 연산자를 적용한다. 이 연산자는 형 오류(비트 반전 오류)를 탐지한다.
두 연산자는 서로 통근(commute)하며, 코드 공간은 다음을 만족한다:
3. 오류 증후군 추출
단일 오류가 모서리 에 발생하면, 를 경계로 공유하는 두 면 연산자 의 고유값이 에서 로 변한다. 이 고유값 패턴이 오류 증후군(error syndrome) 이다. 보조 큐비트를 이용한 4-큐비트 패리티 측정 회로로 안정자를 측정하고, 측정 결과가 인 위치에서 에니온(anyon) 여기(excitation)가 쌍으로 생성된다.
4. 논리 연산자
코드 공간 내에서 논리 큐비트를 조작하는 논리 연산자는 안정자와 통근하지만 안정자 군에 속하지 않는 연산자다.
여기서 는 격자를 가로지르는 -연산자 체인, 는 쌍대 격자를 가로지르는 -연산자 체인이다. 두 체인은 정확히 한 점에서 교차하여 을 만족한다.
5. 부호 거리와 오류 임계값
거리 인 표면 부호는 최대 개의 오류를 정정할 수 있다. 물리 오류율 가 오류 임계값 이하일 때, 를 증가시킬수록 논리 오류율이 지수함수적으로 감소한다:
예시·응용
최소 표면 부호 () 시뮬레이션 개요
import numpy as np
# d=3 회전형 표면 부호: 9 데이터 큐비트, 8 보조 큐비트
# 안정자 측정을 흉내 내는 간단한 예시
d = 3
n_data = d**2 # 9
n_ancilla = d**2 - 1 # 8
# 데이터 큐비트 상태 초기화 (0: 오류 없음, 1: X 오류)
data_qubits = np.zeros(n_data, dtype=int)
# 인위적 오류 주입 (3번 큐비트에 X 오류)
data_qubits[3] = 1
# 플래킷 안정자 정의 (예시: 각 면에 속한 큐비트 인덱스)
plaquettes = [
[0, 1, 3, 4], # 면 0
[1, 2, 4, 5], # 면 1
[3, 4, 6, 7], # 면 2
[4, 5, 7, 8], # 면 3
]
# 증후군 계산 (Z 안정자: X 오류를 탐지)
syndrome = []
for p in plaquettes:
parity = sum(data_qubits[i] for i in p) % 2
syndrome.append(parity)
print("오류 증후군:", syndrome)
# 출력: [1, 0, 1, 0] → 면 0과 면 2에서 -1 고유값 → 에니온 쌍
위 코드에서 에니온이 면 0과 면 2에 생성됨을 확인할 수 있다. 최소 가중치 완전 매칭(MWPM) 알고리즘은 에니온 쌍을 이어 최단 경로를 추정하고, 해당 경로의 역연산을 적용하여 오류를 정정한다.
실제 하드웨어 적용
Google의 초전도 큐비트 프로세서와 IBM의 양자 시스템은 표면 부호 실험의 주요 플랫폼이다. 표면 부호는 국소적 연결(local connectivity) 만 요구하기 때문에 2D 배열 형태의 초전도 회로에 자연스럽게 대응된다. 각 보조 큐비트는 인접한 4개 데이터 큐비트와만 상호작용하면 되므로 장거리 결합이 불필요하다.
정리
표면 부호는 2D 격자 위의 꼭짓점(, 형)·면(, 형) 안정자 집합으로 정의되며, 두 종류의 패리티 측정을 통해 비트 반전 오류와 위상 오류를 독립적으로 탐지한다. 거리 를 키우면 논리 오류율이 지수적으로 억제되고, 물리 오류 임계값(~1%)이 현실적인 수준에서 달성 가능하다는 점이 표면 부호를 내결함성 양자컴퓨팅의 핵심 후보로 만드는 이유다. 디코딩에는 주로 MWPM 알고리즘이 사용되며, 최근에는 신경망 기반 디코더 연구도 활발하게 진행되고 있다.
연습문제
Q1.거리 $d=5$인 회전형 표면 부호에서 필요한 물리 큐비트의 총 수와 정정 가능한 최대 오류 수를 구하라.
힌트 보기
회전형 표면 부호의 총 큐비트 수 공식은 $2d^2 - 1$이고, 정정 가능한 오류 수는 $\lfloor(d-1)/2\rfloor$이다.
해설 보기
총 물리 큐비트 수: $2(5)^2 - 1 = 49$개. 정정 가능한 최대 오류 수: $\lfloor(5-1)/2\rfloor = 2$개. 즉, 49개의 물리 큐비트로 논리 큐비트 1개를 인코딩하며 임의의 2개 오류까지 정정 가능하다.
Q2.꼭짓점 안정자 $A_v$와 면 안정자 $B_p$가 항상 통근($[A_v, B_p] = 0$)함을 증명하라.
힌트 보기
$A_v$와 $B_p$가 공유하는 모서리(데이터 큐비트)의 수를 세어보라. 파울리 연산자의 반통근 관계 $XZ = -ZX$를 활용하라.
해설 보기
격자의 구조상 꼭짓점 $v$의 스타와 면 $p$의 경계는 0개 또는 2개의 모서리를 공유한다. 공유 모서리가 0개이면 두 연산자는 독립적으로 통근한다. 공유 모서리가 2개이면, 각 공유 큐비트에서 $XZ = -ZX$로 인해 부호가 $(-1)$씩 두 번 곱해져 $(-1)^2 = +1$이 되므로 전체적으로 통근한다. 따라서 $[A_v, B_p] = 0$.
Q3.논리 오류율 공식 $p_L \sim (p/p_{\text{th}})^{(d+1)/2}$에 따를 때, 물리 오류율이 $p = 0.1\%$이고 임계값이 $p_{\text{th}} = 1\%$일 때 거리를 $d=3$에서 $d=5$로 늘리면 논리 오류율은 몇 배 감소하는가?
해설 보기
$d=3$일 때: $p_L \propto (0.1/1)^{2} = 10^{-4}$. $d=5$일 때: $p_L \propto (0.1/1)^{3} = 10^{-6}$. 따라서 논리 오류율은 약 $10^{-6}/10^{-4} = 1/100$, 즉 100배 감소한다. 거리를 2 늘릴 때마다 $(p/p_{\text{th}})$의 거듭제곱이 1씩 증가하여 지수적 개선이 이루어짐을 확인할 수 있다.