본문으로 건너뛰기

BIP-39 패스프레이즈 (25번째 단어): 고급 지갑 보안

BIP-39 패스프레이즈(Passphrase)는 흔히 "25번째 단어(25th Word)"라 불리며, 암호화폐 지갑에서 사용할 수 있는 가장 강력하면서도 오해가 많은 보안 기능 중 하나입니다. 사용자가 선택한 문자열을 시드 도출 과정에 추가하여, 같은 니모닉 문구가 완전히 다른 키와 주소 세트를 생성하도록 합니다. 올바르게 사용하면 시드 문구가 손상된 경우에 대한 심층 방어를 제공합니다. 부주의하게 사용하면 자금의 영구적 손실을 초래할 수 있습니다.

이 가이드에서는 패스프레이즈가 정확히 어떻게 작동하는지, 언제 사용해야 하는지, 도입되는 위험, 그리고 안전하게 구현하는 방법을 다룹니다.

패스프레이즈의 작동 원리

기술적 메커니즘

BIP-39 표준에서 설명된 대로, 시드 도출 과정은 PBKDF2-HMAC-SHA512를 사용합니다:

Seed = PBKDF2(
password = mnemonic_words,
salt = "mnemonic" + passphrase,
iterations = 2048,
key_length = 512비트
)

패스프레이즈가 설정되지 않은 경우, 솔트는 단순히 "mnemonic" 문자열입니다. 패스프레이즈가 제공되면 솔트에 연결됩니다: "mnemonic" + "YourPassphrase". 솔트가 다르므로 PBKDF2 출력이 완전히 달라져 완전히 다른 마스터 키를 생성하며, 따라서 완전히 다른 도출 경로, 개인 키, 공개 키, 주소가 됩니다.

주요 특성

모든 패스프레이즈가 유효합니다. 패스프레이즈에는 체크섬이나 검증 메커니즘이 없습니다. 빈 문자열, 단일 문자, 500자 문장 등 어떤 문자열이든 유효한 지갑을 생성합니다. 잘못된 패스프레이즈를 입력해도 오류 메시지가 나타나지 않으며, 조용히 다른 (일반적으로 비어 있는) 지갑을 엽니다.

같은 니모닉, 다른 지갑. 패스프레이즈 "alpha"를 가진 24단어 니모닉은 패스프레이즈 "bravo"를 가진 같은 니모닉과 완전히 다른 지갑을 생성합니다. 공격자가 감지할 수 있는 두 지갑 간의 암호학적 관계는 없습니다.

대소문자와 인코딩이 중요합니다. "MyPassphrase"와 "mypassphrase"는 다른 지갑을 생성합니다. 후행 공백이 있는 패스프레이즈는 없는 것과 다릅니다. 패스프레이즈는 해싱 전에 UTF-8 NFKD로 정규화되지만, 그 외에는 정확한 문자 일치가 필요합니다.

패스프레이즈를 사용하는 이유

시드 문구 도난 방지

공격자가 24단어 시드 문구를 훔친 경우(종이 백업, 금속판, 또는 손상된 기기에서), 지갑의 모든 자금에 접근할 수 있습니다 — 패스프레이즈가 설정되어 있지 않은 한. 패스프레이즈 없이는 "기본" 지갑(빈 패스프레이즈로 도출된 것)만 볼 수 있습니다. 패스프레이즈로 보호된 지갑에 있는 실제 자금은 접근할 수 없습니다.

이는 보안을 단일 요소(가지고 있는 것 — 시드 문구)에서 이중 요소(가지고 있는 것 — 시드 문구 + 알고 있는 것 — 패스프레이즈)로 변환합니다.

그럴듯한 부인 (Plausible Deniability)

모든 패스프레이즈가 유효한 지갑을 생성하므로, 같은 시드 문구에서 여러 지갑을 유지할 수 있습니다:

  • 패스프레이즈 없음 — 소량의 자금이 있는 미끼 지갑.
  • 패스프레이즈 "alpha" — 상당한 보유량이 있는 메인 지갑.
  • 패스프레이즈 "bravo" — 추가 보호를 위한 보조 지갑.

시드 문구를 공개하도록 강요당한 경우("$5 렌치 공격"), 패스프레이즈 없이 시드 문구를 제공할 수 있습니다. 공격자는 일부 자금이 있는 실제 지갑을 보고, 추가 패스프레이즈로 보호된 지갑이 존재하는지 알 방법이 없으며, 발견한 것으로 만족할 수 있습니다.

이를 흔히 "위협 지갑(Duress Wallet)" 또는 "숨겨진 지갑(Hidden Wallet)" 전략이라고 합니다.

손상된 하드웨어 보호

