D 크립토홈
lang: zh en ja ko
백과 카테고리 다운로드 다운로드 가입

공개키와 개인키란? 암호화폐 보안은 어떻게 보장되나요?

바이낸스 앱을 다운로드하여 거래 시작

안드로이드 사용자는 APK를 직접 다운로드할 수 있습니다. VPN 불필요.

공개키와 개인키 상세 해설: 암호화폐 보안의 기초

공개키 암호학(Public Key Cryptography)은 블록체인과 암호화폐 보안 체계의 초석입니다. 이 체계에서 각 사용자는 한 쌍의 키(개인키와 공개키)를 보유합니다. 개인키는 거래에 서명하고 자산 소유권을 증명하는 데 사용되며, 공개키는 지갑 주소를 생성하고 서명을 검증하는 데 사용됩니다. 공개키와 개인키의 작동 원리를 이해하는 것이 암호자산 보안을 보장하는 첫걸음입니다.

1. 암호학 기초

1.1 대칭 암호화와 비대칭 암호화

암호학에서 암호화 방식은 두 가지로 나뉩니다:

대칭 암호화: 암호화와 복호화에 같은 키를 사용합니다. 예: AES 알고리즘. 장점은 속도가 빠르다는 것이고, 단점은 키 배포에 보안 위험이 있다는 것입니다. 어떻게 키를 안전하게 상대방에게 전달할 것인가?

비대칭 암호화(공개키 암호학): 한 쌍의 키(공개키와 개인키)를 사용합니다. 공개키는 공개적으로 공유 가능하고, 개인키는 반드시 비밀로 유지해야 합니다. 공개키로 암호화한 데이터는 대응하는 개인키로만 복호화 가능하며, 그 반대도 마찬가지입니다.

블록체인은 주로 비대칭 암호화를 활용하여 디지털 서명을 구현하며, 데이터 암호화가 아닙니다.

1.2 타원곡선 암호학(ECC)

대부분의 블록체인은 타원곡선 암호학(Elliptic Curve Cryptography)을 사용하여 키 쌍을 생성합니다. 비트코인과 이더리움은 secp256k1 곡선을 사용합니다.

ECC의 핵심 특성:

  • 개인키에서 공개키를 단방향으로 계산 가능(수학적으로 용이)
  • 공개키에서 개인키를 역으로 추론하는 것은 불가능(계산적으로 불가능)
  • RSA 등 전통 알고리즘에 비해 더 짧은 키 길이로 동등한 보안성 제공

2. 개인키

2.1 개인키란

개인키는 256비트(32바이트)의 난수로, 보통 64개의 16진수 문자로 표현됩니다. 예:

e9873d79c6d87dc0fb6a5778633389f4453213303da61f20bd67fc233aa33262

개인키의 가능한 수는 약 2^256으로, 이것은 천문학적 숫자(약 10^77)로 알려진 우주의 원자 총수보다 많습니다. 따라서 두 사람이 같은 개인키를 무작위로 생성할 확률은 실질적으로 0입니다.

2.2 개인키의 생성

개인키의 보안성은 그 무작위성에 달려 있습니다. 신뢰할 수 있는 개인키 생성은 암호학적으로 안전한 난수 생성기(CSPRNG)를 사용해야 합니다.

안전한 생성 방법:

  • 하드웨어 지갑 내부의 진정한 난수 생성기
  • 운영체제가 제공하는 암호학적 보안 난수 API
  • 감사를 거친 지갑 소프트웨어

불안전한 방법:

  • 간단한 숫자나 단어를 개인키로 사용
  • 불안전한 난수 생성기 사용
  • 신뢰할 수 없는 웹사이트나 환경에서 생성

2.3 개인키의 핵심적 지위

"개인키를 통제하면 자산을 통제한다" -- 이것이 암호화폐 보안의 첫 번째 법칙입니다.

  • 개인키 보유 = 해당 주소의 모든 자산에 대한 완전한 통제권
  • 개인키 유출 = 개인키를 획득한 누구나 자산을 전송 가능
  • 개인키 분실 = 자산을 영구적으로 찾을 수 없음(고객센터 없음, 복구 메커니즘 없음)

3. 공개키와 주소

3.1 개인키에서 공개키로

공개키는 타원곡선 곱셈을 통해 개인키에서 파생됩니다:

공개키 = 개인키 × G(타원곡선의 기저점)

이 연산은 단방향입니다:

  • 개인키 → 공개키: 간단한 계산(밀리초 단위)
  • 공개키 → 개인키: 계산적으로 불가능(가장 강력한 컴퓨터로도 상상할 수 없는 시간이 필요)

