Dice Roll Entropy는 실제로 주사위를 던져 새 지갑에 예측하기 어려운 입력을 주는 방법입니다. 지갑은 비트코인을 받고 보내는 앱이나 기기입니다. 개인 키는 비트코인 지출을 승인하는 데 쓰는 비밀 숫자입니다. 안나를 떠올려 보세요. 숫자를 지어내는 대신 실제 결과를 정확한 순서로 검증된 오프라인 절차에 입력합니다. 이 데이터는 bitcoin 키의 바탕이 됩니다. 여기서 엔트로피는 결과를 모르고 맞히려는 사람이 마주하는 불확실성입니다. 충분한 횟수를 독립적으로 던지고 결과를 비밀로 지켜야 주사위가 도움이 됩니다. 복구 단어 수나 긴 디지털 지문으로 약하거나 공개된 입력을 보완할 수는 없습니다. 아래 계산은 그 이유를 설명하며, 생성기를 직접 만들라는 권유는 아닙니다.
비트는 정보의 단위입니다. 모든 가능성의 확률이 같다면 비트가 하나 늘 때마다 공격자가 추측할 후보 수가 두 배가 됩니다. 주사위의 점이나 백업 단어 하나가 늘어난다는 뜻은 아닙니다. 공정한 육면체 주사위에는 확률이 같은 여섯 결과가 있습니다. 독립적으로 두 번 던지면 가능한 쌍은 36개입니다. 비트로는 한 번에 log2(6) ≈ 2.585입니다. 이런 이상적인 조건에서 50번은 약 129.25비트, 99번은 255.91비트, 100번은 258.50비트입니다. COLDCARD는 실용적인 256비트 목표에 99번을 제시하지만, 정확한 값은 256보다 조금 작습니다. 횟수만 세어서는 주사위 품질이나 변환 결과의 완전한 균등성을 확인할 수 없습니다. [1] [3] [5]
특정 면이 자주 나오면 공격자가 더 잘 추측할 수 있습니다. 가장 흔한 면의 확률이 1/2이면 한 번의 min-entropy는 1비트뿐입니다. Min-entropy는 공격자가 한 번 추측할 때 가장 잘 맞힐 수 있는 선택을 기준으로 예측의 어려움을 측정합니다. 공식 Hmin=−log2(pmax)는 가장 가능성 높은 결과의 확률인 pmax를 사용합니다. 여러 번의 값을 더하려면 적절한 독립성이 필요합니다. 이전 결과를 복사하는 것은 새로 독립적으로 던지는 것과 다릅니다. 전체 순서를 아는 사람은 추측할 필요조차 없습니다. [4]
주사위 결과만으로 만든 지갑은 전체 순서나 최종 해시(그 데이터로 계산한 디지털 지문)만으로 복원될 수 있습니다. 혼합할 때는 장치의 입력도 민감합니다. 실제 결과를 온라인 검사기에 입력하거나 촬영하지 마세요. 계산은 자금을 절대 넣지 않을 별도의 테스트 지갑으로 확인하고, 실제 지갑에는 새로운 비밀 입력을 쓰세요. 클립보드와 로그가 데이터를 남길 수 있습니다. 최종 Seed Phrase, 즉 단어로 적은 백업을 안전하게 보관하고 복구를 시험하세요. passphrase도 사용한다면 복구할 때 그것도 필요합니다. 이 추가 비밀은 같은 단어에서 다른 지갑을 파생시킵니다. [1] [2]
공개 테스트 예와 같은 결과가 나오면 인코딩, 해시, 변환을 확인한 것입니다. 주사위나 장치가 올바르게 작동한다는 증거는 아닙니다. 좋아 보이는 짧은 수열도 예측 불가능성을 증명하지 못합니다. NIST SP800-90B는 원천 모델, min-entropy 추정, 동작 검사를 구분합니다. 집에서 여러 번 던졌다고 이 표준의 인증을 받은 것은 아닙니다. 지어낸 숫자나 반복 패턴으로 실제 던지기를 대신할 수는 없습니다. [3] [4]
ASCII는 숫자 문자를 컴퓨터에 표현하는 규칙이며 newline은 줄 끝 문자를 뜻합니다. 컴퓨터는 사람이 이해하는 의미가 아니라 입력된 문자를 처리하므로 정확한 표기가 중요합니다. COLDCARD 문서의 Dice Rolls Only 모드는 ASCII 숫자열에 SHA-256을 계산합니다. 끝에 newline이 없는 공개 테스트 123456의 해시는 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92입니다. 이상적 무작위 여섯 번도 약 15.51비트뿐이며 이 공개 순서는 전혀 비밀이 아닙니다. 256비트 출력이 부족한 엔트로피를 추가하지 않으며 입력 인코딩이 다르면 결과가 달라질 수 있습니다. [1] [3]
다음 식의 d1과 d2는 첫 번째와 두 번째 던지기의 결과입니다. mod는 나눗셈의 나머지를 뜻합니다. 원상이 둘이라는 것은 서로 다른 원래 값이 같은 결과로 이어져 그 결과의 가능성이 커진다는 의미입니다. 교육용으로 공정하고 독립적인 두 번의 결과를 x=6*(d1−1)+(d2−1)로 부호화하면 범위는 0~35입니다. x mod32는 0~3에 각각 두 원상이 있어 이들을 우대합니다. Rejection Sampling은 대신 32~35를 버리고 두 번을 다시 던집니다. 수락된 0~31은 균일한 다섯 비트를 제공합니다. 이는 변환 오류를 설명하는 예시이지 검증된 지갑 생성기를 대체하는 절차가 아닙니다. [3]
2026년 10월 1일 개정 COLDCARD 문서는 하드웨어 무작위성이 없는 Dice Rolls Only와 장치 값을 물리적 주사위 또는 동전 결과와 섞는 표준 생성을 구분합니다. verify_seed_mix.py는 후자를, rolls.py와 rolls12.py는 전자를 검증합니다. 입력에 장치 값도 포함되면 주사위 결과만으로 일치를 판단할 수 없으므로 정확한 절차와 펌웨어 버전을 선택해야 합니다. [1]
BIP39는 입력 비트를 복구 단어로 바꾸고 그 단어에서 키의 출발 데이터인 시드를 파생하는 방법을 정합니다. Checksum은 일부 옮겨 적기 오류를 찾는 데 도움을 주며 passphrase는 선택적인 추가 비밀입니다. 아래에서 마지막으로 언급하는 알고리즘은 단어와 passphrase로 시드를 계산합니다. BIP39는 128 입력 비트에 checksum 네 비트를 붙여 132비트를 11비트씩 12그룹으로 나눕니다. 256비트에 검사 비트 여덟 개를 더하면 24단어입니다. Checksum은 파생값으로 무작위성을 늘리지 않습니다. 이후 PBKDF2-HMAC-SHA512는 복구 단어와 passphrase에서 512비트 시드를 만들지만 길이 512 자체가 약한 던지기를 강화하지 않습니다. 단어 형식, 입력 엔트로피, 파생 시드는 서로 다른 계층입니다. [2]
더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Cryptographic Entropy, Entropy Bit, BIP 39, Seed Phrase, Entropy Mixing, CSPRNG. 다음 항목에서도 이 글을 참조합니다 Cryptographic Entropy, COLDCARD RNG Incident (2026).