Cryptology Academy · 강의

시그마 프로토콜과 Schnorr 식별

시그마 프로토콜을 구현하고 Schnorr 증명이 작동하는 과정을 추적합니다.

레슨 2/413개 단계

시그마 프로토콜과 Schnorr 식별은(는) CoddyKit의 무료 Cryptology Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cryptology Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

시그마 프로토콜 구조

시그마 프로토콜에는 3개의 메시지가 있습니다. (1) 커밋: 증명자가 무작위 값에 대한 커밋먼트를 보냅니다. (2) 도전: 검증자가 무작위 도전을 보냅니다. (3) 응답: 증명자가 도전과 비밀을 사용해 계산한 응답을 보냅니다. 검증자는 수락하거나 거부합니다.

Schnorr 식별

증명자는 비밀 x(개인 키)를 알고 있으며, 공개 키는 g^x mod p입니다(또는 타원 곡선 위의 점 X = x*G입니다). 목표는 x를 공개하지 않고 x를 알고 있음을 증명하는 것입니다. 이는 이산 로그 지식 증명입니다.

Schnorr 프로토콜 단계

(1) 증명자가 무작위 r을 선택하고 커밋먼트 R = r*G를 보냅니다. (2) 검증자가 도전 c(무작위 정수)를 보냅니다. (3) 증명자가 응답 s = r + c*x를 보냅니다. (4) 검증자가 s*G == R + c*X인지 확인합니다. 참이면 수락합니다. 증명자는 x를 알고 있으며, 응답 s는 x가 있어야만 계산할 수 있습니다.

보안 분석

완전성: 정직한 증명자는 항상 s*G = r*G + c*x*G = R + c*X를 만족합니다. 건전성: 같은 R에 서로 다른 도전 c, c'를 사용한 두 대화 기록에서는 s, s'가 나오며, 여기서 x = (s-s')/(c-c')를 복구할 수 있습니다. 따라서 사기꾼은 같은 R에 대해 유효한 응답 두 개를 만들 수 없습니다.

Schnorr의 영지식

시뮬레이터(x를 알지 못함)는 무작위 s와 c를 선택하고 R = s*G - c*X로 설정합니다. 이 (R, c, s)는 유효한 대화 기록 분포를 이룹니다. 검증자는 실제 대화 기록과 시뮬레이션된 대화 기록을 구별할 수 없습니다. Schnorr는 정직한 검증자 영지식입니다.

Fiat-Shamir 변환

Schnorr를 비대화형으로 만들려면 검증자의 도전을 c = 해시(R || 메시지)로 바꿉니다. 증명자가 직접 c를 계산하고 응답합니다. 그 결과 누구나 검증할 수 있는 2개 원소 증명(R, s)이 만들어집니다. 이것이 Schnorr 서명 체계입니다.

Schnorr 서명

서명(x, m): r ← 무작위; R = r*G; c = 해시(R||m); s = r + c*x. 서명 = (R, s). 검증: s*G == R + 해시(R||m)*X. 간결하고(P-256에서 64바이트), 일괄 검증이 가능하며, ROM에서 보안성이 증명되었습니다. Bitcoin Taproot(BIP-340)에 채택되었습니다.

Pedersen 커밋먼트

C = r*G + v*H이며, H는 두 번째 독립 생성자입니다. 무작위성 r을 사용해 값 v에 커밋합니다. 결속성: 서로 다른 v로 열 수 없습니다(이산 로그). 은닉성: C가 균등하게 분포됩니다. Schnorr 기반 범위 증명과 Bulletproofs에 사용됩니다.

구성: AND 증명

x1 AND x2를 알고 있음을 동시에 증명하려면 같은 도전을 사용해 Schnorr 프로토콜 두 개를 실행합니다(Fiat-Shamir를 통해 도전을 공유합니다). 검증자는 두 하위 증명이 모두 유효한 경우에만 수락합니다. 하나의 상호 작용으로 여러 명제를 증명할 수 있습니다.

구성: OR 증명

어느 쪽인지 공개하지 않고 x1 OR x2를 알고 있음을 증명하려면 한 분기에 시뮬레이터를 사용해 가짜 대화 기록을 계산한 다음, 두 분기에 도전을 나눕니다. 검증자에게는 실제 도전의 합을 이루는, 모두 유효해 보이는 두 대화 기록이 보입니다. 이를 "링 서명"이라고 합니다.

응용

Schnorr ID: 전자 여권(PACE 프로토콜). Schnorr 서명: Bitcoin Taproot, Monero(RingCT가 Schnorr OR 증명을 사용함), Signal Protocol(X3DH 키 합의). Pedersen 커밋먼트: 기밀 거래, Bulletproofs, Zcash Sapling 노트 암호화.

빠른 확인

Schnorr 식별 프로토콜에서 검증자는 마지막 단계에 무엇을 확인합니까?

복습

시그마 프로토콜: 커밋-도전-응답. Schnorr는 이산 로그를 알고 있음을 증명합니다. Fiat-Shamir는 이를 비대화형으로 만듭니다(Schnorr 서명). 다음 주제: 간결한 비대화형 증명을 위한 zk-SNARK

무료로 시작

AI 튜터와 함께 Cryptology Academy을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
67
레슨
261

자주 묻는 질문

“시그마 프로토콜과 Schnorr 식별” 강의는 무료인가요?

네 — “시그마 프로토콜과 Schnorr 식별” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cryptology Academy 강의 전체를 잠금 해제할 수 있습니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“시그마 프로토콜과 Schnorr 식별”에서 뭘 배우나요?

시그마 프로토콜을 구현하고 Schnorr 증명이 작동하는 과정을 추적합니다. 브라우저에서 직접 실행하는 실습 코드로 Cryptology Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cryptology Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cryptology Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“시그마 프로토콜과 Schnorr 식별” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cryptology Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cryptology Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. ZKP 직관: 알리바바의 동굴
  2. 시그마 프로토콜과 Schnorr 식별
  3. zk-SNARK: 간결한 비대화형 논증
  4. ZKP 활용: ZK 롤업과 프라이버시 코인
← Cryptology Academy(으)로 돌아가기