"시드를 가져왔는데 잔액이 0이에요": 파생 경로 쉽게 이해하기

·5분 읽기·작성자: SSP Editorial Team
SSP Academy 표지: 시드를 가져왔는데 잔액 0 - 파생 경로 설명

"시드를 가져왔는데 잔액이 0입니다": 파생 경로 설명

새 지갑에 12개 또는 24개의 단어를 입력했고 가져오기는 성공했는데, 잔액이 0으로 표시됩니다. 놀라운 순간이지만 대부분의 경우 잃어버린 것은 없습니다. 단어는 맞습니다. 새 지갑이 다른 곳을 들여다보고 있을 뿐입니다.

이 가이드에서는 그 이유, 코인이 어디에 있는지 찾는 방법, 그리고 SSP 시드 하나만으로는 왜 다르게 동작하는지 설명합니다.

하나의 시드, 여러 개의 지갑

복구 문구 자체에는 주소가 들어 있지 않습니다. 복구 문구는 마스터 키를 만들고, 지갑은 그 마스터 키에서 파생 경로(키 트리를 따라가는 길)를 거쳐 각 주소에 도달합니다. 경로의 어느 한 단계라도 바뀌면, 완전히 유효하지만 대개 비어 있는 전혀 다른 주소 묶음에 도달합니다. 잘못된 것이 없으니 오류도 나타나지 않습니다.

경로는 다음과 같은 형태입니다.

m / purpose' / coin_type' / account' / change / index

purpose는 표준을, coin_type은 체인을 선택하고, account는 계정을 구분하며, change는 수신 주소(0)와 잔돈 주소(1)를 나누고, index는 0부터 차례로 주소를 셉니다. 트리에 대한 자세한 내용은 BIP-48 해설에서 확인할 수 있습니다.

흔한 원인

가져온 뒤 잔액이 0으로 나온다면, 거의 항상 다음 중 하나가 원인입니다.

주소 유형(비트코인). 같은 시드에서 네 가지 계열의 비트코인 주소가 만들어집니다.

  • BIP-44, m/44'/0'/0': 레거시 주소, 1로 시작
  • BIP-49, m/49'/0'/0': 래핑된 SegWit, 3으로 시작
  • BIP-84, m/84'/0'/0': 네이티브 SegWit, bc1q로 시작
  • BIP-86, m/86'/0'/0': Taproot, bc1p로 시작

예전 지갑이 네이티브 SegWit을 썼는데 새 지갑의 기본값이 레거시라면 아무것도 보이지 않습니다. 예전 수신 주소의 접두사를 보면 어떤 유형을 골라야 할지 알 수 있습니다.

이더리움의 파생 방식 차이. 대부분의 이더리움 지갑은 m/44'/60'/0'/0/i를 사용하며, 새 주소마다 마지막 숫자를 하나씩 올립니다. 반면 Ledger Live는 계정 단계를 올립니다: m/44'/60'/i'/0/0. 두 방식 모두 첫 번째 주소는 같기 때문에, 두 번째나 세 번째 주소를 찾을 때까지 차이를 알아차리지 못하는 경우가 많습니다.

패스프레이즈. BIP-39 패스프레이즈(이른바 "25번째 단어")는 같은 시드를 완전히 별개의 지갑으로 바꿉니다. 빠뜨리거나 한 글자만 잘못 입력해도, 아무 경고 없이 다른 빈 지갑이 열립니다. 패스프레이즈 장단점 가이드에서 이것이 왜 이 기능의 강점이자 위험인지 설명합니다.

계정 번호. 예전 지갑에서 "계정 2"를 사용했다면, 자금은 0이 아니라 account' = 1 아래에 있습니다. 많은 지갑은 직접 추가하지 않는 한 첫 번째 계정만 복원합니다.

갭 한도. 지갑은 모든 번호를 끝없이 확인할 수 없기 때문에, 주소를 순서대로 검색하다가 사용되지 않은 주소가 연달아 일정 개수 나오면 멈춥니다. 관례상 그 개수는 20개입니다. 예전에 35번 주소를 건넨 적이 있는데 15번부터 34번까지는 쓰지 않았다면, 표준 검색은 35번에 닿기 전에 멈춥니다. 지갑 설정에서 갭 한도를 높일 수 있다면, 높이는 것만으로 대개 찾지 못했던 코인이 나타납니다.

