본문 바로가기
it

HD 지갑 계층적 결정론적 지갑

by 파크인포 2024. 10. 20.

HD 지갑은 하나의 시드로 무한한 주소를 생성하는 혁신적인 암호화폐 지갑 기술입니다. BIP32 표준부터 실제 활용법까지, 계층적 결정론적 지갑의 모든 것을 알아보세요. 보안성과 편의성을 동시에 제공하는 HD 지갑 설정 방법과 주의사항을 상세히 안내합니다.

 

 

 

암호화폐 시장이 성장하면서 지갑 보안에 대한 관심도 높아지고 있습니다. 특히 HD 지갑(Hierarchical Deterministic Wallet)은 현재 가장 안전하고 편리한 지갑 기술로 인정받고 있는데요.

많은 분들이 "내 비트코인 주소가 왜 계속 바뀌지?"라고 궁금해하셨을 겁니다. 또한 하나의 복구 문구만으로 모든 암호화폐를 복원할 수 있다는 것이 신기하면서도 걱정스럽기도 하죠.

이 글에서는 HD 지갑의 원리부터 실제 활용법, 보안 관리 방법까지 모든 것을 쉽게 설명드리겠습니다. 복잡해 보이는 기술 용어들도 일상 예시를 통해 이해하기 쉽게 정리해보겠습니다.

 

HD 지갑이란 무엇인가?

HD 지갑은 Hierarchical Deterministic Wallet의 줄임말로, 한국어로는 계층적 결정론적 지갑이라고 합니다. 쉽게 말해서 하나의 마스터 시드(Master Seed)에서 무수히 많은 주소를 체계적으로 생성할 수 있는 암호화폐 지갑 기술입니다.

 

기존 지갑과의 차이점

기존의 비결정적 지갑은 새로운 주소가 필요할 때마다 완전히 새로운 개인키를 무작위로 생성했습니다. 마치 새로운 열쇠를 만들 때마다 전혀 다른 모양으로 제작하는 것과 같죠. 이 방식의 문제점은 주소가 늘어날수록 백업해야 할 개인키도 계속 늘어난다는 것이었습니다.

반면 HD 지갑은 하나의 마스터 키에서 모든 하위 키들이 규칙적으로 파생됩니다. 마치 마스터 열쇠 하나로 건물의 모든 방 열쇠를 만들어낼 수 있는 것과 같은 원리입니다.

 

HD 지갑의 핵심 특징

HD 지갑이 "계층적"이라고 불리는 이유는 키들이 부모-자식 관계의 트리 구조로 생성되기 때문입니다. 그리고 "결정론적"이라는 것은 같은 시드에서는 항상 동일한 키들이 같은 순서로 생성된다는 의미입니다.

현재 비트코인, 이더리움, 라이트코인 등 대부분의 주요 암호화폐가 HD 지갑을 지원하고 있으며, 메타마스크, 렛저, 트레저 같은 인기 지갑들도 모두 HD 지갑 기술을 사용하고 있습니다.

 

HD 지갑의 작동 원리

HD 지갑의 작동 원리를 이해하기 위해서는 먼저 키 생성 과정을 살펴봐야 합니다.

 

마스터 시드 생성

모든 과정은 마스터 시드라는 128~512비트의 무작위 숫자에서 시작됩니다. 이 시드는 보통 12개 또는 24개의 영어 단어로 구성된 니모닉 코드로 표현됩니다.

예를 들어, 다음과 같은 형태입니다:

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

 

이 12개의 단어가 바로 여러분이 지갑을 만들 때 받게 되는 복구 문구입니다.

 

계층적 키 파생

마스터 시드에서 마스터 개인키체인코드가 생성됩니다. 이 두 요소를 조합하여 자식 키들을 무한히 만들어낼 수 있습니다.

키 파생 과정은 마치 가계도를 그리는 것과 같습니다:

  • 마스터 키 (할아버지)
  • 계정 키 (아버지)
  • 체인 키 (아들)
  • 주소 키 (손자)

각 레벨에서 최대 2³²개(약 43억 개)의 자식을 만들 수 있어서, 실질적으로 무한한 주소 생성이 가능합니다.

 

하드웨어드 vs 소프트웨어드 파생

HD 지갑에는 두 가지 키 파생 방식이 있습니다:

하드웨어드 파생 (Hardened Derivation)

  • 부모 개인키를 사용하여 자식 키 생성
  • 보안성이 높지만 부모 개인키 없이는 자식 공개키 생성 불가
  • 경로에서 '(apostrophe) 표시로 구분

소프트웨어드 파생 (Non-hardened Derivation)

  • 부모 공개키만으로도 자식 공개키 생성 가능
  • 편의성이 높지만 보안 위험 존재
  • 일반 숫자로 표시

 

