컴퓨터공학
Public Key Cryptography공개키 암호화
공개키 암호화(Public Key Cryptography, 비대칭 암호화)는 수학적으로 연결된 개인키(Private Key) 와 공개키(Public Key) 쌍을 사용하는 암호화 방식이다. 개인키로 서명하고, 공개키로 서명을 검증한다. 블록체인에서 지갑 주소 생성, 트랜잭션 서명, 소유권 증명의 핵심 기술이다.
개인키와 공개키
트랜잭션 서명 과정
- 1.사용자가 트랜잭션 데이터 생성 (수신자, 금액 등)
- 2.개인키로 트랜잭션 해시에 서명 (ECDSA)
- 3.서명 + 트랜잭션을 네트워크에 전파
- 4.노드가 공개키로 서명 검증 → 유효 시 블록에 포함
타원 곡선 암호화 (ECDSA)
Bitcoin과 Ethereum 모두 secp256k1 타원 곡선을 사용한다.
| 항목 | 설명 |
|---|---|
| 곡선 | secp256k1: y² = x³ + 7 |
| 개인키 크기 | 256비트 |
| 보안성 | RSA 3072비트와 동등 |
| 특징 | 동일 보안 수준에서 키 크기 작음 |
시드 구문 (Seed Phrase)
실제로는 개인키를 직접 관리하기 어려워 시드 구문(12/24 단어) 을 사용한다.
하나의 시드 구문으로 무한한 계정을 파생할 수 있다.
지갑 주소 생성 과정
Bitcoin:
Ethereum:
양자 컴퓨팅 위협
ECDSA는 이론적으로 충분히 강력한 양자 컴퓨터가 개발되면 취약해질 수 있다. 현재 암호화폐 커뮤니티는 포스트 양자 암호화(PQC)로의 전환을 장기 과제로 연구 중이다.
보안 원칙
- •개인키 = 자산 소유권: "Not your keys, not your coins"
- •분실 시 복구 불가: 백업이 없으면 영구 손실
- •공유 금지: 개인키나 시드 구문을 절대 입력하거나 공유하지 말 것
관련 개념
- •해시 — 트랜잭션 서명에 사용되는 해시 함수
- •암호화폐 지갑 — 개인키를 보관하는 소프트웨어/하드웨어
- •Bitcoin / Ethereum — 공개키 암호화 기반 블록체인
참고문헌
- •Certicom. Standards for Efficient Cryptography (SEC)
- •Bitcoin Developer Guide - Wallets