본문으로 건너뛰기

시드 문구 생성기 튜토리얼: 안전한 BIP-39 니모닉 생성

시드 문구(Seed Phrase)는 암호화폐 설정에서 가장 중요한 정보입니다. 모든 개인 키, 공개 키, 주소가 파생되는 마스터 키입니다. 이를 잃으면 자금에 대한 접근을 잃고, 노출되면 누구든 모든 것을 탈취할 수 있습니다. 이 튜토리얼에서는 SafeSeed의 시드 문구 생성기를 사용하여 최대 보안으로 BIP-39 호환 니모닉 문구를 생성하는 방법을 안내합니다.

지금 바로 사용해 보세요

safeseed.app/tools/seed-generator/에서 BIP-39 시드 문구를 생성하세요 — 완전히 클라이언트 사이드로 작동하며, 어떤 서버로도 데이터가 전송되지 않습니다.

BIP-39 시드 문구란 무엇인가요?

BIP-39(Bitcoin Improvement Proposal 39)는 암호학적 엔트로피(Entropy)를 일반적인 영어 단어 시퀀스로 인코딩하는 표준을 정의합니다. 256비트 이진수를 백업하는 대신, "abandon", "ability", "zoo"와 같은 읽기 쉬운 12개 또는 24개 단어를 백업합니다.

작동 원리

  1. 엔트로피 생성: 암호학적으로 안전한 난수 생성기가 128비트(12단어용) 또는 256비트(24단어용)의 무작위성을 생성합니다.
  2. 체크섬(Checksum): 엔트로피의 SHA-256 해시가 체크섬을 제공합니다. 128비트 엔트로피의 경우 4개의 체크섬 비트가, 256비트 엔트로피의 경우 8개의 체크섬 비트가 추가됩니다.
  3. 단어 매핑: 결합된 엔트로피 + 체크섬이 11비트 그룹으로 분할됩니다. 각 11비트 값은 BIP-39 단어 목록의 2,048개 단어 중 하나에 매핑됩니다.
  4. 시드 파생: 니모닉 문구가 2,048회 반복의 PBKDF2-HMAC-SHA512를 사용하여 512비트 시드로 변환됩니다. 이 단계에서 선택적 패스프레이즈를 포함할 수 있습니다.

결과는 BIP-39를 구현하는 모든 지갑에서 매번 동일한 키 세트를 결정론적으로 생성하는 단어 세트입니다.

12단어 vs. 24단어

특성12단어 (128비트)24단어 (256비트)
엔트로피128비트256비트
보안 수준2^128개의 가능한 조합2^256개의 가능한 조합
무차별 대입 저항사실상 해독 불가능사실상 해독 불가능
백업 용이성쓰고 보관하기 쉬움더 많은 단어를 관리해야 함
업계 채택모바일 지갑에서 일반적하드웨어 지갑의 표준
권장 대상보통 규모의 보유량상당한 보유량, 장기 보관

12단어와 24단어 문구 모두 현재 또는 예측 가능한 기술로 어떤 공격자도 무차별 대입할 수 없는 수준의 보안을 제공합니다. 이 둘 사이의 선택은 대부분 관례와 개인 선호의 문제입니다. 대부분의 하드웨어 지갑은 24단어를 기본값으로 사용하고, 많은 모바일 지갑은 12단어를 사용합니다.

단계별 가이드: 시드 문구 생성하기

사전 준비

시작하기 전에 보안 요구 사항을 고려하세요:

  • 학습 및 테스트용: 인터넷에 연결된 상태로 브라우저에서 직접 SafeSeed를 사용할 수 있습니다.
  • 실제 자금(보통 금액): 불필요한 브라우저 탭과 애플리케이션을 닫고, 기기에 멀웨어가 없는지 확인하세요.
  • 상당한 보유량: 오프라인 사용 가이드에 따라 에어갭 컴퓨터를 사용하세요.

1단계: 시드 문구 생성기 열기

웹 브라우저에서 safeseed.app/tools/seed-generator/로 이동합니다. 이 도구는 브라우저에서 완전히 로드되며, 페이지 로드 후 인터넷 연결을 끊어도 도구가 계속 작동하는 것을 확인할 수 있습니다.

2단계: 단어 수 선택

12단어 또는 24단어 니모닉 문구 생성 중 하나를 선택합니다. 실제 암호화폐를 보호하는 대부분의 사용자에게 24단어가 표준 권장 사항이며, Ledger 및 Trezor와 같은 주요 하드웨어 지갑이 기본값으로 사용하는 것과 일치합니다.

