[카테고리:] 미분류

  • 📖 블록체인의 공개성과 보안성 구조

    항목상태설명
    지갑 주소 (Account Address)✅ 공개누구나 확인 가능
    잔액 (Balance)✅ 공개주소별로 모두 열람 가능
    트랜잭션 내역 (History)✅ 공개송·수신 기록이 투명하게 노출됨
    개인키 (Private Key)❌ 비공개사용자만 보유, 지갑 외부에 절대 노출 X
    트랜잭션 서명 (Signature)✅ 공개되지만 위조 불가수학적으로 검증 가능하지만 원본 개인키 유추 불가

    ✍️ 서명의 역할 = 소유 증명 + 위변조 방지

    1. 사용자는 트랜잭션을 만들고 개인키로 서명합니다.
    2. 이 서명된 트랜잭션은 블록체인 네트워크에 전파됩니다.
    3. 노드들은 서명을 검증합니다:
      • “이 주소의 주인이 실제로 보낸 게 맞는가?”
      • “거래가 위변조되지 않았는가?”

    👉 핵심: 공개키 기반 암호학(ECDSA, EdDSA 등)을 통해 서명은 공개되더라도 개인키는 노출되지 않고, 정당성은 누구나 검증할 수 있습니다.


    🔐 왜 이 구조가 강력한가?

    • 개인키 없이는 거래 생성 불가능
    • 주소와 트랜잭션이 모두 공개되어도, 아무도 승인 없이 전송 불가
    • 탈중앙화 구조임에도 보안이 유지됨 (→ 신뢰 없는 환경에서의 신뢰)

    📌 예시: 이더리움 주소 0xabc...

    • 누구나: 이 주소의 ETH, 토큰 잔액과 트랜잭션 내역 확인 가능
    • 오직 개인키 보유자만: ETH 전송이나 스마트 계약 호출 가능

    ✅ 요약

    개념핵심 내용
    🔎 조회는 누구나잔액, 거래, 주소는 완전 공개
    ✍️ 전송은 서명 필수개인키 기반 서명 없이는 전송 불가
    🔐 보안의 핵심서명은 공개되어도 위조/복제가 불가능
    📉 개인키 유출시즉시 자산 탈취 가능 → 절대 보안 필요

    🧠 1. 기본 개념 요약

    요소역할
    개인키 (private key)비밀 키, 본인만 알고 있음
    공개키 (public key)개인키로부터 생성, 모두에게 공개
    서명 (signature)개인키로 메시지를 ‘서명’
    검증 (verification)공개키로 서명이 정당한지 확인

    👉 공개키는 누구나 알고 있지만, 개인키가 없으면 서명 생성은 불가능합니다.


    🔐 2. ECDSA 서명의 핵심 구조

    Elliptic Curve Digital Signature Algorithm
    (Ethereum, Bitcoin 등에서 사용)


    🧮 Step 1: 키 생성

    1. 개인키 d는 임의의 정수 (비밀)
    2. 공개키 Q = d·G
      • G: 타원곡선 위의 고정된 생성점
      • ·: 타원곡선 상의 점 곱셈 연산

    ✍️ Step 2: 서명 생성 (Sign)

    메시지 m에 대해:

    1. 해시 계산: z = HASH(m)SHA-256
    2. 무작위 정수 k 생성 (절대 재사용 금지!)
    3. 계산:
      • R = k·G → (x₁, y₁)
      • r = x₁ mod n (서명의 첫 번째 값)
      • s = k⁻¹ · (z + r·d) mod n (두 번째 값)
    4. 결과: 서명 (r, s)

    🔐 k, d 없이 s를 만들 수 없음 → 위변조 불가


    🔎 Step 3: 서명 검증 (Verify)

    1. 메시지 해시: z = HASH(m)
    2. 계산:
      • w = s⁻¹ mod n
      • u₁ = z·w mod n, u₂ = r·w mod n
      • P = u₁·G + u₂·Q
      • x₁ = Pₓ, 확인: r ≡ x₁ mod n

    결과가 일치하면 → 서명은 해당 공개키로 유효함


    🔐 왜 위변조가 불가능한가?

    공격 시도불가능한 이유
    📥 공개키로 서명 생성타원곡선 이산 로그 문제 (ECDLP) 때문에 불가능
    🧪 서명 위조s = k⁻¹(z + rd) 구조를 역산할 수 없음
    🔁 서명 재사용k가 재사용되면 개인키 d 유출됨 (실제로 도난 사례 존재)

    🔁 수학적 비유

    서명은 **”퍼즐 조각 두 개가 맞아야만 문이 열리는 자물쇠”**와 같습니다.
    퍼즐을 맞추는 키는 개인키, 퍼즐 그림은 공개키.
    퍼즐만 보고는 키를 복원할 수 없습니다.


    🔐 블록체인에선?

    • 트랜잭션 = msg
    • 사용자는 개인키로 msg에 서명 → signature
    • 체인 노드는 공개키로 msg, signature를 검증 → 소유자 인증

    💡 개인키 노출 없이도 서명은 모든 사람에게 유효성을 증명


    ✅ 요약

    항목내용
    서명 원리타원곡선 암호(ECDSA), 일방향 함수 기반
    위변조 방지개인키 없이 서명 위조 불가
    공개키 검증 가능성모든 사람이 서명의 정당성 검증 가능
    수학적 보장타원곡선 이산 로그 문제 (ECDLP)의 난이도에 기반