3.2 공개키에서 주소로

지갑 주소는 공개키에 해시 연산을 거쳐 생성되며, 암호자산을 수신하는 데 사용됩니다.

비트코인 주소 생성 과정:

  1. SHA-256으로 공개키를 해시
  2. RIPEMD-160으로 다시 해시
  3. 버전 접두사 추가
  4. 체크섬 계산(이중 SHA-256의 처음 4바이트)
  5. Base58Check 인코딩

이더리움 주소 생성 과정:

  1. Keccak-256으로 공개키를 해시
  2. 마지막 20바이트(40개의 16진수 문자) 취득
  3. "0x" 접두사 추가
  4. 선택: EIP-55 혼합 대소문자 체크섬 적용

3.3 키 관계 체인

시드 구문 → 시드(Seed) → 개인키 → 공개키 → 주소
         (단방향 파생, 불가역)
요소 공개 가능 여부 역할
시드 구문 절대 비밀 모든 키의 백업 및 복구
개인키 절대 비밀 거래 서명, 자산 통제
공개키 공개 가능 서명 검증
주소 공개 가능 자산 수신

4. 디지털 서명

4.1 서명 원리

디지털 서명은 개인키의 가장 중요한 응용입니다. 암호화폐 거래를 발행할 때:

  1. 거래 생성: 송신자 주소, 수신자 주소, 금액 등의 정보 포함
  2. 거래 해시: 거래 데이터에 해시 연산을 수행하여 거래 "다이제스트" 획득
  3. 개인키 서명: 개인키로 거래 다이제스트에 서명하여 디지털 서명 생성
  4. 거래 브로드캐스트: 거래 데이터와 서명을 네트워크에 브로드캐스트
  5. 서명 검증: 네트워크 노드가 송신자의 공개키로 서명의 유효성 검증

4.2 서명의 특성

  • 신원 인증: 거래가 실제로 개인키 보유자에 의해 발행되었음을 증명
  • 변조 불가: 거래 데이터가 수정되면 서명이 무효화
  • 부인 불가: 서명자가 자신이 거래에 서명했음을 부인할 수 없음
  • 개인키 비노출: 검증 과정에서 공개키만 필요하며, 개인키는 절대 노출되지 않음

4.3 ECDSA와 Schnorr 서명

ECDSA(타원곡선 디지털 서명 알고리즘): 이더리움과 비트코인이 원래 사용하는 서명 알고리즘. 매번 서명할 때마다 다른 출력을 생성(난수 k 도입), 서명 길이 약 71-73바이트.

Schnorr 서명: 비트코인이 2021년 Taproot 업그레이드에서 도입. ECDSA와 비교하여:

  • 서명 집약 지원(여러 서명을 하나로 합침)
  • 선형 특성으로 다중서명 방식이 더 효율적
  • 서명 길이가 64바이트로 고정

5. 시드 구문(BIP-39)

5.1 시드 구문이란

시드 구문은 12개 또는 24개의 영어 단어로 구성된 시퀀스로, 개인키의 사람이 읽을 수 있는 백업 형태입니다. 시드 구문 표준(BIP-39)은 2,048개의 미리 정의된 영어 단어 표에서 선택합니다.

예(12단어 시드 구문):

abandon ability able about above absent absorb abstract absurd abuse access accident

5.2 시드 구문에서 키로

