본문으로 건너뛰기

키 파생 도구 튜토리얼: 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):

  • 부모 공개 키로 모든 자식 공개 키를 파생할 수 있습니다
  • 자식 개인 키와 부모 공개 키가 모두 유출되면 부모 개인 키를 계산할 수 있습니다
  • change 및 address_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)으로 표준화합니다. 다섯 수준 이상으로 가는 것은 비표준이며 일반적인 지갑 소프트웨어에서 지원하지 않습니다. 키 파생 도구는 표준 다섯 수준을 지원하며 고급 탐색을 위한 사용자 정의 경로를 허용합니다.

관련 가이드​