비트코인암호학 심화

슈노르 서명과 비트코인: 암호학적 업그레이드

슈노르 서명의 수학적 기반부터 ECDSA 대비 장점, 키 집계, MuSig2, 배치 검증, BIP-340을 통한 탭루트 통합까지 심층적으로 탐구합니다.

· 9분

비트코인 존재의 첫 12년 동안 모든 트랜잭션 서명은 타원 곡선 디지털 서명 알고리즘(ECDSA)에 의존했다. 작동했다. 하지만 최적의 선택은 아니었다. 사토시 나카모토가 ECDSA를 선택한 것은 널리 사용 가능하고, 잘 이해되어 있으며, 결정적으로 특허 제약이 없었기 때문이다. 수학적으로 우월한 대안인 슈노르 서명 체계는 발명자 클라우스-페터 슈노르가 보유한 특허에 묶여 있었다. 1989년에 출원되어 1991년에 부여된 그 특허는 2008년에 만료되었다 — 사토시가 비트코인 백서를 발표한 바로 그 해. 타이밍이 불행했다. 2009년 1월 비트코인이 출시될 때까지 ECDSA는 이미 코드베이스에 깊이 내장되어 있었다.

10년 이상, 세 개의 비트코인 개선 제안(BIP), 그리고 세그윗 이후 최대의 합의 업그레이드가 결국 슈노르 서명을 비트코인에 도입했다. 2021년 11월 14일, 블록 높이 709,632에서 탭루트가 활성화되었고, BIP-340이 슈노르 서명을 비트코인의 네이티브 서명 체계로 도입했다. 이것은 단순한 암호학적 교체가 아니었다 — 키 집계, 배치 검증, 복잡한 트랜잭션의 프라이버시 강화, 그리고 ECDSA가 결코 지원할 수 없었던 미래 프로토콜 최적화의 길을 여는 기반적 개선이었다.

역사: 클라우스-페터 슈노르와 특허 문제

클라우스-페터 슈노르는 프랑크푸르트 대학교의 독일 수학자이자 교수로, 1989년에 자신의 서명 체계를 발표했다. 이 체계는 동시대 다른 것들에 비해 우아할 정도로 간단했다. 1991년 NIST가 표준화한 DSA(디지털 서명 알고리즘)가 슈노르의 특허를 피하기 위해 설계된 복잡한 모듈러 산술을 요구한 반면, 슈노르의 접근법은 직접적이고, 수학적으로 깨끗하며, 표준 암호학적 가정 하에 증명 가능하게 안전했다.

슈노르의 미국 특허 4,995,082는 1991년 2월 19일에 부여되었으며, 17년 기간을 가졌다. 2008년 2월 19일에 만료되었다.

특허의 존재는 암호학적 지형에 심대한 영향을 미쳤다. NIST는 특허된 알고리즘을 표준화할 수 없어 DSA를 특허 없는 대안으로 개발했다. DSA는 덜 효율적이었고 슈노르의 바람직한 수학적 속성 중 일부가 부족했지만, 무료로 사용할 수 있었다. 타원 곡선 암호학이 등장했을 때, ECDSA(DSA의 타원 곡선 변형)는 이러한 동일한 한계를 물려받았다. 전 산업이 우월한 것이 특허되었기 때문에 열등한 서명 체계를 채택했다.

수학적 기반

슈노르 서명이 왜 우월한지 이해하려면 두 체계의 수학을 검토해야 한다. 둘 다 타원 곡선에서 작동한다 — 구체적으로 비트코인은 secp256k1 곡선을 사용한다. 둘의 보안은 타원 곡선 이산 로그 문제(ECDLP)의 난이도에 의존한다: 곡선 위의 점 P = k × G(G는 생성점, k는 스칼라)가 주어졌을 때, P로부터 k를 결정하는 것은 계산적으로 실행 불가능하다.

슈노르 서명 체계

키 생성:

  • 무작위 개인키 x(256비트 정수) 선택
  • 공개키 P = x × G(secp256k1 위의 점) 계산