3단계: 문구 생성

생성(Generate) 버튼을 클릭합니다. 도구는 브라우저의 Web Crypto API(crypto.getRandomValues())를 사용하여 암호학적으로 안전한 랜덤 엔트로피를 생성한 다음, BIP-39 니모닉 문구로 변환합니다.

생성을 클릭할 때마다 새로운 엔트로피에서 완전히 새로운 문구가 생성됩니다. 연속으로 생성된 문구들 사이에는 어떤 관계도 없습니다.

4단계: 문구 기록하기

이것이 가장 중요한 단계입니다. 시드 문구를 장기 보관을 견딜 수 있는 물리적 매체에 기록해야 합니다. 다음은 선택 사항입니다:

종이 (최소 권장):

  • 무산성 또는 보존용 종이에 펜(연필은 변색될 수 있으므로 사용하지 않음)을 사용하세요
  • 명확하고 읽기 쉽게 기록하세요
  • 각 단어에 번호를 매기세요 (1부터 12 또는 24까지)
  • 모든 단어를 화면과 대조하여 재확인하세요
  • 어떤 디지털 기기에도 문구를 입력하지 마세요

금속 (상당한 보유량에 권장):

  • 스테인리스 스틸 또는 티타늄 플레이트에 각 단어를 스탬프하거나 각인하세요
  • 금속 백업은 화재, 홍수, 물리적 열화에도 살아남습니다
  • Cryptosteel, Billfodl 또는 Blockplate와 같은 제품이 이 용도로 설계되었습니다
  • DIY 접근 방식으로는 글자 펀치로 스탬프한 스테인리스 스틸 와셔가 효과적입니다

하지 말아야 할 것:

  • 문구의 스크린샷이나 사진을 찍지 마세요
  • 클립보드에 복사하지 마세요
  • 텍스트 파일, 메모 앱 또는 클라우드 서비스에 저장하지 마세요
  • 자신에게 이메일로 보내지 마세요
  • 비밀번호 관리자에 저장하지 마세요 (시드 문구는 오프라인으로 유지해야 합니다)

5단계: 문구 검증하기

시드 문구를 기록한 후, 화면과 한 단어씩 대조하여 읽으면서 확인합니다. 비슷하게 보이는 단어에 특히 주의하세요:

  • "abandon" vs. "about"
  • "letter" vs. "level"
  • "right" vs. "riot"

BIP-39 단어 목록은 모호함을 최소화하도록 설계되었습니다 — 각 단어의 첫 네 글자가 고유합니다. 하지만 사람의 전사 오류가 시드 문구 분실의 가장 흔한 원인으로 남아 있습니다.

6단계: (선택) 패스프레이즈 추가

BIP-39 패스프레이즈(Passphrase, "25번째 단어"라고도 함)는 추가적인 보안 계층을 더합니다. 니모닉에서 시드를 파생할 때 패스프레이즈가 PBKDF2 파생에 포함됩니다:

seed = PBKDF2(mnemonic, "mnemonic" + passphrase, 2048, 512)

패스프레이즈를 설정하면:

  • 동일한 니모닉에 다른 패스프레이즈를 사용하면 완전히 다른 지갑이 생성됩니다
  • 패스프레이즈 없이 니모닉만으로는 다른(하지만 유효한) 키 세트가 생성됩니다
  • 이는 합리적 부인 가능성을 만듭니다: "비어 있는" 지갑(패스프레이즈 없음)이 미끼 역할을 할 수 있습니다
  • 패스프레이즈를 니모닉과 별도로 안전하게 기억하거나 보관해야 합니다

패스프레이즈 고려사항:

  • 잊어버린 패스프레이즈는 영구적인 접근 불가를 의미합니다 — 복구 메커니즘이 없습니다
  • 패스프레이즈는 대소문자를 구분하며 공백과 특수 문자를 포함할 수 있습니다
  • 보안을 위해 패스프레이즈를 시드 문구와 별도로 보관하되, 둘 다 복구 가능하도록 하세요
  • 강력한 패스프레이즈는 최소 12자 이상에 대소문자와 숫자를 혼합해야 합니다

7단계: 화면 지우기

시드 문구를 안전하게 기록하고 검증한 후:

  1. 브라우저 탭을 닫습니다
  2. 브라우저의 최근 기록을 삭제합니다 (선택적이지만 권장)
  3. 최대 보안을 위해 브라우저 또는 컴퓨터를 재시작합니다