BIP-39/BIP-32/BIP-44 표준은 시드 구문에서 여러 주소를 파생하는 계층적 결정적(HD) 경로를 정의합니다:

  1. 시드 구문 → 시드: 시드 구문 + 선택적 비밀번호 구문(Passphrase)이 PBKDF2 함수를 통해 512비트 시드 생성
  2. 시드 → 마스터 키: 시드가 HMAC-SHA512를 통해 마스터 개인키와 체인 코드 생성
  3. 마스터 키 → 자식 키: 계층적 파생 경로(예: m/44'/60'/0'/0/0)를 통해 무한 수의 자식 키 쌍 생성

이것은 의미합니다:

  • 하나의 시드 구문으로 여러 체인의 여러 주소를 관리 가능
  • 시드 구문만 백업하면 모든 파생된 키와 주소를 복구 가능

5.3 Passphrase(제25번째 단어)

BIP-39는 시드 구문 위에 선택적 비밀번호 구문(Passphrase)을 추가하는 것을 지원하며, 이는 추가적인 보안 레이어로 작용합니다:

  • 같은 시드 구문 + 다른 Passphrase = 완전히 다른 키 세트
  • 시드 구문이 도난되어도 Passphrase 없이는 자산에 접근 불가
  • 하지만 Passphrase를 잊으면 자산도 찾을 수 없음

6. 키 보안 위협

6.1 일반적인 공격 방식

공격 방식 설명 방지
피싱 공격 가짜 웹사이트나 고객지원이 시드 구문/개인키를 편취 어떤 웹사이트에도 시드 구문을 입력하지 않기
악성 소프트웨어 트로이 목마가 기기에 저장된 키를 탈취 하드웨어 지갑으로 개인키 격리
중간자 공격 거래 중 수신 주소를 변조 하드웨어 지갑 화면에서 주소 확인
사회공학 공식 직원을 사칭하여 민감 정보 요구 어떤 공식 기관도 개인키를 요구하지 않음
무차별 대입 모든 가능한 개인키 조합 시도 256비트 키 공간으로 무차별 대입 불가능
공급망 공격 악성 펌웨어가 사전 설치된 하드웨어 기기 공식 채널에서 하드웨어 지갑 구매

6.2 양자 컴퓨팅 위협

이론적으로 충분히 강력한 양자 컴퓨터는 Shor 알고리즘을 통해 공개키에서 개인키를 추론할 수 있습니다. 그러나 현재:

  • 기존 양자 컴퓨터는 위협 수준에 도달하지 못함
  • 블록체인 커뮤니티는 양자 저항 서명 알고리즘을 연구 중
  • 비트코인 주소는 해시 함수를 사용하여(주소에서 공개키 추론도 불가능) 추가 보호를 제공
  • 이더리움 로드맵에 양자 저항 업그레이드 계획 포함

7. 키 관리 모범 사례

7.1 백업 전략

  • 시드 구문을 종이나 금속판에 수기로 기록(전자 저장이 아님)
  • 지리적으로 분산된 안전한 장소에 여러 부의 백업 보관
  • Shamir 비밀 공유 방식을 사용하여 시드 구문을 분할 저장 고려
  • 신뢰할 수 있는 가족에게 백업 보관 위치를 알림(긴급 상황 대비)

7.2 스토리지 보안

  • 대액 자산은 하드웨어 지갑으로 저장
  • 일상적으로 사용하는 핫월렛과 장기 저장 콜드월렛을 분리
  • 정기적으로 백업의 완전성 확인
  • 같은 기기에서 대액 자산과 일상 브라우징을 관리하지 않기

7.3 운영 보안

  • 안전한 환경에서 시드 구문을 생성하고 사용
  • 전송 전 전체 목표 주소를 꼼꼼히 확인
  • 모든 승인 거래의 내용을 이해하고 검토
  • 더 이상 필요하지 않은 컨트랙트 승인을 적시에 취소

8. 키 기술의 진화

8.1 다자간 계산(MPC)

개인키를 여러 조각으로 분할하여, 서명 시 다자간 계산을 통해 완료하며, 어떤 단일 조각으로도 독립적으로 거래에 서명할 수 없습니다. 이는 단일 장애점 위험을 제거합니다.

8.2 계정 추상화

ERC-4337 등의 표준은 스마트 컨트랙트 로직을 사용하여 전통적인 개인키 서명을 대체할 수 있게 하며, 소셜 복구, 다중 인증 등 더 유연한 보안 모델을 지원합니다.

8.3 양자 저항 암호학

블록체인 커뮤니티는 격자 기반 암호학, 해시 서명 등 후양자 암호학 방안을 적극적으로 연구하여 미래의 양자 컴퓨팅 위협에 대비하고 있습니다.

요약

공개키와 개인키는 암호화폐 보안 체계의 핵심입니다. 개인키는 온체인 자산을 통제하는 유일한 자격증명이며, 그 생성, 저장, 사용의 보안성이 자산의 안전성을 직접 결정합니다. 키 쌍의 작동 원리, 디지털 서명의 메커니즘, 시드 구문의 관리 방법을 이해하는 것은 모든 암호화폐 참여자가 자신의 자산을 보호하기 위한 필수 지식입니다.


암호자산 관리를 시작할 준비가 되셨나요? 다음과 같은 방법으로 시작할 수 있습니다:

바이낸스 가입 | 바이낸스 앱 다운로드

📱
바이낸스 앱을 다운로드하여 거래 시작

안드로이드 사용자는 APK를 직접 다운로드할 수 있습니다. VPN 불필요.

바이낸스 앱을 다운로드하여 거래 시작

안드로이드 사용자는 APK를 직접 다운로드할 수 있습니다. VPN 불필요.

작성
크립토홈 편집부 암호화폐 지식 보급 및 백과사전 편집에 전념