“거래소나 핫월렛은 불안해도, 콜드월렛에 넣어두면 내 비트코인은 절대 안전하다.”
비트코이너들 사이에서 신화처럼 통하던 이 공식이 깨졌습니다. 하드웨어 지갑 분야에서 최고 수준의 보안성으로 평가받던 캐나다 Coinkite사의 Coldcard(콜드카드) 지갑에서 치명적인 펌웨어 결함이 발견되었고, 이를 노린 공격으로 1,000 BTC(한화 1,000억 원 상당) 이상이 허무하게 탈취되는 사건이 발생했습니다.
단순 개인키 유출이나 피싱이 아니라, 지갑이 생성되는 근본적인 난수 생성 단계에서의 결함이라는 점에서 암호화폐 업계 전체에 커다란 충격을 주고 있습니다.

25분 만에 불어닥친 비극, 피해 규모는?
이번 사건은 Coldcard의 Mk3 모델을 필두로 Mk4, Q, Mk5 등 주요 제품군 전반에 걸쳐 일어났습니다.
불과 25분~40분이라는 짧은 시간 동안 500개 이상의 단일 서명(Single-sig) 지갑에서 594 BTC가 이체되었으며, 이후 추가 조사 결과 총 피해 규모는 1,000 BTC 이상(미화 7,000만 달러 이상)으로 확대 추정되었습니다.
공격자들이 노린 대상은 주로 장기간 거래 없이 방치되어 있던 단일 서명 지갑들이었습니다. 지갑 주인의 부주의가 아닌, 지갑 제조사의 소스코드 결함을 이용해 오프라인에서 시드를 재현한 뒤 UTXO 자금을 한 번에 싹쓸이해 간 것입니다.
사건의 핵심 원인: 코드 한 줄이 불러온 난수 재앙
원인은 2021년 3월에 배포된 펌웨어 4.0.0 및 4.0.1 버전 업데이트로 거슬러 올라갑니다.
지갑이 안전하려면 시드 문구를 만들 때 그 누구도 예측할 수 없는 ‘진짜 무작위 숫자(TRNG, True Random Number Generator)’를 생성해야 합니다. 하지만 당시 펌웨어 빌드 설정에서 다음과 같은 치명적인 매크로 오류가 포함되었습니다.
C
MICROPY_HW_ENABLE_RNG = 0
물리적 노이즈를 측정해 진정한 무작위성을 만들어내야 할 하드웨어 난수 생성기 작동이 Off(0) 상태로 꺼져버린 것입니다.
그 결과, 지갑은 하드웨어 난수 대신 칩의 고정 고유 ID, SysTick 타이머, RTC 시계 같은 외부에서 충분히 추측 가능한 값들로 시드를 생성하는 소프트웨어 의사 난수(PRNG) 방식으로 떨어졌습니다.
128비트에서 40비트로… “우주적 난이도”가 “경차 수준”으로 축소
Block 비트코인 보안팀의 분석에 따르면, 이번 결함으로 인해 Mk3 모델의 유효 엔트로피(복잡도)는 정상 수준인 128비트에서 약 40비트 수준으로 폭락했습니다. (이후 출시된 모델들 역시 72비트 수준에 불과했습니다.)
이 수치가 왜 무서운지 계산해보면 다음과 같습니다.

정상적인 128비트 시드는 지구상 모든 슈퍼컴퓨터를 동원해도 우주의 수명이 다할 때까지 해독할 수 없는 수준입니다. 하지만 40비트로 축소된 순간 경우의 수는 불과 1조 개 남짓으로 줄어들었습니다. 요즘 해커들이 사용하는 고성능 GPU 연산 장비를 동원하면 오프라인에서 시드 문구를 무차별 대입(Brute-force) 방식으로 전부 찍어 맞춰볼 수 있는 수준이 된 것입니다.
이번 사건이 던지는 교훈
- 단일 서명(Single-sig)의 한계: 아무리 철통 보안이라 불리는 콜드월렛이라도 단일 기기에 자산을 전량 의존하면 기기/펌웨어 단일 실패 지점(Single Point of Failure)에 노출됩니다.
- 다중 서명(Multisig) 및 주사위 엔트로피 도입: 서로 다른 제조사의 하드웨어 지갑을 조합하는 멀티시그를 구성하거나, 시드 생성 시 주사위를 직접 굴려 외부 엔트로피를 수동 추가하는 방식이 재조명받고 있습니다.
- 펌웨어 업데이트 체크: 지갑 제조사의 보안 공지와 업데이트 내역을 상시 모니터링하고, 백업 시드 생성 과정에 이상이 없었는지 점검할 필요가 있습니다.
하드웨어 지갑마저 100% 완벽할 수 없다는 사실을 보여준 이번 사건은, 가상자산 보관에 있어 다중 보안 레이어 구축이 왜 필수적인지 다시 한번 일깨워주고 있습니다.
Leave a Reply