SafeSeed는 localStorage, 쿠키 또는 브라우저 저장소에 어떤 데이터도 저장하지 않지만, 세션을 정리하면 브라우저 메모리에 잔여 데이터가 남지 않게 됩니다.

출력 이해하기

시드 문구 생성기는 여러 정보를 표시합니다:

니모닉 단어

시드 문구를 구성하는 12개 또는 24개의 단어입니다. 이 단어들은 2,048개 단어로 된 공식 BIP-39 영어 단어 목록에서 추출됩니다. 목록의 모든 단어는 첫 네 글자 내에서 고유하므로, 금속판에 스탬프할 때 단어를 약어로 사용할 수 있습니다.

엔트로피 (16진수)

생성된 원시 무작위 데이터로, 16진수로 표시됩니다. 이것은 니모닉 단어가 인코딩하는 기본 무작위성입니다. 일반적으로 이것을 별도로 기록할 필요는 없습니다 — 니모닉 단어가 엔트로피와 체크섬을 완전히 인코딩합니다.

체크섬

마지막 단어의 끝부분은 엔트로피의 SHA-256 해시에서 파생된 체크섬 비트를 인코딩합니다. 이는 12개 또는 24개의 BIP-39 단어의 모든 조합이 유효한 것은 아니며, 체크섬이 일치하는 것만 유효하다는 것을 의미합니다. 이는 지갑에 시드 문구를 입력할 때 기본적인 오류 감지 메커니즘으로 작동합니다.

시드 (16진수)

PBKDF2를 통해 니모닉에서 파생된 512비트 시드입니다. 이 시드는 BIP-32 키 파생의 입력으로 사용됩니다. 패스프레이즈를 추가한 경우 시드는 패스프레이즈 없는 버전과 다릅니다. 이것을 별도로 기록할 필요는 없습니다 — 니모닉과 패스프레이즈에서 항상 다시 파생할 수 있습니다.

고급 주제

엔트로피 품질

시드 문구의 보안은 생성에 사용된 엔트로피의 품질에 전적으로 의존합니다. SafeSeed는 운영 체제의 CSPRNG에 의해 지원되는 crypto.getRandomValues()를 사용합니다:

  • Linux: 하드웨어 인터럽트, CPU 지터, 가용한 경우 RDRAND/RDSEED로 시드된 /dev/urandom에서 추출
  • macOS: Security 프레임워크의 Fortuna 기반 CSPRNG 사용
  • Windows: 커널의 엔트로피 풀에 의해 지원되는 BCryptGenRandom 사용

모든 최신 브라우저는 이러한 OS 수준 CSPRNG를 사용하여 crypto.getRandomValues()를 구현하므로, 엔트로피가 암호화 키 생성에 적합합니다.

주사위나 동전 던지기를 사용하지 않는 이유는?

일부 보안에 민감한 사용자는 주사위나 동전 던지기와 같은 물리적 소스에서 엔트로피를 생성하는 것을 선호합니다. 이 접근 방식은 소프트웨어 RNG에 대한 신뢰를 제거하지만, 자체적인 위험이 있습니다:

  • 편향: 물리적 주사위와 동전이 완벽하게 공정하지 않을 수 있습니다
  • 불충분한 혼합: 원시 물리적 엔트로피는 사용 전에 적절한 해싱이 필요합니다
  • 인적 오류: 결과를 잘못 기록하거나 변환하면 오류가 발생합니다
  • 시간 소모: 256비트의 엔트로피를 생성하려면 100번의 동전 던지기 또는 다수의 주사위 던지기가 필요합니다

물리적 엔트로피를 사용하기로 선택한 경우, 도구의 고급 옵션(사용 가능한 경우)에 입력하여 니모닉을 파생할 수 있지만, 편향과 절차적 오류의 위험을 이해해야 합니다.

다중 서명 설정

다중 서명(Multi-Signature) 지갑의 경우 여러 개의 독립된 시드 문구를 생성해야 할 수 있습니다. 다중 서명 구성의 각 서명자는 독립적으로 생성된 자체 시드 문구를 가져야 합니다. 각 서명자에 대해 SafeSeed 시드 문구 생성기를 별도로 사용하고, 가능하면 다른 기기에서 생성하며, 각 시드 문구를 독립적으로 백업하세요.