서명 (메시지 m에 대해 개인키 x로):

  1. 무작위 논스 r 선택 (각 서명에 대해 고유하고 비밀이어야 함)
  2. 논스 점 R = r × G 계산
  3. 챌린지 e = H(R || P || m) 계산 (H는 해시 함수, ||는 연결)
  4. s = r + e × x 계산 (단순 스칼라 산술, 모듈러 역원 불필요)
  5. 서명은 쌍 (R, s)

검증 (공개키 P, 메시지 m, 서명 (R, s)가 주어졌을 때):

  1. e = H(R || P || m) 계산
  2. s × G = R + e × P 확인

이것이 작동하는 이유:

s × G = (r + e × x) × G = r × G + e × x × G = R + e × P

비교를 위한 ECDSA

서명 (메시지 해시 z에 대해 개인키 d로):

  1. 무작위 논스 k 선택
  2. (x₁, y₁) = k × G 계산
  3. r = x₁ mod n 계산 (x 좌표만 취함)
  4. s = k⁻¹ × (z + r × d) mod n 계산 (k의 모듈러 역원 필요)
  5. 서명은 (r, s)

대비가 즉각적이다. ECDSA는 모듈러 역원 연산(계산적으로 비용이 큼)을 요구하고, 논스 점의 y 좌표를 버리며(정보 손실), 더 복잡한 검증 방정식을 포함한다. 슈노르 체계는 선형적이고, 단순한 덧셈과 곱셈을 사용하며, 전체 논스 점을 보존한다.

ECDSA 대비 장점

1. 선형성이 키 및 서명 집계를 가능하게 함

슈노르 서명의 가장 중요한 장점은 선형성이다. 슈노르 체계에서 서명 방정식 s = r + e × x는 개인키 x와 논스 r 모두에서 선형이다. 이는 여러 서명자의 서명을 단순한 덧셈을 통해 결합할 수 있음을 의미한다.

개인키 x₁x₂를 가진 두 서명자의 경우:

  • 집계 공개키: P_agg = P₁ + P₂ = (x₁ + x₂) × G
  • 각각이 부분 서명을 계산하면: s₁ = r₁ + e × x₁, s₂ = r₂ + e × x₂
  • 집계 서명: s_agg = s₁ + s₂ = (r₁ + r₂) + e × (x₁ + x₂)

이 집계 서명은 개인키 (x₁ + x₂)와 논스 (r₁ + r₂)를 가진 단일 서명자 슈노르 서명과 구별할 수 없다. 검증자는 서명이 한 사람에 의해 생성되었는지 백 명에 의해 생성되었는지 알 수 없다.

ECDSA에는 이 선형성이 없다. 서명 방정식의 모듈러 역원이 덧셈 구조를 파괴한다.

2. 증명 가능한 보안

슈노르 서명은 랜덤 오라클 모델(ROM) 하에서 형식적 보안 증명을 가진다. 구체적으로, 이산 로그 가정 하에서 증명 가능하게 안전하다 — 공격자가 슈노르 서명을 위조할 수 있다면 이산 로그 문제를 풀 수 있으며, 이는 계산적으로 실행 불가능하다고 믿어진다.

ECDSA에는 비교할 만한 보안 증명이 없다. ECDSA에 대한 실용적 공격은 알려져 있지 않지만, 형식적 증명의 부재는 수학적 확실성 대신 경험적 증거에 의존함을 의미한다.

3. 비가변성

주어진 메시지와 키 쌍에 대한 슈노르 서명은 정확히 하나의 유효한 형태만 가진다. 유효한 서명을 같은 메시지에 대해 다른 유효한 서명으로 변환할 방법이 없다.

ECDSA 서명은 가변적이다: 유효한 서명 (r, s)가 주어졌을 때, 쌍 (r, n - s)도 같은 메시지에 대해 유효한 서명이다. 이 가변성이 세그윗 이전 비트코인을 괴롭힌 트랜잭션 가변성 문제의 근본 원인이었다.

4. 배치 검증

슈노르 서명은 효율적인 배치 검증을 지원한다. 노드가 수천 개의 트랜잭션이 포함된 블록을 수신할 때, 각 서명의 개별 검증은 계산적으로 비용이 크다.