차분하게 원인 찾기

  1. 당황하지 말고, 아무것도 옮기지 마세요. 가져온 뒤 잔액이 0인 것은 거의 항상 경로 문제이지 도난이 아닙니다.
  2. 자금이 있었다고 확실히 아는 주소 하나를 찾으세요. 예전 영수증, 거래소 출금 기록, 직접 남긴 메모 등이 단서가 됩니다. 블록 탐색기에서 조회해 코인이 아직 그대로 있는지 확인하세요.
  3. 그 주소의 형식을 적어 두세요. 접두사(1, 3, bc1q, bc1p, 0x)로 주소 계열을 알 수 있으니, 새 지갑에서 같은 계열을 선택하세요.
  4. 시드를 만든 지갑이 무엇인지 확인하세요. 해당 지갑의 문서에 사용하는 경로가 나와 있습니다.
  5. 계정 번호, Ledger 방식, 갭 한도를 하나씩 시도하며, 나타나는 주소를 이미 알고 있는 주소와 비교하세요.
  6. 자금을 "찾아 준다"고 약속하는 웹사이트에는 절대 시드를 입력하지 마세요. 평판이 좋고 오프라인에서도 동작하는 지갑 소프트웨어만 사용하세요.

SSP 시드 하나만으로는 빈 지갑만 보이는 이유

SSP는 2/2 멀티시그 지갑이며, 이 때문에 상황이 완전히 달라집니다. 브라우저의 SSP Wallet과 휴대폰의 SSP Key는 각자 고유한 시드를 가지고 있습니다. 코드상으로 두 쪽 모두 BIP-48에 따라 m/48'/coin'/0'/script' 아래에서 키를 파생하며, 비트코인의 경우 스크립트 유형이 네이티브 SegWit 멀티시그(P2WSH)이므로 계정은 m/48'/0'/0'/2'에 위치합니다. 그리고 각 SSP 주소는 양쪽에서 하나씩 가져온 두 개의 공개 키를 2/2 스크립트로 묶어 만들어집니다. EVM과 Solana 볼트도 마찬가지로 두 키를 모두 입력으로 사용합니다.

따라서 SSP Wallet 시드를 일반 단일 서명 지갑에 가져오면, SSP가 한 번도 사용하지 않은 단일 키 주소가 파생됩니다. 그 주소들이 비어 있는 것은 당연한 일입니다. 코인은 어떤 시드 하나로도 재구성할 수 없는 멀티시그 주소에 있습니다. 지갑은 주소를 알아내는 데만도 상대편의 공개 키가 필요하고, 그 주소에서 출금하려면 양쪽 서명이 모두 필요합니다.

SSP를 복원하려면 SSP 안에서 양쪽을 모두 복원해야 합니다. 먼저 시드로 SSP Wallet을 복원한 다음, SSP Key와 동기화해 지갑이 키 쪽의 공개 데이터를 다시 받도록 합니다. 브라우저만 잃어버렸다면, SSP Key로 시드 없이도 되살릴 수 있습니다. 자세한 내용은 브라우저를 잃어버렸을 때 SSP 복구하기를 참고하세요. 복구 기초에서는 상황별로 무엇이 필요한지 정리했습니다.

주소 검색과 관련해 SSP만의 특징이 하나 있습니다. SSP Wallet은 갭 한도 방식의 검색을 사용하지 않습니다. 각 체인에는 직접 추가한 주소가 보관되며, 체인당 최대 20개까지 번호 0부터 순서대로 생성됩니다. 복원 후 예전에 쓰던 주소가 보이지 않는다면, 주소를 다시 추가하면 같은 주소가 같은 순서로 다시 생성됩니다.

솔직한 요약

시드는 하나의 주소 목록이 아니라 트리 전체를 여는 열쇠입니다. 주소 유형, 코인 경로, 패스프레이즈, 계정 번호, 갭 한도가 모두 지갑이 어느 가지를 볼지 결정하며, 가져온 뒤 잔액이 0이라면 대개 코인이 사라진 것이 아니라 엉뚱한 가지를 보고 있다는 뜻입니다.

SSP에서는 시드 하나가 결코 지갑 전체가 아닙니다. 자금은 SSP Wallet과 SSP Key 양쪽으로 만들어진 2/2 주소에 있으므로, 복원이란 시드 하나를 다른 곳에 가져오는 것이 아니라 SSP 안에서 양쪽을 모두 복원하는 것을 뜻합니다.

이 글 공유하기

관련 글