샤미르 비밀 공유(Shamir's Secret Sharing) vs. 시드 문구

SLIP-39(샤미르 비밀 공유)는 시드를 여러 조각(Share)으로 분할하여, 임계값 수의 조각이 있어야 복원할 수 있는 BIP-39의 대안을 제공합니다. SafeSeed는 현재 더 널리 채택된 표준인 BIP-39에 초점을 맞추고 있습니다. 샤미르 비밀 공유가 필요하다면 SLIP-39를 네이티브로 지원하는 Trezor와 같은 하드웨어 지갑을 고려하세요.

흔한 실수와 예방법

실수 1: 감염된 기기에서 시드 문구 생성

위험: 기기의 멀웨어가 클립보드 모니터링, 화면 캡처 또는 키 로깅을 통해 생성된 시드 문구를 가로챌 수 있습니다.

대응: 상당한 보유량에는 오프라인 사용 가이드를 따르세요. 최소한 멀웨어 스캔을 실행하고 생성 전에 다른 모든 애플리케이션을 닫으세요.

실수 2: 시드 문구를 디지털로 저장

위험: 모든 디지털 사본(사진, 텍스트 파일, 이메일, 클라우드 메모)은 해킹, 기기 도난 또는 클라우드 서비스 침해를 통해 노출될 수 있습니다.

대응: 항상 물리적 매체를 사용하세요. 편의를 위해 종이를, 내구성을 위해 금속을 사용합니다. 디지털 사본을 절대 만들지 마세요.

실수 3: 사본 하나만 보관

위험: 물리적 재해(화재, 홍수), 도난 또는 단순한 분실이 유일한 백업을 파괴할 수 있습니다.

대응: 지리적으로 분리된 안전한 위치에 2-3개의 사본을 생성하세요. 은행 금고, 가정용 금고, 신뢰할 수 있는 가족 구성원의 안전한 장소를 고려하세요.

실수 4: 시드 문구를 테스트하지 않음

위험: 전사 오류로 인해 필요할 때 백업이 쓸모없게 될 수 있습니다.

대응: 기록 후 주소 생성기를 사용하여 시드 문구에서 주소를 파생하고(오프라인에서) 지갑에 표시되는 것과 일치하는지 확인하세요. 소액의 테스트 금액을 보내고 복구할 수 있는지 확인하세요.

실수 5: 시드 문구 공유

위험: 시드 문구를 가진 사람은 자금을 완전히 통제할 수 있습니다.

대응: 지원 담당자를 포함하여 시드 문구를 누구와도 절대 공유하지 마세요. 어떤 합법적인 서비스도 시드 문구를 요구하지 않습니다. SafeSeed는 기존 시드 문구를 절대 요구하지 않습니다 — 생성기는 새로운 것을 생성합니다.

시드 문구 강도의 맥락

올바르게 생성된 BIP-39 시드 문구의 보안을 이해하려면 숫자를 고려해 보세요:

  • 12단어 문구: 2^128 = 340,282,366,920,938,463,463,374,607,431,768,211,456개의 가능한 조합
  • 24단어 문구: 2^256 = 약 1.16 x 10^77개의 가능한 조합
  • 관측 가능한 우주의 원자 수: 약 10^80

지구의 모든 컴퓨팅 파워를 수십억 년 동안 가동하더라도, 128비트 키 공간을 무차별 대입하는 것은 물리적으로 불가능합니다. 256비트 키 공간은 열역학에서 설명하는 계산의 물리적 한계(란다우어 한계)에 근접할 정도로 광대합니다.

시드 문구에 대한 실질적인 위협은 무차별 대입이 아닙니다:

  1. 문구를 생성하거나 입력하는 기기의 멀웨어
  2. 백업의 물리적 도난
  3. 사회 공학(피싱, 가짜 지원)
  4. 자체적인 백업 실패 또는 부적절한 기록

SafeSeed는 클라이언트 사이드 작동과 오프라인 기능을 통해 위협 #1을 해결합니다. 위협 #2-4는 사용자의 책임입니다.

생성 후: 다음 단계

시드 문구를 안전하게 생성하고 백업한 후:

  1. 주소 파생 및 검증: 주소 생성기를 사용하여 주소를 파생하고 지갑 소프트웨어 또는 하드웨어 지갑과 비교합니다.
  2. 종이 지갑 백업 생성: 종이 지갑 생성기를 사용하여 특정 주소의 추가 물리적 백업을 만듭니다.
  3. 파생 경로 탐색: 키 파생 도구를 사용하여 시드가 다양한 블록체인의 키에 어떻게 매핑되는지 이해합니다.
  4. 지갑 설정: 하드웨어 지갑 또는 소프트웨어 지갑의 특정 지침에 따라 시드 문구를 가져옵니다.
  5. 소액으로 테스트: 파생된 주소로 소액의 암호화폐를 보낸 다음, 시드 문구 백업에서 복구하는 연습을 합니다.

FAQ

두 사람이 같은 시드 문구를 생성할 수 있나요?

이론적으로 가능하지만 실질적으로 불가능합니다. 12단어 문구의 경우 2^128개, 24단어의 경우 2^256개의 조합이 있어 충돌 확률은 미미합니다 — 매일 복권에 당첨되는 것보다 훨씬 낮은 확률입니다. 랜덤 충돌이 발생하기 전에 우주가 열적 소멸에 이를 것입니다.

시드 문구의 한 단어를 잊으면 어떻게 되나요?

빠진 단어의 위치를 알고 있다면 시도할 수 있는 단어는 2,048개뿐입니다. 단일 빠진 단어를 무차별 대입하는 도구가 존재하며, 비교적 빠르게 수행할 수 있습니다. 그러나 두 개 이상의 단어가 누락되면 기하급수적으로 어려워집니다 (두 단어의 경우 2,048^2 = 약 400만 조합). 이것이 신중한 전사와 검증이 필수적인 이유입니다.

SafeSeed로 생성한 시드 문구를 Ledger/Trezor에서 사용할 수 있나요?

네. BIP-39는 모든 주요 하드웨어 지갑에서 구현하는 개방형 표준입니다. SafeSeed로 생성한 시드 문구는 Ledger, Trezor, Keystone, BitBox02, Coldcard 및 기타 모든 BIP-39 호환 지갑에서 작동합니다. 시드 문구는 특정 기기나 제조업체에 종속되지 않습니다.

12단어 문구가 충분히 안전한가요?

네. 12단어 문구는 128비트의 엔트로피를 제공하며, 이는 기밀 정부 통신을 보호하는 AES-128 암호화와 동일한 보안 수준입니다. 무차별 대입은 계산적으로 불가능합니다. 많은 하드웨어 지갑이 24단어를 기본값으로 사용하는 이유는 관례와 추가적인 안전 마진 때문이지, 12단어가 불충분하기 때문이 아닙니다.

패스프레이즈(25번째 단어)를 추가해야 하나요?

패스프레이즈는 진정한 보안 이점을 추가합니다 — 시드 문구가 도난당해도 공격자는 패스프레이즈 없이 자금에 접근할 수 없습니다. 그러나 패스프레이즈는 위험도 추가합니다: 잃어버리거나 잊으면 자금에 영구적으로 접근할 수 없습니다. 기억하거나 안전하게 보관할 견고한 계획이 있고, 패스프레이즈가 시드 문구만큼 중요하다는 것을 이해하는 경우에만 사용하세요.

시드 문구를 얼마나 자주 새로 생성해야 하나요?

시드 문구를 교체해야 할 암호학적 이유는 없습니다. 비밀번호와 달리 시드 문구는 시간이 지나도 약해지지 않습니다. 새 지갑을 설정하거나, 현재 문구의 유출이 의심되거나, 보안 설정을 재구성하는 등 구체적인 이유가 있을 때만 새 시드 문구를 생성하세요.

시드 문구의 단어를 수정하거나 재배열할 수 있나요?

아니요. 단어의 순서가 중요합니다 — 각 위치는 엔트로피의 특정 비트를 인코딩하며, 마지막 단어에는 체크섬이 포함됩니다. 단어를 재배열하면 유효하지 않은 문구(체크섬 실패)가 생기거나 완전히 다른 지갑이 됩니다. 항상 생성된 정확한 순서대로 단어를 기록하고 입력하세요.

BIP-39 단어 목록이란 무엇이며, 왜 그 특정 단어들인가요?

BIP-39 영어 단어 목록은 정확히 2,048개의 단어로, 다음 기준으로 선정되었습니다: (1) 첫 네 글자 내에서의 고유성, (2) 비슷하게 보이는 단어 회피, (3) 쉽게 철자를 쓰고 기억할 수 있는 일반적인 영어 단어. 일본어, 한국어, 스페인어, 중국어, 프랑스어, 이탈리아어, 체코어, 포르투갈어 단어 목록도 존재하지만, 영어 목록이 가장 널리 사용됩니다.

관련 가이드