하드웨어 지갑에 공급망 취약점(예: 난수 생성기의 백도어)이 있는 경우, 공격자가 기기에서 생성된 시드 문구를 알 수 있습니다. 하드웨어 지갑에 입력되거나 생성되지 않은 사용자 선택 패스프레이즈는 공격자가 가지지 않은 엔트로피를 추가합니다.

패스프레이즈 설정 방법

하드웨어 지갑

대부분의 주요 하드웨어 지갑이 BIP-39 패스프레이즈를 지원합니다:

Ledger:

  1. Ledger Live에서 설정으로 이동합니다.
  2. 고급 설정에서 "패스프레이즈"를 활성화합니다.
  3. 두 가지 모드가 있습니다: "PIN에 연결"(편의를 위해 기기에 해시 저장) 및 "임시"(매번 입력 필요).
  4. 패스프레이즈를 선택하고 확인합니다.

Trezor:

  1. Trezor Suite에서 패스프레이즈 기능을 활성화합니다.
  2. 연결할 때마다 Trezor가 패스프레이즈를 묻습니다.
  3. 어떤 패스프레이즈든 입력할 수 있습니다 — 확인은 저장되지 않습니다.

Coldcard:

  1. 메뉴에서 패스프레이즈로 이동합니다.
  2. 기기에서 패스프레이즈를 입력합니다.
  3. Coldcard가 도출된 첫 번째 주소를 표시합니다 — 예상과 일치하는지 확인하세요.

소프트웨어 지갑

BIP-39 패스프레이즈를 지원하는 소프트웨어 지갑은 일반적으로 초기 설정이나 시드 가져오기 중에 옵션을 제공합니다. 설정 흐름에서 "고급 옵션", "선택적 패스프레이즈" 또는 "25번째 단어"를 찾으세요.

강력한 패스프레이즈 선택

패스프레이즈는 시드 문구가 손상된 경우 무차별 대입 공격에 저항할 수 있는 충분한 엔트로피를 가져야 합니다:

패스프레이즈 유형대략적인 엔트로피무차별 대입 시간 (ASIC)
일반 영어 단어~10비트몇 초
랜덤 4단어 문구~50비트수 년
랜덤 6단어 문구~75비트수백만 년
20자 이상 랜덤 문자~120비트 이상우주 열사까지

권장 사항:

  • 최소 4-6개의 무작위로 선택된 단어 또는 16자 이상의 무작위 문자를 사용하세요.
  • 개인 정보(이름, 생일, 일반적인 문구)를 사용하지 마세요.
  • 단일 사전 단어를 사용하지 마세요.
  • 직접 만드는 것보다 패스프레이즈 생성기(예: diceware)를 사용하는 것을 고려하세요.

패스프레이즈 백업 전략

패스프레이즈는 이제 복구 비밀의 일부입니다. 시드 문구나 패스프레이즈 중 하나를 잃어버리면 자금에 대한 접근을 잃게 됩니다. 이는 백업 과제를 만듭니다: 둘 다 저장해야 하지만, 함께 저장하면 목적이 사라집니다.

전략 1: 별도 보관 장소

  • 시드 문구를 장소 A에 보관합니다(예: 집의 방화 금고).
  • 패스프레이즈를 장소 B에 보관합니다(예: 은행의 대여 금고).
  • 공격자는 두 장소 모두를 침해해야 합니다.

전략 2: 암기 + 물리적 백업

  • 패스프레이즈를 암기합니다.
  • 시드 문구와 별도의 위치에 암호화된 패스프레이즈 백업을 보관합니다.
  • 무능력해진 경우, 암호화된 백업으로 상속인이 자금을 복구할 수 있습니다.

전략 3: 패스프레이즈에 대한 샤미르 비밀 공유

  • 샤미르 비밀 공유를 사용하여 패스프레이즈를 조각으로 분할합니다.
  • 여러 신뢰할 수 있는 당사자에게 조각을 배포합니다.
  • 재구성에 M-of-N 조각이 필요합니다.

하지 말아야 할 것

  • 패스프레이즈를 시드 문구와 함께 보관하지 마세요. 이는 보안 이점을 완전히 제거합니다.
  • 암기에만 의존하지 마세요. 기억은 특히 수년이나 수십 년에 걸쳐 불완전합니다.
  • 확실하게 재현할 수 없는 패스프레이즈를 사용하지 마세요. 대소문자, 공백, 정확한 문자가 모두 중요합니다.
  • 시드 문구도 포함하는 비밀번호 관리자에 패스프레이즈를 저장하지 마세요.

위험과 함정

위험 1: 잊어버린 패스프레이즈로 인한 영구적 자금 손실

