콜드카드 보관이 은행 금고에 넣고 절대 네트워크에 연결하지 않아도 안전하다는 통념을 뒤흔든 보안 사고가 발생했다. 이번 사건은 구형 콜드카드 펌웨어의 시드(seed) 생성 과정에서 난수성이 부족했던 점을 노린 공격으로, 단순한 원격 해킹이 아니라 시드 자체의 불충분한 엔트로피에서 비롯됐다.
하드웨어 지갑 제조사인 Coinkite는 7월 30일 보안 공지를 통해 일부 구형 콜드카드 펌웨어가 영향을 받았음을 확인하고 수정 펌웨어를 배포했다. 블록체인 상의 분석은 짧은 시간에 유사한 패턴으로 수천 개 주소가 비워진 정황을 확인했다.
콜드카드 시드 생성 순간의 취약성
12단어 시드 문구의 안전성은 그 출처가 충분히 예측 불가능한 난수에서 나오느냐에 달려 있다. 문제의 핵심은 일부 콜드카드 구형 펌웨어가 하드웨어 난수생성기 대신, MicroPython 환경의 Yasmarang 소프트웨어 의사난수생성기를 잘못 사용한 점이다.
보안 분석을 수행한 Block Engineering은 설정값과 컴파일 전 처리 과정의 검증 불일치가 원인이라고 지적했다. 결과적으로 장치가 의도한 하드웨어 RNG 경로 대신, 장치 식별 데이터와 시간 상태에 영향을 받는 대체 경로(fallback)를 타게 됐다.
Coinkite는 영향을 받은 Mk2·Mk3 모델의 시드 탐색 가능 공간을 현 가정하에 약 40비트로 추정했다. 이후 모델인 Mk4·Mk5·Q는 일부 secure element 엔트로피를 더했지만, 여전히 약 72비트 수준으로, 정상적인 12단어 시드가 갖춰야 할 약 128비트보다 낮다.

중요한 점은 난수 부족을 해시나 추가 처리로 메꿀 수 없다는 사실이다. 지갑을 오프라인으로 보관하는 것은 일상적 네트워크 공격을 막지만, 시드가 처음부터 약하면 근본적 위험을 제거할 수 없다.
41분 만에 약 7,020만 달러 BTC가 이체된 정황
온체인(블록체인) 데이터를 정리한 Galaxy Research에 따르면, UTC 기준 7월 30일 01시 10분부터 01시 51분까지 41분 동안 1,196개 주소가 완전히 비워졌다. 해당 거래에서 이동한 규모는 총 1,082.65 BTC로, 당시 가치 기준 약 US$70.2M이다.
미화 70.2백만 달러는 환율(1 USD = 1,429.4914 KRW)을 적용하면 약 1,003억 원 수준이다(약 100,350,296,280원, US$70.2M). Galaxy Research는 모든 거래가 동일한 30 sat/vB 수수료를 사용했고, 잔돈 출력을 남기지 않았다고 분석했다. 이 패턴은 다수 사용자가 동시에 수동으로 이체한 것보다, 이미 확보된 개인키로 자동화 도구가 자금을 흡수한 정황에 가깝다고 봤다.
다만 이 숫자는 온체인 연구 그룹의 추적 결과에 기반한 것이며, Coinkite의 공식 손실 확정치와는 다를 수 있다. 일부 보고서는 이후 자금 이동을 모두 합산해 더 큰 금액을 제시하기도 했다.
AI 연루 설은 논점이지만 증거는 미흡

이번 사건은 소셜 미디어에서 급속히 확산됐다. 피해자 중 한 명인 Jonathan Goodman은 자신의 콜드카드 장치를 은행 금고에 보관했고 단 한 번도 네트워크에 연결하지 않았다며, 18.25245043 BTC를 잃었다고 공개했다. 해당 게시물에는 많은 반응과 질문이 이어졌다.
일부에서는 AI가 오래된 코드 버전을 분석해 취약점을 찾아냈다고 추정한다. Coinkite는 코드를 공개해 온 만큼 누군가 과거 버전을 분석했을 가능성을 배제할 수는 없다고 밝혔다. 다만 Block의 보고서는 완전한 엔드투엔드 취약점 악용 실험을 아직 확인하지 못했다고 명시했다. 현재 확인된 사실은 시드 난수성 부족과 온체인 의심 이체 패턴뿐이며, AI의 직접 관여는 독립적 증거가 확보되지 않았다.
대응 방법: 업데이트만으로 끝난 것이 아니다
가장 흔한 오해는 펌웨어를 설치하면 끝이라고 생각하는 것이다. Coinkite는 펌웨어 업데이트가 앞으로 새로 생성되는 시드만 보호한다고 명확히 밝혔다. 이미 생성된 구형 시드는 업데이트로 복구되지 않는다.
업무 절차 권고는 다음과 같다. 먼저 자신의 장치 모델과 펌웨어 버전을 확인한다. 수정 펌웨어를 설치한 뒤에는 반드시 새 시드를 생성하고 백업을 정확히 검증해야 한다. 새 시드와 지갑 지문(fingerprint), 수취 주소를 소액으로 시험 이체해 확인한 뒤 자산을 이관하라.

Coinkite는 최초 시드 생성 시 독립적이고 비공개적인 공정 주사위 엔트로피를 최소 50회 이상 추가하거나, 강력하고 별도 보관되는 BIP-39 패스프레이즈를 사용할 경우 위험 평가가 달라질 수 있다고 제시했다. 그러나 이는 절차를 정확히 이해한 뒤 실행해야 하는 작업이다.
이번 사건의 교훈은 분명하다. 콜드카드 같은 오프라인 지갑은 네트워크 위험을 차단하지만, 시드 생성 과정과 펌웨어의 무결성 검증 없이는 자산을 완전히 안전하게 보관할 수 없다. 한 번 생성된 시드의 근본적 약점은 장치가 평생 오프라인 상태라도 바뀌지 않는다.
추가 정보와 제조사 권고는 Coinkite 공식 공지와 온체인 분석 보고서를 병행해 확인하는 것이 바람직하다.

