본문으로 건너뛰기

복구 문구

BitTool Signer 지갑은 표준 BIP39 지갑입니다. BitTool Signer에서 만든 문구는 같은 파생 경로를 쓰는 모든 BIP39 지갑에서 복원할 수 있고, 다른 지갑의 문구도 가져올 수 있습니다.

지갑 생성​

생성은 네 단계로 이루어집니다.

  1. 생성. 사용자가 지갑 이름을 정하고 24단어(기본값) 또는 12단어를 선택하며, BIP39 패스프레이즈를 추가할 수 있습니다. 문구는 시스템 CSPRNG를 사용해 기기에서 생성됩니다(자세히).
  2. 백업. 아래 백업 형태 중 하나로 문구를 보여 줍니다.
  3. 확인. 모든 단어가 가려지고, 그중 네 자리(18단어 이상이면 다섯 자리)가 빈칸으로 남습니다. 사용자는 섞인 단어를 올바른 순서로 눌러 빈칸을 채웁니다. 하나라도 틀리면 해당 시도는 초기화됩니다.
  4. 지갑 비밀번호 설정. 이 비밀번호로 이 iPhone에서 문구를 암호화합니다(자세히).

공개 인덱스(주소와 xpub)는 지갑이 목록에 나타나기 전에 파생되어 저장되므로, 곧바로 페어링할 수 있습니다.

백업 형태​

모든 형태는 처음에 가려져 있고 한 번 탭하면 나타납니다. 스크린샷을 찍거나, 화면을 녹화하거나, 앱을 벗어나면 다시 가려지며, 스크린샷을 찍으면 이미지를 삭제하라는 경고도 표시됩니다.

단어​

12개 또는 24개 단어를 번호가 매겨진 격자로 보여 줍니다. 대부분의 사람이 종이에 적어 두어야 할 백업입니다.

QR 코드​

단어를 공백 하나로 구분한 일반 텍스트 QR 코드로, 지갑을 본인의 다른 기기로 옮길 때 사용합니다. QR 코드로 문구를 가져올 수 있는 지갑이라면 어떤 지갑이든 읽을 수 있으며, BitTool Signer는 정확한 철자 그대로 다시 읽어 들입니다. BIP39 패스프레이즈는 절대 포함되지 않습니다. 앱은 이 QR 코드를 저장, 인쇄, 공유하는 기능을 제공하지 않습니다.

복구 카드(2-of-3)​

단어를 카드 세 장에 나누어 담습니다. 아무 카드 두 장이면 전체 문구를 복원할 수 있지만, 카드 한 장만으로는 복원할 수 없습니다. 위치는 세 개씩 한 행으로 배치되고, 각 카드는 행마다 단어 하나를 빼되 행이 바뀔 때마다 빠지는 위치가 하나씩 이동합니다.

card index (0, 1, 2) that leaves out word position p (0-based) = (⌊p / 3⌋ + p mod 3) mod 3

12단어의 경우:

위치123456789101112
카드 1—✓✓✓✓—✓—✓—✓✓
카드 2✓—✓—✓✓✓✓—✓—✓
카드 3✓✓—✓—✓—✓✓✓✓—

배치는 단어 수에만 의존하므로, 다른 시점이나 다른 기기에서 만든 카드도 항상 서로 맞습니다. 각 카드에는 빠진 위치가 적혀 있습니다.

카드 한 장만으로도 문구의 3분의 2가 드러납니다. 남은 추측 공간은 빠진 단어당 11비트에서 체크섬 비트를 뺀 만큼입니다.

단어 수카드당 빠진 단어추측해야 할 양
12440비트: 작정한 공격자라면 충분히 가능
15550비트
24880비트

12단어와 15단어 문구에 대해서는 각 카드를 전체 문구처럼 보관하거나 24단어를 사용하라고 앱이 경고합니다. 복구 카드에는 패스프레이즈가 절대 포함되지 않습니다.

저장되는 내용​

볼트는 문구를 정규 단어(Unicode NFC)로, BIP39 패스프레이즈를 입력한 그대로 보관합니다. 문구와 패스프레이즈는 평문 파일로 기록되지 않고, iPhone 밖으로 나가지 않으며, 위에서 설명한 명시적인 복구 문구 QR 코드를 제외하면 어떤 QR 코드에도 포함되지 않습니다.