주제별 원본 삽화: ChainView BTC866 주제별 원본 도해 · ChainView BTC866 Editorial · CC BY 4.0
예측 불가능성이 출발점
지갑의 개인키는 다른 사람이 추측할 수 없는 방법으로 생성돼야 합니다. 현재 시각, 사용자 이름이나 사람이 만든 짧은 문장은 안전한 무작위성의 대체물이 아닙니다. 결과가 복잡해 보이더라도 입력을 예측할 수 있으면 공격자가 같은 키를 계산할 수 있습니다. 암호학적으로 안전한 난수 생성기는 운영체제의 엔트로피와 검증된 알고리즘을 활용합니다. 온라인 사이트의 무작위 숫자를 복사해 자산을 보관하는 방식은 신뢰 범위를 불필요하게 넓힙니다.
결정적 파생과 최초 비밀
하나의 시드에서 많은 키를 결정적으로 파생하는 방식은 복구와 주소 관리를 돕습니다. 이는 최초 시드도 사람이 고른 문장으로 만들어도 된다는 뜻이 아닙니다. 파생 경로와 추가 암호문 설정이 달라지면 같은 복구 문구에서 다른 지갑이 나타날 수 있습니다. 시드를 안전하게 생성한 뒤에도 복구 정보와 설정을 정확히 보관해야 합니다. 백업 파일에 비밀과 접근 비밀번호를 함께 적어 두면 분리 보관의 이점이 줄어듭니다.
난수 실패와 서명 위험
키 생성뿐 아니라 서명 알고리즘의 일부도 안전한 임시값을 필요로 합니다. 특정 서명 방식에서 임시값을 잘못 반복하거나 편향되게 만들면 개인키가 노출될 수 있습니다. 검증된 구현은 결정적 서명 등 적절한 방식을 사용하지만 사용자가 직접 임시값을 고치는 것은 위험합니다. 암호 라이브러리와 지갑 버전의 보안 공지를 확인하세요. 블록 탐색기에서 거래가 정상이라고 보이는 것만으로 키 생성 과정의 안전성이 증명되지는 않습니다.
감사 가능한 생성 환경
공식 배포와 서명 검증, 기기의 진위 및 초기 설정 절차를 확인합니다. 이미 복구 문구가 인쇄된 지갑은 스스로 안전하게 생성한 지갑과 다릅니다. 키를 생성한 장치가 악성코드에 감염됐다면 좋은 난수 알고리즘만으로 충분하지 않습니다. 학습용 코드는 실제 자금을 받는 지갑에 사용하지 말고 표준 지갑의 복구 시험을 별도 환경에서 수행하세요. 기록에는 소프트웨어와 절차만 남기고 비밀키를 공개 감사 자료로 제출하지 않는 것이 원칙입니다.



