본문으로 건너뛰기

키 파생 도구 튜토리얼: BIP-44 경로 탐색기

계층적 결정론적(HD) 지갑은 현대 암호화폐 키 관리의 근간입니다. 단일 시드에서 HD 지갑은 키의 전체 트리를 파생합니다 — 여러 블록체인에 걸쳐 수십억 개의 고유 주소를 모두 원래 시드 문구에서 복구할 수 있습니다. SafeSeed의 키 파생 도구(Key Derivation Tool)를 사용하면 이 트리를 시각화하고 탐색하며, 파생 경로의 작동 방식을 이해하고, 지갑이 예상대로 작동하지 않을 때 문제를 진단할 수 있습니다.

지금 바로 사용해 보세요

safeseed.app/tools/key-derivation/에서 BIP-44 파생 경로를 탐색하세요 — 완전히 클라이언트 사이드로 작동하며, 오프라인에서도 사용 가능합니다.

키 파생이란 무엇인가요?

키 파생(Key Derivation)은 기존 키에서 새로운 암호화 키를 생성하는 과정입니다. 암호화폐에서 이것은 시드 문구에서 시작하여 BIP-32(계층적 결정론적 지갑)에 의해 정의되고 BIP-44(다중 계정 계층 구조)에 의해 조직된 결정론적 알고리즘을 따릅니다.

핵심 속성은 결정론성입니다: 동일한 시드는 항상 동일한 키 트리를 생성합니다. 이는 다음을 의미합니다:

  • 시드 문구만으로 전체 지갑을 복구할 수 있습니다
  • 동일한 시드를 가진 여러 기기가 동일한 주소를 표시합니다
  • 초기 시드 생성 후에는 무작위 요소가 관여하지 않습니다

키 트리

키 파생을 트리로 생각해 보세요:

