단어 12개에 평생 모은 비트코인이 전부 담긴다
12개 또는 24개의 단어가 어떻게 무한한 비트코인 키를 대신 보관하는가. BIP-39 니모닉, BIP-32 HD 지갑, 파생 경로, 그리고 시드를 안전하게 백업하는 실전 원칙.
비트코인 개인 키는 이렇게 생겼습니다.
e9873d79c6d87dc0fb6a5778633389f4453213303da61f20bd67fc233aa33262
64자리의 16진수 문자열을 정확히 종이에 옮겨 적고, 한 글자도 틀리지 않게 보관할 수 있을까요? 게다가 프라이버시를 위해 거래마다 새 주소(새 키)를 쓰는 것이 권장됩니다. 그렇다면 키가 수십, 수백 개로 늘어납니다. 이 모든 키를 따로따로 백업하는 것은 현실적으로 불가능합니다. 시드 문구와 HD 지갑은 바로 이 문제를 풀기 위해 등장했습니다.
시드 문구: 사람이 읽을 수 있는 백업
오늘날 거의 모든 지갑은 처음 만들 때 12개 또는 24개의 영어 단어를 보여 줍니다.
witch collapse practice feed shame open despair creek road again ice least
이것을 시드 문구(seed phrase) 또는 니모닉(mnemonic, 기억 보조 문구) 이라 부르며, 표준은 BIP-39입니다. 작동 원리는 이렇습니다.
- 지갑이 128비트(12단어) 또는 256비트(24단어)의 무작위 엔트로피를 생성합니다.
- 그 숫자를 2048개의 정해진 단어 목록에 대응시켜 단어로 바꿉니다.
- 마지막 몇 비트는 체크섬으로, 단어를 잘못 적으면 지갑이 오류를 감지합니다.
즉 시드 문구는 거대한 난수를 사람이 옮겨 적기 쉬운 형태로 인코딩한 것입니다. 16진수보다 단어가 외우기도, 손으로 적기도, 오류를 잡기도 쉽습니다.
HD 지갑: 씨앗 하나에서 자라는 키의 나무
시드 문구는 단순한 백업이 아닙니다. 그 자체가 모든 키를 낳는 씨앗입니다. 이 구조를 HD 지갑(Hierarchical Deterministic Wallet) 이라 하고, 표준은 BIP-32입니다.
- 시드 문구 → 마스터 시드 → 마스터 개인 키
- 마스터 키 하나에서 결정론적(deterministic) 으로 자식 키를 무한히 파생
"결정론적"이라는 말이 핵심입니다. 같은 시드에서는 언제나 똑같은 순서로 똑같은 키들이 나옵니다. 그래서 지갑 앱을 지우거나 하드웨어를 잃어버려도, 시드 문구 12단어만 있으면 새 기기에서 모든 주소와 잔고를 그대로 복원할 수 있습니다. 키 하나하나를 백업할 필요가 없습니다. 씨앗 하나면 나무 전체가 다시 자랍니다.
시드 문구 (12/24 단어)
▼
마스터 키
├── 주소 0
├── 주소 1
├── 주소 2
└── … (무한)
파생 경로와 확장 공개 키
자식 키는 파생 경로(derivation path) 라는 주소로 식별됩니다. 흔한 형식(BIP-44)은 다음과 같습니다.
m / 44' / 0' / 0' / 0 / 5
│ │ │ │ │ └ 주소 번호
│ │ │ │ └ 외부(받기)/내부(거스름돈)
│ │ │ └ 계정 번호
│ │ └ 코인 종류 (0' = 비트코인)
│ └ 목적 (44' = BIP-44)
└ 마스터
지갑마다 기본 경로가 정해져 있어, 같은 시드를 다른 지갑에 복원해도 같은 주소가 나오도록 호환됩니다.
여기서 한 가지 강력하지만 위험한 도구가 확장 공개 키(xpub) 입니다. xpub은 개인 키 없이도 그 지갑의 모든 미래 주소를 미리 계산할 수 있게 해 줍니다. 덕분에 잔고만 들여다보는 감시 전용(watch-only) 지갑을 만들 수 있습니다. 하지만 바꿔 말하면, xpub을 공개하면 당신의 모든 거래 내역이 한꺼번에 드러납니다. xpub은 절대로 함부로 공유하지 마십시오.
패스프레이즈: 25번째 단어
BIP-39에는 선택 사항인 패스프레이즈(passphrase), 흔히 "25번째 단어"라 불리는 기능이 있습니다. 시드 문구에 자신만 아는 추가 비밀 문구를 덧붙이면, 완전히 다른 별개의 지갑이 만들어집니다.
- 시드 문구만 노출되어도, 패스프레이즈를 모르면 자금에 접근할 수 없습니다.
- 강요받는 상황에서 패스프레이즈 없는 "미끼 지갑"을 보여 줄 수 있습니다(그럴듯한 부인).
다만 패스프레이즈를 잊으면 그 지갑의 자금도 영원히 사라집니다. 보안이 강해지는 만큼 책임도 커집니다.
시드를 지키는 실전 원칙
시드 문구를 가진 사람이 곧 그 비트코인의 주인입니다. 따라서 시드 보관은 비트코인 보안의 핵심입니다.
- 오프라인에만 적어 두십시오. 종이에 손으로 적고, 장기 보관에는 불에 타지 않는 금속 백업을 권장합니다.
- 절대 디지털로 저장하지 마십시오. 사진, 스크린샷, 클라우드, 메모 앱, 이메일은 모두 해킹 대상입니다.
- 어떤 웹사이트에도 입력하지 마십시오. 정상적인 지갑은 시드를 다시 묻지 않습니다. 시드를 요구하는 사이트는 100% 피싱입니다.
- 복원을 한 번 검증하십시오. 적어 둔 문구로 실제 복원이 되는지 소액으로 확인한 뒤 본격적으로 사용하십시오.
- 중고 하드웨어 지갑의 "미리 설정된 시드"를 쓰지 마십시오. 반드시 새 기기에서 직접 시드를 생성해야 합니다.
- 분산 보관과 상속을 고려하십시오. 한 곳에 두면 화재·도난에 취약하고, 아무도 모르면 사망 시 영원히 잠깁니다.
연결되는 개념
- 공개키 암호학 - 시드가 낳는 개인 키와 공개 키의 원리
- 비트코인 지갑 완벽 가이드 - 시드를 담는 지갑의 종류와 선택
- 백업과 상속 계획 - 시드를 장기 보관하고 물려주는 전략
- 멀티시그 - 단일 시드의 위험을 분산하는 다중 키 보안
- 비트코인 주소의 원리 - 파생된 키가 주소가 되는 과정