일반적인 6면 주사위는 한 번 굴릴 때마다 약 2.6비트의 예측 불가능한 정보를 생성합니다. 별것 아닌 것처럼 들릴 수도 있지만, 충분히 반복하면 이러한 주사위 굴림은 소프트웨어나 전자 부품에 의존하지 않고도 비트코인 지갑을 보호하는 데 필요한 순수한 무작위성을 만들어낼 수 있습니다.
주사위 굴림으로 비트코인 키를 오프라인 상태로 유지하지만, 모두가 그렇게 할 만큼 귀찮아하지는 않을 것이다

핵심 요점
- 클로드 섀넌(Claude Shannon)의 공식에 따르면, 공정한 6면 주사위 한 번 굴림은 약 2.585비트의 엔트로피를 제공합니다.
- Coinkite의 문서에 따르면, 주사위를 50번 굴리면 비트코인 지갑 시드에 필요한 128비트 표준을 충족한다고 합니다.
- 케빈 로엑(Kevin Loaec)의 ‘위저드 사딘(Wizard Sardine)’ 분석은 메인 시드 이외의 콜드카드(Coldcard) 도구에서 위험 요소를 지적했습니다.
주사위 굴림 결과가 예측하기 어려운 이유
정보 이론을 정립한 수학자 클로드 섀넌은 엔트로피를 사용하여 결과의 불확실성을 측정했습니다. 공정한 6면 주사위의 경우, 각 면이 나올 확률은 6분의 1로 동일합니다. 따라서 한 번의 주사위 굴림은 대략 2.585비트의 엔트로피를 제공합니다. 동전 던지기는 1비트의 엔트로피를, 8면 주사위는 3비트의 엔트로피를 생성합니다.
최근 콜드카드 사태로 인해 소셜 미디어 전반에 주사위 기반 시드 생성 방식이 확산되었습니다. 일부 사용자는 이를 필수 요소로 여기고, 다른 이들은 이 방식이 자금을 보호해 주었다고 말하지만, 경험 많은 운영자들은 대부분의 초보자들이 느리고 오류가 발생하기 쉬운 설정 과정을 참지 못할 것이라고 지적합니다.
중요한 점은 주사위를 굴리는 행위가 원자 수준에서 무작위적으로 일어난다는 사실이 아닙니다. 실제로 그렇지 않습니다. 결과는 물리 법칙에 의해 결정되지만, 너무 많은 미세한 변수들이 동시에 변화하기 때문에 누구도 결과를 확실하게 예측할 수 없습니다. 주사위는 특정 속도, 각도, 높이, 회전력을 가지고 손에서 떠나며, 테이블에 부딪힌 후 매번 튀어 오를 때마다 방향이 바뀝니다.
실제로는 던지는 방식에 아주 미세한 변화만 있어도 완전히 다른 결과가 나올 수 있습니다. 손가락 위치가 조금만 달라지거나 던지는 힘이 아주 조금만 강해져도 궤적이 충분히 달라지기 때문에, 움직임을 지켜보는 것만으로는 최종 숫자를 예측할 수 없습니다. 결과는 이론적으로는 결정론적일지 모르지만, 지갑 생성 측면에서 중요한 것은 공격자가 그 결과를 재현하거나 계산할 수 없다는 점입니다.
주사위 굴림 결과를 활용 가능한 데이터로 변환하기
컴퓨터는 주사위 결과 목록을 직접 사용할 수 없습니다. 주사위 굴림 결과는 먼저 이진 데이터로 변환되어야 하며, 이 변환 방식이 중요합니다. 기본적인 홀수-짝수 방식은 이해하기 쉽지만, 이용 가능한 엔트로피의 상당 부분을 낭비합니다. 주사위가 약 2.6비트의 정보를 생성했음에도 불구하고, 각 굴림 결과는 단 1비트로 축소됩니다. 더 효율적인 방법은 긴 굴림 시퀀스를 수집하여, 대개 암호학적 해시 함수를 통해 전체 문자열을 처리하는 것입니다. 이렇게 하면 무작위성을 훨씬 더 많이 보존할 수 있습니다.
이 같은 원리는 안전한 패스프레이즈를 생성하기 위한 오랜 전통의 방법인 ‘다이스웨어(Diceware)’와 수동 비트코인 지갑 생성 과정에서도 나타납니다. 일반적인 12단어 지갑 복구 문구는 128비트의 엔트로피로 구성됩니다. 주사위 한 번 던질 때마다 약 2.6비트의 엔트로피가 생성되므로, 공정하게 약 50번 던지면 그 기준을 충족할 만큼의 원시 정보를 확보할 수 있습니다.
콜드카드(Coldcard) 하드웨어 지갑 제조사인 코인카이트(Coinkite)는 256비트에 가까운 엔트로피를 원하는 사용자에게 99회 이상의 주사위 굴림을 권장합니다. 이로 인해 지갑 사용이 두 배로 어려워지는 것은 아니지만, 생성된 비밀에 훨씬 더 큰 수학적 보안 여유를 제공합니다.
주사위로 생성된 시드에 대한 실제 테스트
이러한 차이는 코인카이트(Coinkite)가 2021년으로 거슬러 올라가는 펌웨어 문제를 공개한 이후 중요해졌습니다. 일부 콜드카드(Coldcard) 기기에서 소프트웨어가 내부 하드웨어 난수 생성기를 건너뛰고, 대신 비기밀 기기 정보와 연결된 취약한 프로세스를 사용할 수 있었습니다.
해당 프로세스의 일부를 재구성할 수 있었기 때문에, 공격자들은 전체 키 공간을 검색하는 대신 가능한 지갑 키의 범위를 좁힐 수 있었습니다. 이 결함은 동부 표준시 기준 오후 1시 현재, 약 1,100개의 주소에서 추정 1,128.6633 BTC가 도난당한 사건과 연관되어 있습니다.