이것은 패스프레이즈 사용의 가장 큰 위험입니다. 체크섬이 있는 시드 문구와 달리, 패스프레이즈가 "올바른"지 검증하는 메커니즘이 없습니다. 잊어버리거나, 한 글자라도 잘못 기억하거나, 숨겨진 문자(후행 공백, 잘못된 유니코드 정규화)를 도입하면, 다른 비어 있는 지갑이 열리며 자금은 영구적으로 접근할 수 없게 됩니다.

완화 조치: 자금을 보내기 전에 패스프레이즈를 철저히 테스트하세요. 지갑을 설정하고, 첫 번째 수신 주소를 확인하고, 소량을 보내고, 다른 기기에서 시드 문구 + 패스프레이즈로 복원하고, 자금에 접근할 수 있는지 확인하세요.

위험 2: 패스프레이즈 입력 중 키로깅

패스프레이즈는 어느 시점에서 지갑에 입력되어야 합니다. 소프트웨어 지갑에서는 컴퓨터에 입력하는 것을 의미하며 — 키로거나 화면 녹화기가 캡처할 수 있습니다. 기기 내 입력이 있는 하드웨어 지갑(Coldcard, Trezor)에서는 기기 화면에서 패스프레이즈를 입력하며, 이것이 훨씬 안전합니다.

완화 조치: 기기 내 입력이 있는 하드웨어 지갑에서만 또는 에어갭 컴퓨터에서만 패스프레이즈를 입력하세요.

위험 3: 상속 복잡성

패스프레이즈 사용은 상속 계획에 복잡성을 추가합니다. 상속인에게 필요한 것:

  1. 시드 문구.
  2. 패스프레이즈.
  3. 패스프레이즈가 존재하며 필요하다는 인식.
  4. 사용 방법에 대한 지침.

이 중 하나라도 누락되면 상속이 실패합니다. 패스프레이즈를 고려한 상속 계획 전략은 시드 문구 가이드를 참조하세요.

위험 4: 잘못된 보안감

약한 패스프레이즈(일반적인 단어 하나, 생일, 반려동물 이름)는 공격자가 시드 문구를 가지고 있을 때 무차별 대입될 수 있습니다. 시드 문구와 GPU 클러스터를 가진 공격자는 알려진 PBKDF2 함수에 대해 수십억 개의 패스프레이즈 후보를 테스트할 수 있습니다. 강력하고 무작위로 생성된 패스프레이즈를 사용하세요.

위험 5: 설정 중 오타

눈에 띄지 않는 오타가 있는 패스프레이즈로 지갑을 설정하면, 지갑은 정상적으로 작동합니다 — 자금을 받고 성공적으로 거래합니다. 하지만 다음에 시드 문구에서 복원하고 오타 없이(또는 다른 오타로) 패스프레이즈를 입력하면 다른 지갑을 얻게 됩니다. 자금은 이제 오타 뒤에 갇히게 됩니다.

완화 조치: 설정 후 즉시 다른 기기에서 시드 문구 + 패스프레이즈를 사용하여 지갑을 복원하고 정확히 같은 주소가 나타나는지 확인하세요.

"25번째 단어" 오해

"25번째 단어"라는 용어는 오해를 불러일으킬 수 있는 단순화입니다:

  • 패스프레이즈는 BIP-39 단어 목록 단어로 제한되지 않습니다. 어떤 UTF-8 문자열이든 가능합니다.
  • 패스프레이즈는 추가 니모닉 단어로 인코딩되지 않습니다 — PBKDF2 솔트의 일부로 사용됩니다.
  • 패스프레이즈에는 체크섬이 없으며, 체크섬 비트를 포함하는 니모닉의 24번째 단어와는 다릅니다.
  • 12단어 니모닉에도 패스프레이즈를 사용할 수 있습니다 — 이 논리에 따르면 "13번째 단어"가 되지만, "25번째 단어"라는 용어가 일반적으로 사용됩니다.

기술적으로 올바른 용어는 "BIP-39 패스프레이즈" 또는 "니모닉 패스프레이즈"입니다.

SafeSeed 도구

**SafeSeed 키 도출 도구**를 사용하여 같은 시드 문구에서 다른 패스프레이즈가 어떻게 완전히 다른 주소를 생성하는지 확인하세요. 패스프레이즈 유무로 테스트 니모닉을 입력하여 효과를 관찰하세요. 모든 계산은 브라우저에서 실행됩니다 — 데이터가 전송되지 않습니다.

패스프레이즈 vs. 지갑 PIN vs. 비밀번호

이 세 가지 개념은 자주 혼동됩니다:

기능BIP-39 패스프레이즈지갑 PIN지갑 비밀번호
보호 대상시드 도출기기 접근애플리케이션 접근
저장 위치어디에도 (암기)기기에기기/서버에
변경 가능아니오 (새 지갑 생성)
분실 시자금 접근 불가기기 초기화, 시드로 복원비밀번호 재설정
무차별 대입 대상시드와 함께 PBKDF2기기 잠금구현에 따라 다름
범위시드의 모든 지갑단일 기기단일 애플리케이션