HD 지갑의 장점과 특징

1. 향상된 프라이버시 보호

HD 지갑의 가장 큰 장점은 프라이버시 보호입니다. 트랜잭션마다 새로운 주소를 사용하기 때문에 다른 사람이 여러분의 전체 잔액을 한눈에 파악하기 어려워집니다.

예를 들어, 블로그에 기부용 비트코인 주소를 공개했다고 가정해봅시다. HD 지갑을 사용하면 기부받은 주소와 실제 보유 자산이 있는 주소가 분리되어 있어서, 기부자들이 여러분의 총 비트코인 보유량을 알 수 없습니다.

2. 간편한 백업과 복구

하나의 니모닉 코드만 백업하면 모든 주소와 개인키를 복구할 수 있습니다. 기존 방식이라면 주소마다 별도로 백업해야 했지만, HD 지갑은 12개 또는 24개의 단어만 안전하게 보관하면 됩니다.

지갑을 잃어버리거나 기기가 고장나더라도, 니모닉 코드만 있으면 어떤 호환 지갑에서든 완전히 복구할 수 있습니다.

3. 다중 암호화폐 지원

하나의 HD 지갑으로 비트코인, 이더리움, 라이트코인 등 여러 암호화폐를 동시에 관리할 수 있습니다. 각 코인별로 별도의 지갑을 만들 필요가 없어서 매우 편리합니다.

4. 보안성 향상

주소를 재사용하지 않기 때문에 보안 위험이 크게 감소합니다. 한 주소의 개인키가 노출되더라도 다른 주소의 자산은 안전하게 보호됩니다.

5. 기업용 기능

HD 지갑의 계층 구조를 활용하면 부서별, 프로젝트별로 키를 분리하여 관리할 수 있습니다. 재무팀은 재무팀 키만, 마케팅팀은 마케팅팀 키만 접근하도록 권한을 나눌 수 있어서 기업 환경에서 매우 유용합니다.

 

 

HD 지갑의 구조 

HD 지갑은 트리구조이다. 마스터키에서 여러 계층의 키를 파생할 수 있다. BIP-32 표준에 따라 각 계층을 Path로 구분하며 일반적으로 사용하는 Path 표현은 다음과 같다.

 

m / 44' / 0' / 0' / 0 / 0
  • m : 마스터키
  • 44' : BIP-44 표준을 따른다
  • 0': 코인 타입(예: 비트코인은 0, 이더리움은 60)
  • 0': 계좌 인덱스(다중 계정을 지원)
  • 0: 외부 키 또는 내부 키를 구분하는 인덱스
  • 0: 실제 생성된 키 또는 주소의 인덱스

비트코인과 이더리움 지갑 모두 HD 지갑 방식이지만 네트워크 구조와 표준의 차이로 인해 지갑을 생성하는 방법에서 약간의 차이가 있다. 주로 이 차이는 Path 에 있다.

 

비트코인 지갑 Path

비트코인 지갑은 BIP-44를 따르며 경로는 다음과 같다.

m / 44' / 0' / 0' / 0 / 0

  • m: 마스터 키
  • 44': BIP-44 표준을 따른다는 의미
  • 0': 코인 타입이 비트코인을 나타냅니다 (0은 비트코인을 의미)
  • 0': 계정 인덱스
  • 0: 외부 트랜잭션을 위한 주소 체계
  • 0: 실제 주소의 인덱스

비트코인 지갑 주소는 다양한 형식이 있다.

 

  • P2PKH (Pay to Public Key Hash): 전통적인 비트코인 주소 형식, 보통 1로 시작
  • P2SH (Pay to Script Hash): 더 복잡한 스크립트를 허용하는 주소 형식으로, 보통 3으로 시작
  • Bech32: 비트코인 세그윗(SegWit) 주소 형식, bc1로 시작합니다. 이는 비트코인의 최신 주소 형식으로, 효율적인 거래와 더 낮은 수수료를 제공

 

 

이더리움 지갑 Path

이더리움 지갑은 BIP-44를 따르지만 코인 타입이 다르다.

m / 44' / 60' / 0' / 0 / 0

  • m: 마스터 키
  • 44': BIP-44 표준
  • 60': 이더리움을 의미하는 코드 (60은 이더리움의 코인 타입)
  • 0': 계정 인덱스
  • 0: 외부 트랜잭션을 위한 주소 체계
  • 0: 주소 인덱스

이더리움 주소는 항상 0x로 시작하며, 40자의 16진수 문자열로 구성된다.

이더리움은 단일한 주소 형식을 사용하며, 주소는 대소문자를 구별하지 않지만, EIP-55 표준에 따라 체크섬을 포함하는 대소문자 혼합 형식의 주소를 사용할 수도 있으며 이 체크섬은 주소 입력 오류를 방지하는 데 도움을 줍니다.

 

 