충분한 횟수의 독립적인 주사위 굴림 결과만으로 생성된 지갑 시드는 동일한 경로를 통해 노출되지 않았습니다. 해당 사용자들은 자체 엔트로피를 제공했기 때문에, 결함이 있는 하드웨어 생성기는 주요 지갑 비밀키 생성에 관여하지 않았습니다.
그러나 이러한 보호 기능은 주사위를 통해 생성된 시드에만 적용되었습니다. 이 장치가 생성한 다른 모든 비밀 정보는 자동으로 보호되지 않았습니다.
위저드 사딘, 세부 사항 분석
보안 연구원 케빈 로악(Kevin Loaec)은 8월 1일 위저드 사딘(Wizard Sardine) 웹사이트에 콜드카드(Coldcard) 취약점에 대한 분석 보고서를 게시했다. 그가 지적한 가장 중요한 점은 주요 지갑 시드와 별도로 자체 비밀을 생성하는 콜드카드의 기능이었다.
로엑은 X에 “다음 기능을 사용하는 경우, 주사위를 통해 시드를 가져오거나 생성한 사용자조차도 취약하다는 점을 강조하는 것이 매우 중요하다고 생각합니다”라고 적으며, 영향을 받는 시스템의 다이어그램을 제시했다.
이 다이어그램은 결함이 있는 난수 생성기가 콜드카드의 여러 보조 기능에 데이터를 공급하는 모습을 보여줍니다. 여기에는 페이퍼 지갑 생성, 기기 복제, USB 세션 암호화, ‘시크릿 텔레포트(Secret Teleport)’ 전송 기능, 공동 서명 키 생성, 내장 비밀번호 생성기 및 하드웨어 보안 모듈(HSM) 인증 코드가 포함됩니다.

99번의 주사위 굴림으로 생성된 기본 지갑은 시스템의 별도 영역에 남아 있었습니다. 문제는 다른 도구들이 여전히 결함이 있는 생성기에서 새로운 난수를 요청할 수 있었다는 점입니다. 그 결과, 안전한 시드라고 해도 동일한 기기에서 생성된 모든 비밀번호, 백업, 인증 코드 또는 보조 키가 동등하게 안전하다고 보장할 수 없었습니다.
대부분의 신규 사용자가 주사위를 굴리지 않는 이유
주사위로 생성된 엔트로피는 올바르게 수행될 경우 기술적으로 타당하지만, 대부분의 신규 사용자에게는 현실적인 기본 설정이라고 할 수 없습니다. 주사위를 50회 또는 99회 굴리고, 모든 결과를 정확하게 입력하며, 누락되거나 중복된 굴림이 없는지 확인하는 데는 인내심과 상당한 집중력이 필요합니다. 숫자 하나만 잘못 입력해도 최종 지갑이 완전히 달라질 수 있으며, 대부분의 기기는 그 실수가 주사위 굴림 오류, 입력 오류, 아니면 지침에 대한 오해에서 비롯된 것인지 구분할 수 없습니다.