마스터 키 (루트)
├── Purpose 44' (레거시)
│ ├── 비트코인 (0')
│ │ ├── 계정 0'
│ │ │ ├── 외부 (0)
│ │ │ │ ├── 주소 0
│ │ │ │ ├── 주소 1
│ │ │ │ └── 주소 2 ...
│ │ │ └── 내부/거스름돈 (1)
│ │ │ ├── 주소 0
│ │ │ └── 주소 1 ...
│ │ └── 계정 1'
│ │ └── ...
│ ├── 이더리움 (60')
│ │ └── 계정 0'
│ │ └── ...
│ └── 라이트코인 (2')
│ └── ...
├── Purpose 49' (세그윗)
│ └── ...
├── Purpose 84' (네이티브 세그윗)
│ └── ...
└── Purpose 86' (탭루트)
└── ...

이 트리의 각 노드에는 개인 키와 공개 키가 모두 있습니다. 주소 생성기는 리프 노드(개별 주소)를 파생하고, 키 파생 도구는 전체 트리의 모든 노드를 검사할 수 있게 해줍니다.

파생 경로 이해하기

파생 경로는 마스터 키에서 특정 자식 키까지 탐색하는 방법을 설명하는 인덱스의 시퀀스입니다. 표준 표기법은 다음과 같습니다:

m / 84' / 0' / 0' / 0 / 0

이것을 완전히 분해해 보겠습니다.

경로 구성요소

구성요소의미예시 값
m마스터(루트) 키항상 m
purpose'어떤 BIP 표준44', 49', 84', 86'
coin_type'어떤 암호화폐0' (BTC), 60' (ETH), 2' (LTC)
account'계정 분리0', 1', 2'
change외부/내부0 (수신), 1 (거스름돈)
address_index주소 번호0, 1, 2, ...

강화 vs. 일반 파생

아포스트로피(')는 **강화 파생(Hardened Derivation)**을 나타냅니다. 이것은 HD 지갑의 근본적인 보안 개념입니다.

일반(비강화) 파생 (m/0/1/2):

  • 부모 공개 키로 모든 자식 공개 키를 파생할 수 있습니다
  • 자식 개인 키와 부모 공개 키가 모두 유출되면 부모 개인 키를 계산할 수 있습니다
  • changeaddress_index 수준에서 사용됩니다

강화 파생 (m/0'/1'/2'):

  • 부모 개인 키만으로 자식 키를 파생할 수 있습니다
  • 자식 키가 유출되어도 부모가 노출되지 않습니다
  • purpose, coin_type, account 수준에서 사용됩니다

보안 근거: 첫 세 수준(purpose', coin_type', account')은 강화 파생을 사용하여 방화벽을 생성합니다. 공격자가 주소 수준에서 자식 개인 키를 획득하더라도, 강화된 경계를 넘어 마스터 키나 다른 계정 또는 암호화폐의 키를 발견할 수 없습니다.

지갑별 표준 파생 경로

지갑 소프트웨어마다 다른 파생 경로를 사용할 수 있습니다. 다음은 일반적인 지갑에 대한 참고 자료입니다:

지갑비트코인 경로이더리움 경로비고
Ledger Livem/84'/0'/0'/0/xm/44'/60'/0'/0/x네이티브 세그윗 기본
Trezor Suitem/84'/0'/0'/0/xm/44'/60'/0'/0/x네이티브 세그윗 기본
Electrumm/84'/0'/0'/0/xN/A네이티브 세그윗 기본
MetaMaskN/Am/44'/60'/0'/0/x이더리움 전용
BlueWalletm/84'/0'/0'/0/xN/A네이티브 세그윗 기본
Exodusm/84'/0'/0'/0/xm/44'/60'/0'/0/x다중 체인
Trust Walletm/84'/0'/0'/0/xm/44'/60'/0'/0/x다중 체인
Coinbase Walletm/44'/0'/0'/0/xm/44'/60'/0'/0/xBTC는 레거시
Myceliumm/84'/0'/0'/0/xN/A비트코인 전용
Wasabim/84'/0'/0'/0/xN/A프라이버시 중심

자금을 복구할 때 원래 지갑이 사용한 경로를 아는 것이 필수적입니다. 키 파생 도구는 체계적으로 경로를 탐색하여 키가 어디에 있는지 찾는 데 도움을 줍니다.

단계별 가이드: 키 파생 도구 사용하기

1단계: 도구 열기

safeseed.app/tools/key-derivation/으로 이동합니다. 모든 SafeSeed 도구와 마찬가지로 작업은 브라우저에서 완전히 실행됩니다.

보안 주의: 실제 자금을 위한 시드 문구를 입력하는 경우 에어갭 머신을 사용하세요. 오프라인 사용 가이드를 참조하세요.

2단계: 시드 문구 입력

12단어 또는 24단어 BIP-39 니모닉 문구를 입력합니다. 선택적으로 패스프레이즈를 입력합니다. 도구가 문구를 검증하고 PBKDF2를 통해 파생된 마스터 시드(512비트 16진수)를 표시합니다.

3단계: 마스터 키 확인

유효한 시드 문구를 입력하면 도구가 마스터 키 정보를 표시합니다:

  • 마스터 개인 키(xprv): 다른 모든 키가 파생되는 루트 개인 키입니다. 전체 키 계층 구조에서 가장 민감한 데이터입니다.
  • 마스터 공개 키(xpub): 대응하는 공개 키입니다. 이 키에서 모든 자식 공개 키를 파생할 수 있습니다(비강화 경로의 경우).
  • 마스터 체인 코드(Chain Code): 파생 함수에서 키와 함께 사용되는 256비트 값입니다. 체인 코드는 자식 키 파생에 추가적인 예측 불가능성을 더합니다.

4단계: 파생 트리 탐색

키 파생 도구는 키 계층 구조를 대화형 트리로 제시합니다. 다음을 할 수 있습니다:

  1. 트리 노드를 클릭하여 확장하고 자식 키를 봅니다
  2. 경로 입력 필드에 사용자 정의 경로를 입력합니다 (예: m/84'/0'/0'/0/0)
  3. 개인 키와 공개 키 표시를 전환합니다
  4. 다른 도구나 지갑에서 사용하기 위해 키나 경로를 복사합니다

5단계: 특정 키 검사

트리에서 노드를 선택하면 도구가 해당 키에 대한 완전한 정보를 표시합니다:

  • 파생 경로: 마스터에서 이 키까지의 전체 경로
  • 개인 키: 이 수준의 키 (확장 형식 및 해당되는 경우 WIF)
  • 공개 키: 대응하는 공개 키 (압축)
  • 체인 코드: 이 수준의 체인 코드
  • 핑거프린트(Fingerprint): 이 키에 대한 4바이트 식별자 (확장 키 직렬화에 사용)
  • 파생된 주소: 암호화폐 주소 (리프 수준 키의 경우)

6단계: 다른 Purpose 탐색

다른 BIP 표준을 탐색하여 동일한 시드가 어떻게 다른 주소 유형을 생성하는지 이해합니다:

BIP-44 (레거시): m/44'/0'/0'/0/0

  • 1로 시작하는 레거시 주소 생성
  • 가장 높은 트랜잭션 수수료
  • 이전 시스템과의 최대 호환성

BIP-49 (세그윗): m/49'/0'/0'/0/0

  • 3으로 시작하는 세그윗 주소 생성
  • 보통 트랜잭션 수수료
  • 좋은 호환성

BIP-84 (네이티브 세그윗): m/84'/0'/0'/0/0

  • bc1q로 시작하는 네이티브 세그윗 주소 생성
  • 낮은 트랜잭션 수수료
  • 최신 지갑의 표준

BIP-86 (탭루트): m/86'/0'/0'/0/0

  • bc1p로 시작하는 탭루트 주소 생성
  • 가장 낮은 트랜잭션 수수료
  • 최신 표준, 고급 스크립팅 지원

심층 분석: BIP-32 파생 작동 원리

키 파생의 수학을 이해하는 것이 도구 사용에 필수적이지는 않지만, 지갑의 보안을 진정으로 이해하고 싶은 분에게 귀중한 통찰을 제공합니다.

HMAC-SHA512 자식 키 파생

BIP-32는 HMAC-SHA512를 사용하여 자식 키를 파생합니다. 프로세스는 강화 및 일반 파생에 따라 다릅니다:

일반 자식 키 파생:

HMAC-SHA512(
key = parent_chain_code,
data = parent_public_key || child_index
) → (child_key_data, child_chain_code)

child_private_key = parent_private_key + child_key_data (mod n)

강화 자식 키 파생:

HMAC-SHA512(
key = parent_chain_code,
data = 0x00 || parent_private_key || child_index
) → (child_key_data, child_chain_code)

child_private_key = parent_private_key + child_key_data (mod n)

결정적인 차이점: 강화 파생은 개인 키를 입력으로 사용하고, 일반 파생은 공개 키를 사용합니다. 이는 강화된 자식 키가 부모 공개 키만으로는 파생될 수 없음을 의미합니다.

확장 키 직렬화

확장 키(xprv/xpub)는 여러 정보를 인코딩합니다:

필드크기설명
버전4바이트네트워크 및 키 유형 (xprv의 경우 0488ADE4, xpub의 경우 0488B21E)
깊이1바이트마스터 키로부터의 수준 수
부모 핑거프린트4바이트부모 키 해시의 처음 4바이트
자식 인덱스4바이트몇 번째 자식인지 (강화 비트 포함)
체인 코드32바이트체인 코드
키 데이터33바이트개인 또는 공개 키

전체 구조는 Base58Check로 인코딩되어 친숙한 xprv... 또는 xpub... 문자열을 생성합니다. 세그윗과 네이티브 세그윗의 경우 다른 버전 바이트가 ypub/zpub를 생성합니다.

실용적인 활용

활용 1: 지갑 복구 디버깅

시나리오: 새 지갑에서 시드 문구를 복구했지만 비트코인 잔액이 0으로 표시됩니다.

키 파생 도구를 사용한 진단:

  1. 키 파생 도구에 시드 문구를 입력합니다
  2. m/84'/0'/0'/0/0으로 이동합니다 (네이티브 세그윗, 가장 일반적인 최신 경로)
  3. 주소를 확인합니다 — mempool.space에서 확인합니다
  4. 잔액이 없으면 m/44'/0'/0'/0/0 (레거시)를 시도합니다
  5. m/49'/0'/0'/0/0 (세그윗)을 시도합니다
  6. m/86'/0'/0'/0/0 (탭루트)을 시도합니다
  7. 여전히 잔액이 없으면 계정 1'을 시도합니다: m/84'/0'/1'/0/0
  8. 외부(change=0)와 내부(change=1) 체인 모두 확인합니다

이 체계적인 탐색을 통해 자금이 파생 트리의 정확히 어디에 있는지 밝혀냅니다.

활용 2: 감시 전용 지갑 이해

시나리오: 개인 키를 노출하지 않고 비트코인 잔액을 모니터링하기 위한 감시 전용 지갑을 설정하고 싶습니다.

키 파생 도구 사용:

  1. (에어갭 머신에서) 시드 문구를 입력합니다
  2. 계정 수준으로 이동합니다: m/84'/0'/0'
  3. 이 수준의 **확장 공개 키(zpub)**를 복사합니다
  4. 이 zpub를 감시 전용 지갑 소프트웨어(예: Electrum, BlueWallet)에 가져옵니다
  5. 감시 전용 지갑은 이 수준 아래의 모든 수신 및 거스름돈 주소를 파생할 수 있습니다
  6. 개인 키를 파생하거나 트랜잭션에 서명할 수 없습니다

키 파생 도구는 트리의 어느 수준을 내보내야 하는지, 확장 공개 키에 어떤 정보가 포함되어 있는지 정확히 보여줍니다.

활용 3: 다중 계정 구성

시나리오: 하나의 시드 문구를 사용하면서 비트코인 보유분을 별도의 계정(예: 저축, 거래, 비즈니스)으로 분리하고 싶습니다.

키 파생 도구 사용:

  1. 계정 0: m/84'/0'/0' — 개인 저축
  2. 계정 1: m/84'/0'/1' — 거래
  3. 계정 2: m/84'/0'/2' — 비즈니스

각 계정은 자체 주소 세트와 확장 키를 가집니다. 계정 수준의 강화 파생은 하나의 계정 키가 유출되어도 다른 계정에 영향을 미치지 않도록 보장합니다.

활용 4: 크로스체인 키 탐색

시나리오: 하나의 시드 문구가 비트코인과 이더리움의 주소를 어떻게 생성하는지 이해하고 싶습니다.

키 파생 도구 사용:

  1. 시드 문구를 입력합니다
  2. m/44'/0'/0'/0/0으로 이동합니다 — 비트코인의 키입니다
  3. m/44'/60'/0'/0/0으로 이동합니다 — 이더리움의 키입니다
  4. 관찰: 같은 시드에서 나왔지만 키가 완전히 다릅니다
  5. coin_type 수준(0' vs 60')이 트리가 분기하는 지점입니다

이는 BIP-44의 계층 구조가 단일 시드 복구 가능성을 유지하면서 체인 간 중복을 어떻게 방지하는지 보여줍니다.

활용 5: 하드웨어 지갑 동작 검증

시나리오: 하드웨어 지갑이 제어하는 주소에 대해 거짓말을 하지 않는지 확인하고 싶습니다.

키 파생 도구 사용:

  1. 에어갭 머신에서 하드웨어 지갑을 초기화한 시드 문구를 입력합니다
  2. 하드웨어 지갑이 사용하는 것과 동일한 경로에서 처음 10개 주소를 파생합니다
  3. 각 주소를 하드웨어 지갑이 표시하는 것과 비교합니다
  4. 모두 일치하면 하드웨어 지갑이 BIP-32/44 파생을 올바르게 구현하고 있는 것입니다
  5. 다르면 펌웨어 문제, 다른 패스프레이즈 또는 파생 경로 불일치가 있을 수 있습니다

거스름돈 주소 이해하기

HD 지갑에서 새로운 사용자에게 가장 혼란스러운 측면 중 하나는 **거스름돈 주소(Change Address)**의 개념입니다. 키 파생 도구는 이를 명확히 하는 데 도움을 줍니다.

거스름돈 주소란 무엇인가요?

비트코인(및 유사한 UTXO 기반 체인)에서 주소에서 자금을 사용할 때, 일반적으로 해당 주소의 전체 "미사용 트랜잭션 출력(UTXO)"을 소비합니다. 0.5 BTC를 보내고 싶지만 UTXO가 1.0 BTC인 경우, 트랜잭션은 두 개의 출력을 생성합니다:

  1. 수신자 주소로 0.5 BTC
  2. 사용자가 제어하는 거스름돈 주소0.5 BTC (수수료 제외)

이 거스름돈 주소는 파생 경로의 내부 체인(change = 1)에서 옵니다:

  • 수신 주소: m/84'/0'/0'/0/x
  • 거스름돈 주소: m/84'/0'/0'/1/x

키 파생 도구에서 거스름돈 주소 보기

거스름돈 구성요소를 1로 설정하여 거스름돈 체인으로 이동합니다:

경로유형목적
m/84'/0'/0'/0/0외부첫 번째 수신 주소
m/84'/0'/0'/0/1외부두 번째 수신 주소
m/84'/0'/0'/1/0내부첫 번째 거스름돈 주소
m/84'/0'/0'/1/1내부두 번째 거스름돈 주소

거스름돈 주소를 이해하는 것은 지갑 복구에 매우 중요합니다. 외부 주소만 스캔하면 거스름돈 주소에 있는 자금을 놓칠 수 있습니다. 키 파생 도구는 두 체인 모두를 보여줍니다.

SLIP-44 코인 유형

BIP-44 경로의 coin_type 수준은 SLIP-44에서 등록된 값을 사용합니다. 가장 일반적으로 사용되는 것은 다음과 같습니다:

코인SLIP-44 유형경로 접두사
비트코인0'm/84'/0'/...
비트코인 테스트넷1'm/84'/1'/...
라이트코인2'm/84'/2'/...
도지코인3'm/44'/3'/...
이더리움60'm/44'/60'/...
이더리움 클래식61'm/44'/61'/...
비트코인 캐시145'm/44'/145'/...
스텔라148'm/44'/148'/...
리플 (XRP)144'm/44'/144'/...
카르다노1815'm/1852'/1815'/...
솔라나501'm/44'/501'/...
폴카닷354'm/44'/354'/...
코스모스118'm/44'/118'/...
트론195'm/44'/195'/...
아발란체9000'm/44'/9000'/...

키 파생 도구는 암호화폐를 선택할 때 이러한 등록된 값을 사용하지만, 사용자 정의 경로를 수동으로 입력할 수도 있습니다.

전체 목록은 지원 블록체인을 참조하세요.

고급: 갭 리밋과 주소 발견

지갑이 시드 문구에서 복구할 때 어떤 주소가 사용되었는지 파악해야 합니다. 인덱스 0부터 순차적으로 주소를 스캔하고 블록체인에서 트랜잭션 기록을 확인합니다.

**갭 리밋(Gap Limit)**은 지갑이 스캔을 중지하기 전에 연속된 미사용 주소의 수입니다. BIP-44 표준은 20의 갭 리밋을 권장합니다. 이는 주소 0-15가 사용되었지만 주소 16-35가 사용되지 않았다면, 지갑이 주소 35까지 (16 + 20 갭) 스캔하고 더 이상 사용된 주소가 없다고 결론을 내린다는 것을 의미합니다.

함의:

  • SafeSeed의 주소 생성기에서 20개 이상의 순차 주소를 생성하고 비순차적인 것을 사용하면(예: 인덱스 5에서 인덱스 30으로 건너뜀), 일부 지갑이 복구 중에 나중의 주소를 발견하지 못할 수 있습니다
  • 대부분의 지갑은 설정에서 갭 리밋을 늘릴 수 있습니다
  • 키 파생 도구는 정확히 어떤 인덱스가 파생되었고 잠재적으로 사용되었는지 이해하는 데 도움을 줍니다

FAQ

BIP-32, BIP-44, BIP-49, BIP-84, BIP-86의 관계는 무엇인가요?

BIP-32는 계층적 결정론적 키 파생의 핵심 알고리즘을 정의합니다 — 부모 키에서 자식 키로 가는 방법입니다. BIP-44는 결과 키 트리의 표준 구성(purpose/coin/account/change/index)을 정의합니다. BIP-49, BIP-84, BIP-86은 동일한 BIP-32 알고리즘과 BIP-44 구조를 사용하되 다른 purpose 값(49, 84, 86)과 주소 인코딩 형식(각각 세그윗, 네이티브 세그윗, 탭루트)을 지정하는 확장입니다.

키 파생 도구를 사용하여 잃어버린 암호화폐를 찾을 수 있나요?

올바른 시드 문구가 있지만 어떤 파생 경로가 사용되었는지 모르는 경우, 키 파생 도구가 모든 표준 경로를 체계적으로 탐색하는 데 도움이 됩니다. 각 경로 조합에 대해 주소를 파생하고 블록체인 탐색기에서 확인하세요. 이것이 지갑 복구 디버깅의 가장 일반적인 사용 사례입니다.

"강화" 파생이 실제로 의미하는 것은 무엇인가요?

강화 파생은 자식 키가 부모 개인 키를 사용해야만 파생될 수 있다는 것을 의미합니다. 실질적으로 보안 경계를 생성합니다: 강화된 노드 아래에서 자식 키를 얻은 사람은 부모 개인 키를 발견하기 위해 역으로 작업할 수 없습니다. BIP-44 경로의 첫 세 수준(purpose, coin_type, account)이 강화된 이유가 이것입니다 — 주소 수준에서의 유출이 마스터 키를 노출하는 것을 방지합니다.

지갑이 xpub 대신 zpub를 표시하는 이유는 무엇인가요?

접두사(xpub, ypub, zpub)는 확장 공개 키가 의도하는 주소 형식을 나타냅니다. xpub는 레거시(BIP-44), ypub는 세그윗(BIP-49), zpub는 네이티브 세그윗(BIP-84)용입니다. 모두 동일한 유형의 데이터(체인 코드가 있는 확장 공개 키)를 포함하지만, 예상되는 주소 형식을 알려주는 버전 바이트가 다릅니다. 키 파생 도구는 각 수준에서 어떤 형식이 적용되는지 보여줍니다.

BIP-84 경로를 사용하여 이더리움 키를 파생할 수 있나요?

기술적으로 어떤 경로에서든 키를 파생할 수 있지만, 이더리움은 관례적으로 BIP-44(m/44'/60'/...)를 사용합니다. BIP-84는 네이티브 세그윗 주소를 위한 비트코인 특화 표준입니다. 키 파생 도구는 표준 이더리움 경로를 사용할 때 이더리움 주소를 올바르게 파생합니다. 비표준 경로를 사용하면 유효한 키가 생성되지만 어떤 지갑 소프트웨어도 인식하지 못합니다.

잘못된 계정 인덱스를 사용하면 어떻게 되나요?

계정 0'에서 주소를 파생했지만 자금이 계정 1'에 있으면, 표준 지갑 스캔에서 나타나지 않습니다. 키 파생 도구를 사용하면 다른 계정 인덱스로 이동하여 어떤 계정에 자금이 있는지 발견할 수 있습니다. 대부분의 지갑은 기본적으로 계정 0'을 사용하지만, 일부는 추가 계정 생성을 허용합니다.

키 파생 도구는 패스프레이즈를 어떻게 처리하나요?

패스프레이즈(25번째 단어)는 BIP-32 키 파생이 시작되기 전 초기 시드 파생 단계(BIP-39)에서 적용됩니다. 다른 패스프레이즈는 완전히 다른 마스터 시드를 생성하고, 이는 완전히 다른 키 트리를 생성합니다. 키 파생 도구는 패스프레이즈 적용 후의 마스터 시드를 보여주므로, 올바른 시드로 작업하고 있는지 확인할 수 있습니다.

키 파생의 최대 깊이가 있나요?

BIP-32는 이론적으로 임의의 깊이까지 파생을 지원하지만, BIP-44는 다섯 수준(purpose/coin/account/change/index)으로 표준화합니다. 다섯 수준 이상으로 가는 것은 비표준이며 일반적인 지갑 소프트웨어에서 지원하지 않습니다. 키 파생 도구는 표준 다섯 수준을 지원하며 고급 탐색을 위한 사용자 정의 경로를 허용합니다.

관련 가이드