
Cryptohack 전자 배지 프로젝트의 펌웨어 엔지니어링 홈입니다.
hip-badge ESP32-C3 플랫폼과 온보드 ATECC608B 보안 요소를 갖춘, 준보안 수준의 해커 친화적 하드웨어 암호화폐 지갑입니다. BTC, ETH(+ 8개 EVM 체인), SOL, XMR의 트랜잭션에 서명하며, 개인 키가 메시지에 닿기 전에 사용자가 승인해야 하는 온디바이스 SIGN 화면을 제공합니다.
firmware/badge/ runtime wallet
firmware/factory/ one-shot provisioning firmware + host driver
ref/ gitignored — clone upstream schematics here
⚠ 새 배지에서는 반드시 팩토리 펌웨어를 먼저 플래시하세요. 런타임 지갑은 ATECC608B가 프로비저닝되어 있을 것(슬롯 키 로드됨, config-zone 구성됨)을 기대하며, 그렇지 않으면 PIN으로 감싼 시드를 잠금 해제하지 않습니다. 순서는 다음과 같습니다: 팩토리 빌드 → 팩토리 플래시 → 호스트 드라이버 실행(
factory_provision.py) → 런타임 빌드 → 런타임 플래시. 팩토리 단계를 건너뛰면 SE 초기화 실패와 함께 스플래시에서 부팅이 멈추게 됩니다. 호스트 드라이버 안내는docs/TOOLS.md§ 팩토리 프로비저닝을 참조하세요.
# Activate ESP-IDF in this shell (see firmware/BUILDING.md for install)
. ~/esp/esp-idf/export.sh # or export.ps1 on Windows
# 1. Factory provision (one-time per badge)
cd firmware/factory
idf.py -B build -p $PORT build flash monitor
# (in another shell) cd firmware/factory/tools && \
# uv run --with pyserial --with cbor2 factory_provision.py --port $PORT
# 2. Build + flash the runtime (do this AFTER factory)
cd ../badge
export SDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.dev"
idf.py -B build_dev -p $PORT build flash monitor
전체 안내(Linux / macOS / Windows): firmware/BUILDING.md.
새 배지를 프로비저닝하거나 테스트 스위트를 재현하려면: docs/TOOLS.md.
| 이 문서를 읽으세요 | 다음을 원할 때… |
|---|---|
firmware/BUILDING.md | ESP-IDF를 설치하고 기기를 처음으로 플래싱할 때 |
docs/ARCHITECTURE.md | 지갑의 작동 방식 — 구성 요소, 신뢰 영역, 서명 흐름 — 을 이해할 때 |
docs/TOOLS.md | 공장 프로비저닝 호스트 드라이버 또는 코인별 서명 테스트를 실행할 때 |
docs/VERIFY.md | 대규모 변경 전후에 검증 스윕을 실행할 때 |
docs/PLAN.md | 방대한 보안 사양 — KEK 의식, 슬롯 맵, 복구 흐름 — 을 읽을 때 |
docs/CODE_STYLE.md | 프로젝트 규칙에 맞는 PR을 제출할 때 |
CONTRIBUTING.md | PR을 열 때(브랜칭, 커밋, 리뷰 기대치) |
TODO.md | 작업할 거리를 찾거나 이미 출시된 항목을 확인할 때 |
CLAUDE.md | AI 어시스턴트(Claude, Cursor 등)에게 프로젝트를 브리핑할 때 |
| 종류 | eFuse | 용도 | 재플래싱 가능? |
|---|---|---|---|
dev | 가상 (플래시) | 일상 반복 개발 | 예, 항상 |
stage | 실제, 잠금 해제 | 종단 간 실리콘 테스트 | 예, 잠글 때까지 |
prod | 실제, 잠김 | 출하 기기, Secure Boot V2 | 아니요 |
혼합:
firmware/badge/components/trezor-crypto/ — MIT (Trezor에서 벤더링)firmware/badge/components/tinycbor/ — MIT (Intel)firmware/badge/components/qrcodegen/ — MIT (Project Nayuki)firmware/badge/main/ (hip-badge blinkenlights/ 확장) — GPL-2.0-or-later