슈노르 서명 (Schnorr Signature)
슈노르 서명(Schnorr Signature)은 독일 암호학자 클라우스 슈노르(Claus Schnorr)가 1989년 제안한 전자서명으로, 이산 로그 문제에 안전성을 둡니다. 구조가 단순하고 선형적이어서 여러 서명과 키를 하나로 합치기 쉽고, Bitcoin은 2021년 Taproot 업그레이드로 BIP-340 슈노르 서명을 도입했습니다.
자세히 알아보기
개인 키 x, 공개 키 P = x·G일 때 서명은 다음과 같습니다. ① 비밀 난수 k로 R = k·G를 계산합니다. ② 도전값 e = H(R ‖ P ‖ m). ③ s = k + e·x. 서명은 (R, s)이고, 검증자는 s·G = R + e·P가 성립하는지 확인합니다. 대화형 신원 증명 프로토콜에 피아트-샤미르 변환을 적용한 형태이며, 랜덤 오라클 모델에서 안전성이 증명되어 있습니다.
ECDSA와 비교한 장점은 세 가지입니다. 첫째, 증명 가능한 안전성과 단순한 구현. 둘째, 선형성 덕분에 여러 공개 키를 하나의 집계 키로 합치고 함께 하나의 서명을 만들 수 있습니다(MuSig2, BIP-327). 셋째, 여러 서명을 한꺼번에 빠르게 검증하는 일괄 검증이 가능합니다. 또한 BIP-340 형식은 서명 가변성 문제가 없습니다.
슈노르 서명은 오랫동안 특허 문제로 널리 표준화되지 못했고, 그 사이 DSA·ECDSA가 먼저 보급되었습니다. 오늘날 EdDSA(Ed25519)도 슈노르 계열 서명이며, 임계값 서명 표준인 FROST(RFC 9591)도 슈노르 구조를 기반으로 합니다. 난수 k를 재사용하면 개인 키가 노출되는 점은 ECDSA와 같으므로 결정적 또는 충분히 안전한 난수 생성이 필수입니다.
블록체인·암호화폐에서는
Bitcoin은 2021년 11월 블록 709,632에서 Taproot(BIP-340/341/342)를 활성화하며 secp256k1 위 슈노르 서명을 도입했습니다. BIP-340 서명은 64바이트, 공개 키는 x좌표만 쓰는 32바이트입니다. 다자간 지갑이 MuSig2로 키를 집계하면 블록체인에는 일반 단일 서명처럼 보여 수수료가 줄고 프라이버시가 좋아집니다. Polkadot의 sr25519도 슈노르 계열 서명입니다.
쉽게 말하면
여러 사람이 함께 하나의 도장을 찍을 수 있는 서명입니다. 밖에서 보면 한 사람이 찍은 도장과 구분되지 않습니다.
예시
3명이 MuSig2로 키를 합치면 공개 키 1개(32바이트)와 서명 1개(64바이트)만 블록체인에 기록됩니다. 기존 3-of-3 멀티시그 스크립트보다 데이터가 훨씬 적습니다.
이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.