BIP-39 니모닉의 마지막 단어는 11비트 가운데 일부가 앞 단어들이 만든 엔트로피의 SHA-256 해시 앞부분(체크섬)입니다. 체크섬 길이는 엔트로피 길이의 32분의 1이라 12단어는 4비트, 24단어는 8비트입니다. 그래서 앞 단어를 고정하면 12단어는 2048개 후보 중 128개, 24단어는 8개만 체크섬이 맞습니다(이 글의 계산). BIP 원문은 체크섬이 짧아 임의의 오류를 1/256 확률로 놓치고 오류 정정은 못 한다고 적습니다. 체크섬이 맞다는 것은 단어 입력이 형식에 맞는다는 뜻일 뿐, 그 지갑에 자산이 있다는 뜻이 아닙니다.
확인 기준일 2026-10-27 · 다음 확인 예정 2026-11-26
체크섬이 붙는 과정
원문의 순서는 이렇습니다. 엔트로피 ENT비트를 만들고, 그 SHA-256 해시의 처음 ENT/32비트를 체크섬으로 끝에 붙인 뒤, 전체를 11비트씩 나눠 0부터 2047까지의 번호로 바꾸고 단어 목록에서 단어를 고릅니다. ENT가 128이면 체크섬 4비트가 붙어 132비트, 즉 12단어가 됩니다. 아래 표의 앞 세 열은 원문 표이고, 뒤 두 열은 11비트 마지막 단어에서 엔트로피가 차지하는 비트와 그에 따라 맞는 후보 수를 이 글이 계산한 값입니다.
| 길이 | ENT(비트) | CS(비트) | 마지막 단어의 엔트로피 비트 | 앞 단어 고정 시 유효 후보 |
|---|---|---|---|---|
| 12단어 | 128 | 4 | 7 | 128 / 2048 |
| 15단어 | 160 | 5 | 6 | 64 / 2048 |
| 18단어 | 192 | 6 | 5 | 32 / 2048 |
| 21단어 | 224 | 7 | 4 | 16 / 2048 |
| 24단어 | 256 | 8 | 3 | 8 / 2048 |
체크섬이 알려 주는 것과 못 하는 것
원문은 이 방식이 아닌 다른 방법으로 만든 문장을 쓸 수도 있지만 권하지 않으며, 소프트웨어는 단어 목록으로 체크섬을 계산해 맞지 않으면 경고해야 한다고 적습니다. 단점도 스스로 밝힙니다. 체크섬이 짧아 무작위 오류를 걸러 내는 확률이 낮고(1/256 오류를 놓침), 어느 단어가 틀렸는지 고쳐 주는 기능은 없습니다. 또 패스프레이즈는 어떤 값을 넣어도 유효한 시드를 만들어 내기 때문에 틀린 패스프레이즈를 체크섬으로 가려낼 수 없고, 다른 단어 목록으로 번역하면 완전히 다른 시드가 나옵니다. 시드 문구의 기본 구조는 시드 문구란 글에서, 같은 시드에서 주소가 달라지는 이유는 파생 경로 글에서 다뤘습니다.
백업을 점검할 때의 의미
복구 화면에서 체크섬 경고가 뜨면 철자나 순서를 의심할 이유가 됩니다. 반대로 경고가 없어도 단어가 원래 문구와 같다는 증명은 아닙니다. 12단어에서 임의의 잘못된 마지막 단어가 우연히 통과할 확률이 약 16분의 1이라는 점은 위 표에서 나온 계산이며, 원문에 그 수치가 직접 적혀 있지는 않습니다. 그래서 복구 검증은 같은 주소가 다시 나오는지로 하는 편이 낫습니다. 분할 보관은 샤미르 백업 글에서 다룹니다. 이 글은 단어 목록 전문이나 개별 단어 예시를 싣지 않았습니다.
자주 묻는 질문
마지막 단어는 아무거나 골라도 되나요?
원문 구조상 마지막 단어의 일부 비트는 앞 단어로 정해지는 체크섬입니다. 12단어는 2048개 중 128개만 맞는다는 것이 이 글의 계산입니다.
체크섬이 맞으면 안전한 시드인가요?
체크섬은 입력 형식 검사입니다. 엔트로피가 충분히 무작위로 만들어졌는지는 이 검사로 알 수 없고, 원문도 그런 보증을 하지 않습니다.
24단어는 12단어보다 오타를 더 잘 걸러 내나요?
체크섬이 8비트로 길어 우연히 통과할 확률은 256분의 1로 계산됩니다. 그래도 오류를 고쳐 주지는 못합니다.