패스프레이즈는 도출된 키를 변경하므로 근본적으로 다릅니다. PIN이나 비밀번호는 기기에 이미 존재하는 키에 대한 접근만 제어합니다.

고급 사용 사례

다중 숨겨진 지갑

고급 사용자는 단일 시드 문구에서 여러 지갑을 유지할 수 있습니다:

  • 빈 패스프레이즈: 소량 (미끼)
  • 패스프레이즈 A: 주요 저축
  • 패스프레이즈 B: 트레이딩 할당
  • 패스프레이즈 C: 비상 예비

각 지갑은 완전히 독립적입니다. 온체인에서 연결 고리가 없습니다. 위험은 기억하고 백업해야 하는 패스프레이즈 수에 따라 증가합니다.

다중 서명과 결합

기관이나 매우 높은 가치의 보관을 위해, BIP-39 패스프레이즈와 다중 서명을 결합합니다:

  • 각 서명자의 키는 시드 문구 + 고유한 패스프레이즈에서 도출됩니다.
  • 공격자는 여러 시드 문구와 해당 패스프레이즈를 모두 획득해야 합니다.
  • 이는 여러 독립적인 보안 계층을 제공합니다.

FAQ

BIP-39 패스프레이즈 또는 "25번째 단어"란 무엇인가요?

BIP-39 패스프레이즈는 시드 도출 과정(PBKDF2 솔트)에 추가되는 선택적 사용자 선택 문자열입니다. 사용하면 같은 니모닉 시드 문구가 완전히 다른 키와 주소 세트를 생성합니다. 흔히 "25번째 단어"라 불리지만, BIP-39 단어뿐 아니라 어떤 텍스트 문자열이든 될 수 있습니다.

패스프레이즈를 변경할 수 있나요?

비밀번호를 변경하는 방식으로는 변경할 수 없습니다. 패스프레이즈가 어떤 키가 도출되는지 결정하므로, 패스프레이즈를 변경하면 다른 주소를 가진 다른 지갑이 열립니다. 패스프레이즈를 "변경"하려면 새 패스프레이즈로 새 지갑을 만들고 이전 패스프레이즈 지갑에서 새 지갑으로 모든 자금을 이전해야 합니다.

패스프레이즈를 잊어버리면 어떻게 되나요?

자금은 영구적으로 접근할 수 없게 됩니다. 복구 메커니즘, 재설정 옵션, 또는 강력한 패스프레이즈를 무차별 대입할 방법이 없습니다. 이것이 패스프레이즈의 적절한 백업이 필수적인 이유입니다.

패스프레이즈는 하드웨어 지갑에 저장되나요?

일부 하드웨어 지갑은 보조 PIN에 패스프레이즈를 연결하는 옵션을 제공합니다(예: Ledger의 "PIN에 연결" 모드). 이 경우 편의를 위해 기기에 힌트나 해시가 저장됩니다. 그러나 표준 방법은 "임시" 모드로, 매번 패스프레이즈를 입력해야 하며 기기에 아무것도 저장되지 않습니다.

모든 지갑이 BIP-39 패스프레이즈를 지원하나요?

대부분의 BIP-39 호환 지갑이 패스프레이즈 기능을 지원하지만, 일부는 사용자 인터페이스에서 노출하지 않습니다. 지갑 문서를 확인하세요. 주요 하드웨어 지갑(Ledger, Trezor, Coldcard)은 모두 지원합니다.

공격자가 내가 패스프레이즈를 사용하는지 알 수 있나요?

아니요. 기본값(빈 패스프레이즈)도 유효한 지갑을 생성하므로, 시드 문구만으로는 추가 패스프레이즈로 보호된 지갑이 존재하는지 판단할 방법이 없습니다. 공격자가 시드 문구를 얻고 기본 지갑에서 자금을 발견하더라도, 패스프레이즈로 보호된 지갑이 존재하는지 알 수 없습니다.

패스프레이즈는 대소문자를 구분하나요?

예. "MyPassphrase", "mypassphrase", "MYPASSPHRASE"는 모두 다른 지갑을 생성합니다. 공백도 중요합니다 — "my pass"와 "mypass"는 다릅니다. 패스프레이즈를 기록할 때 극히 정확해야 합니다.

12단어 시드 문구에 패스프레이즈를 사용할 수 있나요?

예. 패스프레이즈 기능은 모든 BIP-39 니모닉 길이(12, 15, 18, 21, 24단어)에서 작동합니다. PBKDF2 과정은 니모닉 길이에 관계없이 동일합니다.

관련 가이드