HD 지갑은 하나의 시드에서 나무처럼 많은 키를 만듭니다. 지갑이 서로 다른 파생 경로, 주소 유형, 계정 번호, 외부·거스름돈 체인을 조회하면 같은 시드에서도 다른 주소가 나옵니다. 잔액이 보이지 않을 때는 새 거래부터 만들지 말고 원래 지갑의 네트워크·스크립트 유형·파생 경로·사용 계정을 확인해야 합니다.
시드 하나에서 키가 나무처럼 갈라진다
계층적 결정론 지갑, 즉 HD 지갑은 하나의 시드에서 마스터 확장 키를 만들고 그 아래에 자식 키를 연속해서 파생합니다. BIP 32는 확장 키를 일반 키와 체인 코드의 조합으로 정의하고, 부모와 색인을 이용해 자식 키를 만드는 구조를 설명합니다. 그래서 백업할 때 모든 주소의 개인키를 따로 저장하지 않아도 같은 출발점과 같은 규칙을 알면 주소 묶음을 다시 계산할 수 있습니다.
하지만 같은 출발점이라는 사실만으로 같은 화면이 자동 보장되지는 않습니다. 키 트리에는 수많은 가지가 있고 지갑마다 어느 가지를 기본으로 조회할지 정합니다. 한 앱이 네이티브 세그윗 계정을 보고 다른 앱이 전통 주소 계정을 보면 두 앱 모두 시드에서 유효한 키를 만들면서도 서로 다른 주소를 보여 줍니다. 따라서 시드는 복구의 핵심 재료이고 파생 경로는 찾을 위치를 알려 주는 지도입니다.
| 단계 | 예시 | 의미 |
|---|---|---|
| 목적 | 44' | 사용할 지갑 규약 |
| 코인 유형 | 0' | 비트코인 계열 식별 |
| 계정 | 0' | 첫 번째 논리 계정 |
| 체인 | 0 또는 1 | 수신용 외부 체인 또는 거스름돈 내부 체인 |
| 주소 색인 | 0, 1, 2… | 체인 안의 개별 주소 |
경로 표기에서 작은따옴표가 뜻하는 것
m/44'/0'/0'/0/0 같은 표기에서 m은 마스터 개인 확장 키를 가리킵니다. 숫자 뒤의 작은따옴표는 hardened 파생을 나타내는 관례입니다. BIP 32에서는 hardened 자식 색인이 일반 자식과 다른 범위에 있고, 부모 확장 공개키만으로는 hardened 자식 공개키를 계산할 수 없습니다. 이 구분은 공개키만 공유해 주소를 만들 수 있는 범위와 개인 정보가 필요한 경계를 나눕니다.
경로를 한 글자 잘못 입력하면 기존 주소와 전혀 다른 유효한 주소 집합이 나올 수 있습니다. 오류 메시지가 없다는 점이 특히 중요합니다. 잘못된 경로도 수학적으로 정상적인 키를 만들 수 있기 때문입니다. 복구 도구에 경로를 직접 입력해야 한다면 원래 지갑의 공식 문서나 과거에 기록한 디스크립터를 근거로 사용하고, 인터넷 게시글의 경로를 추측해 무작정 바꾸지 않습니다.
시드는 출발점이고 파생 경로는 찾을 위치를 알려 주는 지도다.
JOBCOIN 해설
계정 번호와 외부·내부 체인이 주소를 바꾼다
BIP 44는 purpose', coin_type', account', change, address_index의 다섯 단계를 제안합니다. 계정 0과 계정 1은 같은 시드 아래에서도 분리된 가지입니다. 과거 지갑에서 두 번째 계정을 사용했는데 새 지갑이 계정 0만 자동 검색하면 잔액이 없는 것처럼 보일 수 있습니다. 계정 이름은 블록체인에 저장되지 않으므로 예전에 붙인 '저축용' 같은 이름이 복구 후 자동으로 돌아오지 않을 수도 있습니다.
change가 0이면 외부 수신 체인, 1이면 내부 거스름돈 체인을 뜻하는 구성이 일반적입니다. 사용자가 받은 주소만 찾고 내부 체인을 스캔하지 않으면 이전 지출 뒤 남은 거스름돈을 놓칠 수 있습니다. 복구 소프트웨어는 보통 두 체인을 모두 검색하지만, 감시 범위나 gap limit 설정에 따라 먼 색인의 사용 주소를 즉시 찾지 못할 수 있습니다.
- 원래 사용한 네트워크와 코인 종류를 확인한다.
- 주소가 1·3·bc1q·bc1p 중 어떤 형식이었는지 기록한다.
- 계정 번호를 여러 개 사용했는지 확인한다.
- 외부 주소와 거스름돈 체인을 모두 스캔하는지 확인한다.
주소 유형이 바뀌면 목적 경로도 달라질 수 있다
지갑 생태계에서는 주소 유형을 구분하기 위해 BIP 44 외에도 목적 번호가 다른 관례를 사용합니다. 전통 P2PKH, P2SH로 감싼 세그윗, 네이티브 세그윗, Taproot 계정이 서로 다른 경로에 놓이는 경우가 많습니다. 같은 시드로 bc1q 주소를 사용하던 사람이 새 앱의 'legacy' 계정만 열면 과거 주소가 나타나지 않는 이유입니다.
앱이 경로 이름을 숨기고 'Bitcoin', 'SegWit', 'Taproot' 같은 계정 이름만 보여 줄 수도 있습니다. 이때는 원래 수신 주소의 접두사와 지갑 내보내기 정보, 공식 복구 안내를 함께 확인합니다. 주소 유형을 맞춘 뒤에도 잔액이 없으면 계정 번호와 스캔 범위를 차례로 점검합니다. 여러 항목을 동시에 바꾸면 어느 조건에서 과거 주소가 나타났는지 기록하기 어려워집니다.
gap limit은 빈 주소가 이어질 때 검색을 멈추는 기준이다
BIP 44는 외부 체인을 검색할 때 일정 수의 연속된 미사용 주소를 만나면 탐색을 멈추는 gap limit 개념을 설명합니다. 사용자가 주소를 많이 생성한 뒤 중간 주소를 건너뛰고 먼 색인의 주소만 사용했다면 새 지갑의 기본 검색 범위 밖에 자금 기록이 있을 수 있습니다. 이는 키가 사라진 것이 아니라 지갑이 아직 그 위치까지 살펴보지 않은 상황일 수 있습니다.
gap limit을 무작정 크게 올리면 동기화 시간과 조회 부담이 늘 수 있습니다. 먼저 과거 거래 내역이나 본인이 보관한 수신 주소가 시드에서 파생되는지 안전한 환경에서 확인하고, 지갑이 제공하는 재검색 또는 계정 발견 기능을 사용합니다. 복구 문구를 웹사이트에 입력해 주소를 찾는 방식은 피해야 합니다. 시드가 노출되면 경로를 맞추는 문제보다 훨씬 큰 자금 탈취 위험이 생깁니다.
복구 전후에 남겨야 할 정보
복구 준비에는 복구 문구 외에도 지갑 이름과 버전, 사용 네트워크, 주소 유형, 파생 경로, 계정 번호, 첫 수신 주소 몇 개를 오프라인으로 기록하는 것이 도움이 됩니다. 확장 공개키나 디스크립터를 저장할 때는 개인키가 포함됐는지 반드시 구분합니다. xpub은 직접 서명할 수 없지만 주소 묶음과 거래 내역을 추적할 수 있어 개인정보로 취급해야 합니다.
복구 후에는 새 지갑이 과거에 사용한 주소 몇 개를 정확히 재현하는지 먼저 확인합니다. 잔액 숫자만 맞는지 보는 것보다 주소와 거래 내역, 거스름돈까지 대조해야 합니다. 불일치가 있으면 송금을 만들지 말고 읽기 전용 상태에서 경로를 점검합니다. 같은 시드에서 나온 새 주소라고 해서 과거 자금의 올바른 복구 지점이라는 뜻은 아닙니다.
자주 묻는 질문
같은 복구 문구인데 주소가 다르면 자금이 사라진 건가요?
대개 경로·주소 유형·계정·스캔 범위가 다른지 먼저 확인해야 합니다. 올바른 가지를 찾으면 과거 주소와 거래를 다시 볼 수 있습니다.
xpub만 있으면 코인을 쓸 수 있나요?
일반적으로 확장 공개키만으로는 서명할 수 없지만, 하위 공개 주소와 거래 내역을 추적할 수 있으므로 공개 게시해서는 안 됩니다.
파생 경로를 추측해 여러 번 바꿔도 되나요?
읽기 전용 확인은 가능하지만 공식 문서와 과거 주소를 근거로 한 단계씩 검증해야 합니다. 복구 문구를 온라인 도구에 입력하는 방식은 피해야 합니다.



