| 항목 | 상태 | 설명 |
|---|---|---|
| 지갑 주소 (Account Address) | ✅ 공개 | 누구나 확인 가능 |
| 잔액 (Balance) | ✅ 공개 | 주소별로 모두 열람 가능 |
| 트랜잭션 내역 (History) | ✅ 공개 | 송·수신 기록이 투명하게 노출됨 |
| 개인키 (Private Key) | ❌ 비공개 | 사용자만 보유, 지갑 외부에 절대 노출 X |
| 트랜잭션 서명 (Signature) | ✅ 공개되지만 위조 불가 | 수학적으로 검증 가능하지만 원본 개인키 유추 불가 |
✍️ 서명의 역할 = 소유 증명 + 위변조 방지
- 사용자는 트랜잭션을 만들고 개인키로 서명합니다.
- 이 서명된 트랜잭션은 블록체인 네트워크에 전파됩니다.
- 노드들은 서명을 검증합니다:
- “이 주소의 주인이 실제로 보낸 게 맞는가?”
- “거래가 위변조되지 않았는가?”
👉 핵심: 공개키 기반 암호학(ECDSA, EdDSA 등)을 통해 서명은 공개되더라도 개인키는 노출되지 않고, 정당성은 누구나 검증할 수 있습니다.
🔐 왜 이 구조가 강력한가?
- 개인키 없이는 거래 생성 불가능
- 주소와 트랜잭션이 모두 공개되어도, 아무도 승인 없이 전송 불가
- 탈중앙화 구조임에도 보안이 유지됨 (→ 신뢰 없는 환경에서의 신뢰)
📌 예시: 이더리움 주소 0xabc...
- 누구나: 이 주소의 ETH, 토큰 잔액과 트랜잭션 내역 확인 가능
- 오직 개인키 보유자만: ETH 전송이나 스마트 계약 호출 가능
✅ 요약
| 개념 | 핵심 내용 |
|---|---|
| 🔎 조회는 누구나 | 잔액, 거래, 주소는 완전 공개 |
| ✍️ 전송은 서명 필수 | 개인키 기반 서명 없이는 전송 불가 |
| 🔐 보안의 핵심 | 서명은 공개되어도 위조/복제가 불가능 |
| 📉 개인키 유출시 | 즉시 자산 탈취 가능 → 절대 보안 필요 |
🧠 1. 기본 개념 요약
| 요소 | 역할 |
|---|---|
| 개인키 (private key) | 비밀 키, 본인만 알고 있음 |
| 공개키 (public key) | 개인키로부터 생성, 모두에게 공개 |
| 서명 (signature) | 개인키로 메시지를 ‘서명’ |
| 검증 (verification) | 공개키로 서명이 정당한지 확인 |
👉 공개키는 누구나 알고 있지만, 개인키가 없으면 서명 생성은 불가능합니다.
🔐 2. ECDSA 서명의 핵심 구조
Elliptic Curve Digital Signature Algorithm
(Ethereum, Bitcoin 등에서 사용)
🧮 Step 1: 키 생성
- 개인키
d는 임의의 정수 (비밀) - 공개키
Q = d·GG: 타원곡선 위의 고정된 생성점·: 타원곡선 상의 점 곱셈 연산
✍️ Step 2: 서명 생성 (Sign)
메시지 m에 대해:
- 해시 계산:
z = HASH(m)→SHA-256등 - 무작위 정수
k생성 (절대 재사용 금지!) - 계산:
R = k·G → (x₁, y₁)r = x₁ mod n(서명의 첫 번째 값)s = k⁻¹ · (z + r·d) mod n(두 번째 값)
- 결과: 서명 (r, s)
🔐 k, d 없이 s를 만들 수 없음 → 위변조 불가
🔎 Step 3: 서명 검증 (Verify)
- 메시지 해시:
z = HASH(m) - 계산:
w = s⁻¹ mod nu₁ = z·w mod n,u₂ = r·w mod nP = u₁·G + u₂·Qx₁ = Pₓ, 확인:r ≡ x₁ mod n
결과가 일치하면 → 서명은 해당 공개키로 유효함
🔐 왜 위변조가 불가능한가?
| 공격 시도 | 불가능한 이유 |
|---|---|
| 📥 공개키로 서명 생성 | 타원곡선 이산 로그 문제 (ECDLP) 때문에 불가능 |
| 🧪 서명 위조 | s = k⁻¹(z + rd) 구조를 역산할 수 없음 |
| 🔁 서명 재사용 | k가 재사용되면 개인키 d 유출됨 (실제로 도난 사례 존재) |
🔁 수학적 비유
서명은 **”퍼즐 조각 두 개가 맞아야만 문이 열리는 자물쇠”**와 같습니다.
퍼즐을 맞추는 키는 개인키, 퍼즐 그림은 공개키.
퍼즐만 보고는 키를 복원할 수 없습니다.
🔐 블록체인에선?
- 트랜잭션 =
msg - 사용자는 개인키로
msg에 서명 →signature - 체인 노드는 공개키로
msg,signature를 검증 → 소유자 인증
💡 개인키 노출 없이도 서명은 모든 사람에게 유효성을 증명
✅ 요약
| 항목 | 내용 |
|---|---|
| 서명 원리 | 타원곡선 암호(ECDSA), 일방향 함수 기반 |
| 위변조 방지 | 개인키 없이 서명 위조 불가 |
| 공개키 검증 가능성 | 모든 사람이 서명의 정당성 검증 가능 |
| 수학적 보장 | 타원곡선 이산 로그 문제 (ECDLP)의 난이도에 기반 |