빠른 답변
정상 시드가 왜 위험할 수 있나요?
12개 또는 24개 단어가 올바른 형식이어도, 월렛이 실제로 예측 불가능한 후보에서 시드를 선택했다는 증거는 아닙니다. 취약한 생성기는 공격자가 재현 가능한 작은 후보군에서 정상처럼 보이는 시드를 만들 수 있습니다.
이런 사고에서도 비트코인 블록체인과 서명 규칙은 정상 동작합니다. 문제는 트랜잭션 이전, 월렛의 키 생성 단계에서 발생합니다.
목차
블록체인 vs 월렛
블록체인은 서명만 검증, 월렛이 비밀 값 생성
블록체인은 트랜잭션만 검증하고, 월렛은 승인에 필요한 키를 생성·보호합니다. 시드가 약하면 블록체인 보안과 무관하게 월렛 단계에서 위험이 발생할 수 있습니다.
블록체인
트랜잭션 기록을 저장하고, 올바른 서명이 있으면 인출을 승인합니다.
월렛
시드 생성, 프라이빗 키 파생, 주소 표시, 트랜잭션 서명 기능을 담당합니다.
공격자
시드가 예측 가능하거나 복사됐다면, 동일한 키를 다른 곳에서 재생성할 수 있습니다.
기기를 훔치지 않아도, 시드가 복사되거나 예측 가능하면 공격자는 호환 소프트웨어에 입력해 자신의 컴퓨터에서 트랜잭션을 서명할 수 있습니다.
자주 오해하는 두 가지
하드웨어·콜드 월렛은 위험을 줄이지만, 이미 노출된 키를 안전하게 만들지는 못합니다
두 방식 모두 유용하지만, 비밀 값이 안전하게 생성되고 외부에 노출되지 않아야만 보호 효과가 있습니다.
기기가 없으면 인출 불가?
하드웨어 월렛은 평소 컴퓨터와 분리해 키를 보호하지만, 시드가 복사되거나 예측 가능하면 동일한 키를 다른 곳에서 재생성할 수 있습니다.
시드와 프라이빗 키가 비공개일 때만 하드웨어 월렛이 보호 효과를 가집니다.오프라인 월렛은 비트코인 접근을 차단합니다
월렛을 오프라인으로 두면 원격 접근은 차단되지만, 이미 시드나 프라이빗 키를 가진 사람은 다른 기기에서 접근할 수 있습니다.
오프라인 보관은 원본만 보호하며, 복사본 유출은 막지 못합니다.취약점이 시작되는 지점
시드 단어가 생성되기 전부터 취약점이 발생할 수 있습니다
월렛은 먼저 예측 불가능한 데이터를 수집하고, 이를 안전한 랜덤 생성기로 시드로 변환합니다. 시작 데이터가 약하면 겉보기엔 정상적인 시드라도 실제로는 예측이 가능합니다.
엔트로피
엔트로피는 예측 불가능성을 의미합니다. 엔트로피가 높을수록 월렛이 선택할 수 있는 값이 많아집니다.
안전한 랜덤 생성기
예측 불가능한 데이터를 보안에 적합한 키 값으로 변환하는 소프트웨어 또는 하드웨어입니다.
시드 문구
여러 프라이빗 키를 복원할 수 있는 백업 문구입니다. 전체 시드를 가진 사람은 대부분 월렛을 재생성할 수 있습니다.
프라이빗 키
특정 주소의 자산 인출을 승인하는 비밀 값입니다. 하나의 시드로 여러 프라이빗 키를 만들 수 있습니다.
형식이 맞아도 안전하게 생성된 것은 아님
12개 정상 단어가 안전의 증거가 아닌 이유
복권 번호가 길어 보여도 실제로는 1,000개 조합만 사용한다면, 공격자는 그 1,000개만 시도하면 됩니다. 취약한 월렛 생성기도 이와 유사한 단축 경로를 제공합니다.
안전한 12단어 시드는 매우 방대한 조합에서 선택되어야 합니다. 취약한 월렛은 내부적으로 훨씬 적은 후보에서 고를 수 있으며, 단어만 봐서는 구분이 불가능합니다.
소유자가 보는 화면
12개 정상 단어, 올바른 체크섬, 정상적으로 열리는 월렛
외부에서 알 수 없는 부분
랜덤 생성기가 예측 불가능한 데이터를 충분히 사용하지 않아, 제한된 시드만 생성할 수 있었습니다.
공격자가 얻는 이점
원래 가능한 모든 시드 대신 훨씬 짧은 후보만 공격자가 시도하면 됩니다.
1,000개 복권 예시는 비유일 뿐, 실제 월렛의 취약 범위는 생성기 결함에 따라 다릅니다.
실제 사고, 다양한 원인
약한 난수 생성으로 월렛이 여러 차례 노출됨
각 사고는 제품과 원인은 달랐지만, 공통적으로 '겉보기 정상적인 월렛과 긴 비밀 값만으로는 예측 불가능성을 보장할 수 없다'는 교훈을 남겼습니다.
Milk Sad / Libbitcoin Explorer
bx seed 명령은 Mersenne Twister 생성기에 32비트 시스템 시간을 입력값으로 사용했습니다. 출력은 월렛 엔트로피처럼 보였지만, 연구진은 가능한 후보군을 모두 재현해 여러 블록체인에서 실제 도난 사례와 연결했습니다.
출력값이 길어도 시작값이 예측 가능하면 보안이 약해집니다.RANDSTORM / BitcoinJS
과거 브라우저 기반 월렛은 JavaScript와 브라우저 환경의 약한 난수 생성 문제를 그대로 물려받을 수 있었습니다. 수년 후에도 해당 시기에 생성된 월렛이 여전히 취약할 수 있다는 경고가 있었습니다.
월렛 인터페이스를 업데이트해도 기존 키는 그대로 남아 있습니다.Android SecureRandom
Android의 안전하지 않은 난수 생성 문제로 일부 비트코인 월렛이 위험에 노출된 적이 있습니다. 개발자들은 패치를 배포했지만, 기존 약한 키는 업데이트만으로 안전해지지 않아 사용자가 새 주소와 키로 자산을 옮겨야 했습니다.
랜덤 생성기 수정은 새 키에만 적용되며, 기존 키는 보호되지 않습니다.COLDCARD RNG
일부 COLDCARD 펌웨어는 의도보다 훨씬 낮은 엔트로피로 시드를 생성했습니다. 이 사고는 전용 하드웨어라도 실제 시드 생성 경로가 안전하지 않으면 취약해질 수 있음을 보여줍니다.
하드웨어만으로 전체 키 생성 경로의 안전성을 보장할 수 없습니다.COLDCARD 사고 전체 가이드 보기실질적 위험 점검
언제 오래된 월렛을 위험하다고 봐야 하나요?
시드 단어만 보고는 안전성을 판단할 수 없습니다. 언제, 어디서, 어떤 소프트웨어·펌웨어로 생성됐는지가 중요합니다.
시드 생성 경로 불분명
복구 문구가 어떤 앱, 웹사이트, 기기, 펌웨어, 절차로 생성됐는지 알 수 없습니다.
월렛이 보안 공지에 포함됨
시드가 공식 경고, CVE, 연구 공개, 마이그레이션 안내에 언급된 버전에서 생성된 경우
이전 시드를 최신 월렛에 가져오기
동일 복구 문구를 최신 하드웨어 월렛에 옮겨도 비밀 값 자체는 바뀌지 않습니다.
시드 또는 프라이빗 키가 노출됐을 수 있음
웹사이트 입력, 사진 촬영, 클라우드 메모 저장, 고객지원 공유, 타인 노출 등으로 시드가 유출될 수 있습니다.
위험 수준에 맞는 대응 선택
오래됐거나 의심스러운 시드는 어떻게 해야 하나요?
월렛이 오래됐다고 무조건 불안해할 필요는 없습니다. 시드 생성 방식과 해당 제품·버전이 공식 보안 공지에 포함됐는지 먼저 확인하고, 근거에 따라 조치하세요.
신뢰 가능한 생성 경로, 노출 흔적 없음
월렛과 펌웨어를 최신 상태로 유지하고, 백업을 안전하게 보관하며, 공식 보안 공지를 확인하세요. 오래된 월렛이 반드시 위험한 것은 아닙니다.
시드 생성 경로가 불명확하거나, 공식 경고에 언급됨
최신 안전한 소프트웨어나 하드웨어로 새 시드를 생성하세요. 백업을 확인하고, 소액 테스트 후 전체 자산을 옮기세요.
누군가 시드 또는 프라이빗 키를 알고 있음
해당 자산을 위험에 노출된 것으로 간주하고, 새 시드로 생성한 주소로 옮기세요. PIN, 비밀번호, 기기만 바꿔도 노출된 키는 그대로입니다.
약하거나 노출된 시드를 복구하지 못하는 방법
- 동일 시드를 새 하드웨어 월렛에 가져오기
- 기기 PIN 또는 월렛 앱 비밀번호만 변경
- 새 시드 없이 업데이트만 적용
- 비밀 값 노출 후 기기를 오프라인으로 전환
월렛 개발자를 위한 안내
키 생성 전체 경로 검증
이론상 안전한 알고리즘만으로는 부족합니다. 엔트로피 수집부터 랜덤 생성, 시드 완성까지 실제 제품의 전체 경로(펌웨어, 브라우저, OS, 빌드, 예외 처리 등)를 검증해야 합니다.
- 암호화에 적합한 플랫폼 또는 하드웨어 난수 소스를 사용하세요.
- 안전한 소스가 없을 때는 반드시 오류를 발생시키고, 일반 난수 함수로 대체하지 마세요.
- 빌드된 제품과 실제 호출 경로 전체를 테스트하세요. 소스 파일만 따로 검증해서는 안 됩니다.
- 시드 생성 방식과 사고 발생 시 사용자 마이그레이션 절차를 문서화하세요.
주요 공개 및 보안 가이드
실제 사고 및 암호화 가이드 확인
설명과 사례는 NIST 가이드, Milk Sad 공개, Unciphered RANDSTORM 공지, Bitcoin.org Android 경고, Bitcoin Optech, 최신 월렛 보안 가이드를 참고해 검증했습니다.
자주 묻는 질문
누군가 내 시드 문구를 알면 비트코인을 인출할 수 있나요?
네, 복구 문구 전체가 있으면 월렛의 프라이빗 키를 복원할 수 있습니다. 공격자는 호환 소프트웨어나 다른 기기에 입력해 원래 하드웨어 월렛이나 PIN 없이도 트랜잭션을 서명할 수 있습니다.
비트코인이 하드웨어 월렛에 저장되나요?
아니요. 비트코인은 블록체인에 기록되고, 하드웨어 월렛은 인출 권한이 있는 키를 보호합니다. 동일한 키가 외부에 유출되면, 물리적 기기 없이도 트랜잭션이 승인될 수 있습니다.
콜드 스토리지가 이미 노출된 프라이빗 키를 보호하나요?
아니요. 콜드 스토리지는 비공개 키를 네트워크로부터 분리해 보호하지만, 이미 누군가 프라이빗 키나 시드를 알게 되면 자신의 온라인 환경에서 트랜잭션을 생성·전송할 수 있습니다.
펌웨어 업데이트로 기존 약한 시드를 복구할 수 있나요?
아니요. 업데이트는 앞으로 생성될 시드만 안전하게 만들 수 있습니다. 기존 시드는 예측 불가능성을 추가할 수 없으므로, 새 시드를 만들어 자산을 옮기는 것이 안전합니다.
시드 단어만 보고 취약 여부를 알 수 있나요?
대부분 아닙니다. 약한 시드도 단어 수와 체크섬이 정상일 수 있습니다. 위험 여부는 생성 환경(앱, 기기, 펌웨어, 날짜, 보안 공지 등)에 따라 다르니 반드시 확인하세요.
강력한 월렛 비밀번호가 약한 시드를 안전하게 만드나요?
아니요. 기기 PIN이나 앱 비밀번호는 로컬 접근만 막을 뿐, 시드로 파생된 프라이빗 키 자체는 바뀌지 않습니다. 일부 월렛은 별도의 강력한 패스프레이즈로 추가 보안을 제공할 수 있지만, 이미 약한 시드를 근본적으로 복구하는 방법은 아닙니다.
프라이빗 키 하나가 유출되면 전체 월렛이 위험한가요?
항상 그런 것은 아닙니다. 프라이빗 키 하나는 해당 주소의 자산만 제어하지만, 시드가 유출되면 여러 프라이빗 키를 복원할 수 있어 위험 범위가 더 넓어집니다. 실제 영향 범위는 월렛 구조와 노출된 비밀 값에 따라 다릅니다.
24단어 시드도 취약할 수 있나요?
네, 단어 수가 많으면 가능한 조합도 많아지지만, 월렛이 안전하게 시작값을 선택했을 때만 의미가 있습니다. 취약한 생성기는 예측 가능한 작은 후보군에서 24단어 시드를 만들 수 있습니다.
실제 사례로 이어보기