슈노르에서는 여러 서명을 단일 다중 지수 연산으로 함께 검증할 수 있다:

(∑ s_i) × G = ∑ R_i + ∑ (e_i × P_i)

실제로 배치 검증은 일반적인 블록 검증에 대해 약 2-3배의 속도 향상을 제공한다. 2,000개 트랜잭션과 평균 1.5개 입력(3,000개 서명)이 있는 블록의 경우, 이는 검증 시간의 의미 있는 감소를 나타낸다.

키 집계: MuSig과 MuSig2

순진한 접근법과 그 취약점

앞서 설명한 간단한 접근법 — 공개키와 부분 서명을 더하는 것 — 은 “악의적 키(rogue key)” 공격에 취약하다. 적대자가 자신의 키를 커밋하기 전에 다른 참가자의 공개키를 보면, 자신의 키를 P_attack = P_attack_secret × G - P₁ - P₂ - ...로 선택하여 집계 키 P_agg = P_attack_secret × G로 만들 수 있다.

MuSig: 최초의 안전한 프로토콜

MuSig(2018년 Maxwell, Poelstra, Seurin, Wuille가 발표)은 키 집계 계수를 도입하여 악의적 키 문제를 해결했다. 각 참가자의 공개키에 모든 공개키의 해시에서 파생된 계수를 곱한다:

a_i = H(L || P_i)  여기서 L = H(P₁ || P₂ || ... || P_n)
P_agg = ∑ (a_i × P_i)

MuSig는 세 라운드의 통신이 필요하다:

  1. 커밋먼트 라운드: 각 서명자가 논스에 커밋 (논스 점의 해시 전송)
  2. 논스 교환: 각 서명자가 논스 점을 공개
  3. 서명: 각 서명자가 부분 서명을 계산하고 공유

MuSig2: 두 라운드, 실용적 효율

MuSig2(2020년 Nick, Ruffing, Seurin이 발표)는 각 서명자가 하나 대신 두 개의 논스를 사용하게 하여 프로토콜을 두 라운드로 줄였다. 첫 번째 라운드(논스 교환)는 서명할 메시지가 알려지기 전에 미리 수행할 수 있어, 실질적으로 많은 시나리오에서 비대화식이 된다.

MuSig2의 두 라운드 구조:

  1. 논스 라운드 (미리 수행 가능): 각 서명자가 두 논스 쌍 (R_{i,1}, R_{i,2})을 생성하고 공유
  2. 서명 라운드: 메시지가 주어지면, 각 서명자가 결합 논스를 계산하고 부분 서명을 계산

MuSig2는 슈노르 서명을 사용하는 비트코인 멀티시그 운영에 실제로 구현된 프로토콜이다.

탭루트 통합: BIP-340

BIP-340은 Pieter Wuille, Jonas Nick, Tim Ruffing이 작성했으며, 비트코인에서 사용되는 정확한 슈노르 서명 체계를 명시한다.

X-Only 공개키

BIP-340은 “x-only” 공개키를 사용한다 — 전체 33바이트 압축 공개키(y 좌표의 패리티를 나타내는 접두사 바이트 포함) 대신 타원 곡선 점의 32바이트 x 좌표만 사용한다. 이는 트랜잭션 출력당 1바이트를 절약한다.

태그된 해시

BIP-340은 교차 프로토콜 공격을 방지하기 위해 “태그된 해시”를 사용한다:

TaggedHash(tag, data) = SHA-256(SHA-256(tag) || SHA-256(tag) || data)

다른 연산은 다른 태그를 사용한다. 이는 한 목적으로 계산된 해시가 다른 목적의 유효한 해시로 재해석될 수 없도록 보장한다.

탭루트(BIP-341)와의 통합

탭루트에서 모든 출력은 단일 32바이트 공개키(“출력 키”)로 인코딩된다:

  1. 키 경로 지출: 출력 키에 슈노르 서명으로 직접 서명. 다른 단일 키 지출과 구별 불가능. MuSig2를 통한 여러 키의 집계라도 온체인 풋프린트는 단일 키 트랜잭션과 동일.

  2. 스크립트 경로 지출: 출력 키가 내부 키의 “트위크된” 버전이며, 트위크가 지출 스크립트의 머클 트리에 커밋.