또한 이 과정은 제대로 작동하는 하드웨어 생성기에서는 발생하지 않는 위험 요소를 초래합니다. 사용자는 주사위 결과를 종이에 적거나, 사진을 찍거나, 온라인 도구에 입력하거나, 다른 사람이 찾을 수 있는 곳에 목록을 방치할 수 있습니다. 어떤 사람들은 주사위를 반복적이거나 통제된 방식으로 굴리거나, 조작되거나 손상된 주사위를 사용하거나, 과정이 지나치게 번거롭다고 느껴 일찍 중단하기도 합니다. 수학적 원리는 탄탄할지 몰라도, 결과의 보안성은 전적으로 사용자의 절차에 달려 있습니다.

이 때문에 주사위 굴리기는 경험 많은 비트코인 사용자들 사이에서도 항상 최선의 방법으로 여겨지지는 않습니다. 이는 기기에 대한 신뢰를 수동적인 과정에 대한 신뢰로 대체하기 때문입니다. 엔트로피를 이해하고, 방법을 검증하며, 굴림 순서를 비공개로 유지하는 기술적으로 신중한 사용자에게는 이러한 교환이 타당할 수 있습니다. 하지만 처음으로 지갑을 설정하는 일반 사용자에게는 영구적인 실수를 저지를 가능성이 여러 번 생길 뿐만 아니라, 동시에 번거로운 과정이 되기도 합니다.

또한 사람들이 테이블에 앉아 99번의 주사위 결과를 기록해야만 자금을 안전하게 수령할 수 있는 방식에 의존해 비트코인이 널리 보급될 것이라고 상상하기는 어렵습니다. 보안 관행은 실제 가정 환경, 바쁜 일정, 주의 산만, 그리고 암호학을 공부하고 싶지 않은 사용자들 속에서도 견뎌내야 합니다. 수동 엔트로피는 고급 옵션으로 계속 제공되어야 하지만, 장기적인 목표는 강력한 난수를 정확하게 생성하고, 진행 과정을 명확하게 설명하며, 전문 지식을 최대한 적게 요구하는 하드웨어와 소프트웨어를 개발하는 것입니다.
콜드카드 소유자가 확인해야 할 사항
영향을 받은 Coldcard 기기 소유자는 먼저 기기에 설치된 펌웨어 버전을 확인해야 합니다. 그런 다음 메인 지갑 시드가 어떻게 생성되었는지에만 집중하기보다는, 구형 펌웨어를 사용하던 동안 어떤 기능을 사용했는지 검토해야 합니다.
영향을 받은 기기를 사용하여 페이퍼 지갑, 복제 비밀번호, 비밀번호, 공동 서명 키 또는 인증 코드를 생성한 사용자는 해당 자료를 즉시 교체해야 할 수 있습니다. 업데이트를 설치하면 새로운 비밀 정보에 동일한 문제가 발생하는 것을 방지할 수 있지만, 이전에 생성된 내용은 복구되지 않습니다.
이번 사건은 또한 다중 공급업체 지갑 구성의 실용적 필요성을 더욱 강조합니다. 다중 서명 방식에서는 거래를 승인하기 위해 서로 다른 제조사의 별도 하드웨어 기기가 필요할 수 있습니다. 이러한 구조가 펌웨어 버그를 완전히 방지할 수는 없지만, 결함이 있는 단일 난수 생성기 하나만으로는 지갑 전체가 노출되는 것을 막을 수 있습니다.
이 기사는 AI를 사용하여 영어에서 번역되었습니다. 영어 원본이 권위 있는 출처이며, 자동 번역에는 특히 법률 및 규제 용어에서 부정확한 내용이 포함될 수 있습니다.
