HD 지갑의 주요 표준

HD 지갑은 여러 비트코인 개선 제안(BIP: Bitcoin Improvement Proposal)에 의해 표준화되었습니다.

 

BIP-32

2012년 Pieter Wuille이 제안한 BIP32는 HD 지갑의 기본 구조를 정의했습니다. 마스터 키에서 자식 키를 생성하는 수학적 방법과 확장 키(Extended Key) 개념을 도입했습니다.

BIP32의 핵심 내용:

  • 512비트 시드에서 마스터 키 생성
  • HMAC-SHA512 함수를 이용한 키 파생
  • 확장 개인키(xprv)와 확장 공개키(xpub) 정의

 

BIP-44

BIP44는 BIP32를 확장하여 여러 암호화폐와 계정을 체계적으로 관리할 수 있는 5단계 경로 구조를 제안했습니다.

BIP44 경로 구조:

m / purpose' / coin_type' / account' / change / address_index

각 레벨의 의미:

  • purpose': 항상 44' (BIP44 사용을 의미)
  • coin_type': 코인 종류 (비트코인=0', 이더리움=60')
  • account': 계정 번호 (보통 0'부터 시작)
  • change: 외부 주소(0) 또는 잔돈 주소(1)
  • address_index: 주소 순번 (0, 1, 2, ...)

예시 경로:

  • m/44'/0'/0'/0/0: 첫 번째 비트코인 수취 주소
  • m/44'/60'/0'/0/0: 첫 번째 이더리움 수취 주소

 

BIP-39

2013년 제안된 BIP39는 복잡한 시드를 사람이 기억하기 쉬운 단어로 변환하는 방법을 정의했습니다.

BIP39의 특징:

  • 2048개의 표준 단어 목록 사용
  • 12, 15, 18, 21, 24개 단어 지원
  • 체크섬 기능으로 오타 감지
  • 다국어 지원 (영어, 일본어, 중국어 등)

 

 

HD 지갑의 장점

장점은 하나의 마스터키 또는 시드만 있으면 여러 지갑과 주소를 복구할 수 있기 때문에 지갑을 백업할때 마스터키 또는 시드 문구만 안전하게 보관하면 된다. 또한 한 지갑에서 수천 개의 주소를 생성할 수 있어서 지갑의확장이 용이하다.

 

 

HD 지갑의 단점

단점은 마스터키가 노출되면 그와 연결된 여러 지갑이 모두 해킹당할 수 있기 때문에 마스터 키 또는 시드를 안전하게 보관해야 한다. 

 

 

보안 관리 및 주의사항

1. 니모닉 코드 보안

니모닉 코드는 여러분의 모든 암호화폐 자산을 제어하는 마스터 키입니다. 절대적인 보안이 필요합니다.

보안 수칙:

  • 니모닉 코드를 누구와도 공유하지 마세요
  • 온라인 저장을 절대 하지 마세요 (클라우드, 이메일 등)
  • 스크린샷이나 사진 촬영 금지
  • 지갑 업체 직원도 니모닉 코드를 묻지 않습니다

추가 보안 강화:

  • 패스프레이즈 설정: 니모닉 코드에 추가 암호 설정
  • 멀티시그 지갑: 여러 개의 서명이 필요한 지갑 사용
  • 정기적인 보안 점검: 지갑 소프트웨어 업데이트

 

2. 피싱 및 사기 방지

암호화폐 업계에는 다양한 사기 수법이 존재합니다.

주요 사기 유형:

  • 가짜 지갑 앱: 공식 앱과 유사하게 만든 악성 앱
  • 피싱 웹사이트: 니모닉 코드 입력을 요구하는 가짜 사이트
  • 고객센터 사칭: 지원팀을 사칭하여 니모닉 코드 요구

예방 방법:

  • 공식 웹사이트에서만 지갑 다운로드
  • URL 주소 정확히 확인 
  • 지갑 업체는 절대 니모닉 코드를 요구하지 않음을 기억
  • 의심스러운 연락에는 응답하지 마세요

 

3. 기술적 주의사항

HD 지갑 사용 시 알아두어야 할 기술적 내용들입니다.

확장 공개키 노출 위험:

  • 확장 공개키(xpub)와 하나의 자식 개인키가 함께 노출되면 다른 자식 개인키들도 유추 가능
  • 가능한 한 확장 공개키 공유를 피하세요

소프트웨어 업데이트:

  • 지갑 소프트웨어를 정기적으로 업데이트하세요
  • 보안 패치와 새로운 기능을 놓치지 마세요

백업 검증:

  • 니모닉 코드 백업 후 복구 테스트 진행
  • 작은 금액으로 먼저 테스트해보세요