멀티시그 프라이버시에 대한 함의

탭루트 이전에 2-of-3 멀티시그 트랜잭션은 블록체인에서 즉시 식별 가능했다. scriptPubKey에 OP_2, 세 공개키, OP_3, OP_CHECKMULTISIG가 포함되어 있었다. 블록체인을 분석하는 누구나 볼 수 있었다:

  • 멀티시그 트랜잭션이라는 것
  • 정확한 임계값 (2-of-3)
  • 관련된 세 공개키 모두

슈노르/MuSig2 키 집계를 탭루트와 함께 사용하면:

  • 온체인 출력은 단일 32바이트 공개키
  • 지출 트랜잭션은 단일 64바이트 슈노르 서명 포함
  • 서명자 수, 임계값, 개별 공개키를 관찰자가 결정할 수 없음

이 프라이버시 개선은 모든 협력적 지출에 적용된다. 모든 트랜잭션 유형이 온체인에서 동일하게 보이면, 전체 트랜잭션 그래프가 더 프라이빗해진다.

교차 입력 서명 집계: 미래

슈노르의 선형성이 가능하게 하는 가장 기대되는 미래 개선 중 하나는 교차 입력 서명 집계(CISA)다. 현재 비트코인에서 모든 트랜잭션 입력은 자체 서명이 필요하다. 10개 입력을 소비하는 트랜잭션은 각 64바이트씩 10개의 별도 서명이 필요하다.

CISA를 사용하면 트랜잭션의 모든 서명을 단일 서명으로 집계할 수 있다:

  • 10입력 트랜잭션: 10 × 64 = 640바이트의 서명 → 64바이트 (하나의 집계 서명)
  • 10입력 트랜잭션당 약 576바이트의 공간 절약

네트워크 수준에서 CISA는 트랜잭션에 필요한 총 데이터를 약 20-30% 줄여, 블록 크기 증가 없이 비트코인의 처리량을 효과적으로 늘릴 것이다. 또한 CoinJoin 트랜잭션에 대한 자연적 경제적 인센티브를 만들 것이다 — 여러 당사자의 입력을 단일 트랜잭션으로 결합하면 서명 오버헤드가 공유되므로 입력당 비용이 별도 트랜잭션보다 저렴해진다.

CISA는 아직 비트코인에 구현되지 않았다. 소프트 포크가 필요하며 다른 프로토콜 기능과의 상호작용에 관한 기술적 도전에 직면해 있다. 하지만 활발히 연구되고 있으며 탭루트가 확립한 슈노르 기반의 가장 설득력 있는 실용적 이점 중 하나를 대표한다.

현재 비트코인에 대한 실질적 영향

2026년 초 기준 탭루트 채택은 꾸준히 성장하고 있다:

  • 탭루트 지출 트랜잭션: 모든 트랜잭션의 약 35-40%가 탭루트 입력 사용
  • 탭루트 출력: 새로운 출력의 45% 이상이 탭루트(P2TR) 주소로 생성
  • 키 경로 지출: 탭루트 지출의 대다수가 키 경로를 사용하며, 슈노르의 효율성과 프라이버시 장점을 누림

주요 지갑 소프트웨어(Bitcoin Core, Sparrow, BlueWallet, Electrum)가 탭루트 주소를 지원한다. 라이트닝 네트워크는 점점 더 탭루트 채널을 사용하며, 채널 개설 및 협력적 종료 트랜잭션에 MuSig2 키 집계의 혜택을 받는다.

결론

슈노르 서명은 비트코인 역사상 가장 중요한 암호학적 업그레이드를 대표한다. 클라우스-페터 슈노르의 1989년 특허가 수십 년간 막았던 것을 탭루트가 마침내 실현했다: 수학적으로 우아하고, 증명 가능하게 안전하며, 효율적으로 집계 가능하고, 본질적으로 프라이버시를 보존하는 서명 체계.

비트코인은 처음 12년을 충분히 좋은 서명 체계로 보냈다. 나머지 존재 기간은 올바른 것으로 보낼 것이다.

관련 글