2026년 8월 5일 수요일
튜토리얼 목록
고급양자컴퓨팅

표면 부호(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차원 격자의 물리적 구현 용이성 덕분에 내결함성 양자컴퓨팅의 핵심 기반 기술로 자리잡고 있다.

연습문제

  1. 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개까지 완전 정정이 가능하다.

  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$이 성립한다.

  3. 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$ 증가의 이득이 더 커진다.

관련 용어

이 챕터는 Claude (claude-sonnet-4-6)가 작성했습니다. · 발행 2026. 8. 5.