용어집 / 지갑과 수탁
니모닉 단어 목록
- 니모닉 단어 목록이란 무엇입니까?
- 니모닉 단어 목록은 지갑이 무작위 비트를 기록 가능한 단어로 바꾸기 위해 색인하는 고정 사전이며, BIP-39는 지원되는 언어와 문자 체계마다 하나씩, 모두 열 가지 목록을 공개합니다.
BIP-39에 명시되어 있습니다.
단어 목록은 사전이지 비밀이 아닙니다. 누구나 내려받을 수 있으며, 보안은 어떤 단어가 어떤 순서로 선택되었는지에서 나옵니다. 각 공식 목록에는 정확히 2,048개의 항목이 있으므로 백업의 모든 단어는 11비트를 담을 뿐 그 이상은 담지 않습니다. 달리 이유가 없다면 백업은 영어로 옮겨 적으십시오. 사양 자체가 나머지 아홉 개 언어를 쓰지 말라고 강력히 권고하기 때문입니다.
작동 방식
모든 니모닉 단어 목록에 2,048개의 항목이 있는 것은 2,048이 2의 11제곱이기 때문입니다. 그래서 대응은 조회의 마법이 아니라 산술입니다. 지갑의 엔트로피와 체크섬을 11비트 단위로 나누고, 각 단위를 0과 2,047 사이의 수로 읽은 다음, 그 위치에 있는 항목을 출력합니다. 영어 파일에서 위치 0은 "abandon"이고 위치 2,047은 "zoo"입니다.
인코더가 신경 쓰는 것은 위치뿐입니다. 각 파일은 알파벳순으로 저장되므로 지갑은 2,048개 행을 훑는 대신 이진 검색이나 접두사 트리로 입력된 단어를 찾을 수 있습니다. 모든 언어가 자기 어휘를 정렬하기 때문에 인덱스 500은 영어에서는 "direct"이고 프랑스어에서는 "dauphin"입니다.
BIP-39는 좋은 파일을 위한 세 가지 목표를 제시합니다. 입력한 네 글자로 단어를 식별할 수 있어야 하고, "build"와 "built", "woman"과 "women" 같은 유사 중복어는 배제되어야 하며, 전체가 정렬되어 있어야 합니다. 영어는 첫 번째와 세 번째 목표를 그대로 충족합니다. 항목은 세 글자에서 여덟 글자까지이며, 2,048개 중 어떤 두 항목도 네 글자 접두사를 공유하지 않습니다.
두 번째 목표는 들리는 것보다 느슨합니다. 사양 자체의 예시는 지켜졌습니다. "build", "woman", "quick"은 파일에 있고 "built", "women", "quickly"는 없습니다. 그러나 한 글자 차이의 이웃 단어가 많이 살아남았습니다. "angle"과 "ankle", "action"과 "auction", "awake"와 "aware"는 모두 같은 2,048개 안에 있습니다. 백업을 옮겨 적을 때는 단어의 모양이 아니라 단어 전체를 읽으십시오.
네 글자 약속에는 알아 둘 만한 빈틈이 있습니다. 영어 항목 103개는 세 글자에 불과하고, 그중 49개는 같은 파일의 더 긴 항목의 시작입니다. "act"는 "action", "actor", "actress", "actual" 옆에 있고, "art"는 "artefact", "artist", "artwork" 옆에 있습니다. 네 번의 키 입력으로는 "act"를 전혀 선택할 수 없으므로 지갑은 공백이나 제안 항목에 대한 탭을 받아들여야 합니다. 적어 둔 약어는 여전히 안전합니다. 모든 항목을 네 글자로 잘라도 서로 다른 문자열 2,048개가 남기 때문입니다. 구분 기호가 필요한 것은 실시간 입력입니다.
영어와 함께 아홉 개의 번역이 존재합니다. 일본어, 한국어, 스페인어, 중국어 간체와 번체, 프랑스어, 이탈리아어, 체코어, 포르투갈어입니다. 각각은 자체적으로 공개된 규칙에 따라 만들어졌습니다. 프랑스어 항목은 다섯에서 여덟 글자이며, 민족 명칭은 없고 곡절 부호나 세디유가 붙은 것은 없습니다. 이탈리아어는 같은 모음이 두 번 겹치는 것과, 자체 규칙에 따라 "words that remind negative/sad/bad things"(부정적·슬픈·나쁜 것을 연상시키는 단어)를 배제합니다. 체코어는 분음 부호가 붙은 모든 글자를 제외하며, 저자는 이를 가장 어려운 과제라고 부릅니다. 체코어 글자의 3분의 1에 분음 부호가 있기 때문입니다.
언어 간 충돌은 아무도 언급하지 않는 부분입니다. 스페인어는 다른 어떤 언어와도 항목을 공유하지 않으므로, 스페인어 단어 하나로 전체 문구를 식별할 수 있습니다. 영어와 프랑스어는 그렇게 깔끔하지 않습니다. 100개의 단어가 두 파일에 모두 나타나며, 그중에는 "abandon", "orange", "piano", "puzzle", "village"가 있고, 그 100개 중 어느 것도 두 파일에서 같은 인덱스에 있지 않습니다. "abandon"은 영어에서 0이고 프랑스어에서 1입니다.
그 차이가 중요한 것은 시드가 그 뒤의 인덱스가 아니라 입력한 글자에서 나오기 때문입니다. BIP-39는 이어 붙인 문장 자체를 늘리므로, 그러한 공유 단어 100개만으로 만든 문구는 어느 언어 설정에서든 같은 시드를 냅니다. 반면 인덱스에서 계산되는 체크섬은 보통 잘못된 언어 설정에서 그 문구를 거부합니다. 문구를 실제로 번역하여 각 단어를 다른 파일의 같은 인덱스 단어로 바꾸면 문장이 달라지고 따라서 완전히 다른 지갑이 나옵니다.
비트코인을 구매할 때 이것이 중요한 이유
2,048개 항목 단어 목록에서 뽑은 스물네 단어는 256비트의 무작위성을 인코딩하든 72비트를 인코딩하든 똑같아 보입니다. 단어 목록은 옮겨 적는 형식일 뿐 그 뒤의 숫자 품질에 대한 증거를 담지 않으며, 이 사이트의 리뷰에서 다룬 Coldcard 결함이 5년 넘게 눈에 띄지 않은 이유가 여기에 있습니다. 2021년 3월부터 빌드 오류로 인해 시드 생성이 소프트웨어 난수 생성기로 연결되었고, 그 결과 실효 탐색 공간은 Coinkite가 추정하기에 Mk2와 Mk3에서 약 40비트, Mk4, Mk5, Q에서 약 72비트로, 목표치 128비트에 못 미쳤습니다. 수정된 펌웨어는 2026년 7월 31일에 배포되었습니다. 인쇄된 단어는 결코 달라 보이지 않았고, 그 무엇도 누구에게 경고할 수 없었습니다.
언어 문제는 이 사이트의 231개 국가별 가이드에서 다르게 나타납니다. 마드리드, 프라하, 오사카의 독자는 지갑 앱에서 현지화된 파일을 제공받을 수 있으며, BIP-39 자체는 대다수 지갑이 영어만 지원한다는 점과 대안은 쓰지 말라고 강력히 권고한다는 점을 분명히 밝힙니다. 번역된 파일은 지금 옮겨 적는 문제를 해결하고, 나중에는 복원 문제를 만듭니다. 그때는 그 옵션을 제공한 지갑이 이미 사라졌을 수 있고 대체 지갑이 영어만 읽을 수도 있습니다. 일본어에는 두 번째 함정이 있습니다. 문구가 ASCII 공백이 아니라 표의 문자 공백으로 쓰이므로, 잘못된 키보드로 다시 입력한 문구는 맞아 보이면서도 잘못 나뉠 수 있습니다.
이 사이트에서 리뷰한 일부 지갑은 그 선택을 아예 피합니다. 3.8점을 받은 Tangem은 2장 세트가 $59.90, 3장 세트가 $69.90에 판매되며 기본적으로 문구를 표시하지 않고 카드 안에서 키를 생성하므로, 고를 파일도 없고 사진으로 남길 것도 없습니다. 이는 단어 목록이 만드는 문제에 대한 진정한 답이며, 리뷰에서 설명하는 나름의 비용을 지닙니다.
Trezor Safe 5가 스무 단어를 건넬 수 있는 이유
Trezor Safe 5는 12개, 20개, 24개 단어 백업을 지원하며, 20개는 BIP-39 길이가 아닙니다. BIP-39는 12개, 15개, 18개, 21개, 24개 단어만 만들고 그 외에는 만들지 않으므로, 스무 단어는 BIP-39 저자들이 스스로 후속 방식으로 제안한 Shamir 방식인 SLIP-39에서 나온 것입니다. SLIP-39는 정확히 1,024개 단어의 자체 파일을 가지며 크기는 절반입니다. 각 단어에 11비트 대신 10비트를 담기 때문입니다.
두 파일은 서로 겹칩니다. SLIP-39 단어 1,024개 중 553개가 BIP-39 영어 파일에도 나타나므로 어휘를 읽어서는 두 방식을 구별할 수 없습니다. 대신 단어를 세십시오. SLIP-39는 세 글자 빈틈도 규칙으로 닫았습니다. 네 글자보다 짧은 것은 없고, 여덟 글자보다 긴 것도 없으며, 네 글자 접두사는 파일 전체에서 고유하고, 어떤 두 항목 사이의 최소 Damerau-Levenshtein 거리는 2입니다. 영어 외에는 어떤 언어도 지원하지 않으며 이를 분명히 밝히고, 이전의 "arbitrary wordlists"(임의 단어 목록)가 사용자를 혼란스럽게 하고 상호 운용성을 해쳤다고 지적합니다.
니모닉 단어 목록 vs 시드 문구
니모닉 단어 목록은 공개되어 있고 시드 문구는 그렇지 않습니다. 목록은 모든 BIP-39 지갑이 사본을 지니는 공개 저장소의 파일이며, 사용자의 문구는 기기가 그 목록에서 뽑은 특정한 12개 또는 24개 항목을 뽑은 순서대로 늘어놓은 것입니다. 영어 파일을 내려받는 것은 공격자에게 아무것도 알려 주지 않으며, 사전을 가진다고 해서 누군가 문장을 추측하는 데 도움이 되지 않는 것과 같습니다. 지원 계정, 브라우저 확장 프로그램, 또는 "지갑 검증기" 페이지가 사용자에게 단어를 공식 목록과 대조해 보라고 요청할 때 이 차이를 기억할 가치가 있습니다. 목록은 검증이 필요 없고, 그 요청은 언제나 문구만을 겨냥합니다.