수탁형 콜드 월렛 아키텍처 (Custodial Cold Wallet Architecture)

작성일: 2026-04-17
본 아키텍처는 Fireblocks Cold Wallet 플랫폼을 기반으로 한 수탁형(custodial) 가상자산 관리 서비스의 참조 설계입니다.
기반 리서치:
- Fireblocks Cold Wallet 리서치
- KISA 가상자산 이용자 보호법 리서치
- 규제-Fireblocks 매핑
- Fireblocks 공식 문서 15종 한글 번역



1. 설계 원칙 (Design Principles)

# 원칙 근거
P1 Hot/Cold 워크스페이스 물리 분리 한 워크스페이스에서 Hot+Cold 공존 불가 (Fireblocks 제약)
P2 고객 자산 Segregated Vault 국내 이용자 자산 분리 의무 + Fireblocks Segregated 권장
P3 역할 분리 (SoD) Owner ≠ Signer ≠ Approver — 서명·승인·관리 완전 분리
P4 최소 2명 서명자 원칙 단일 서명자 금지 (Fireblocks Best Practices)
P5 자산 대부분 Cold 보관 한국 규제 준수 + EY/Fireblocks 39% 통계 기반
P6 에어갭 무결성 유지 iOS 전용 디바이스 · 감독 모드 · 영구 오프라인
P7 다변화 백업 키 쉐어 + 복구 패스프레이즈 지리·인력·매체 분리
P8 정책 우선 설계 TAP(Transaction Authorization Policy) 기반 방어적 기본값
P9 감사 가능성 모든 이벤트 webhook → 외부 SIEM 아카이빙
P10 연 1회 DR 리허설 테스트넷에서 Soft/Hard Recovery 검증

고객 / 거래 상대방
앱 · 웹 · 거래소 · 외부 지갑
▼ 입금
▼ 출금 요청
서비스 백엔드 (자체 구축)
  • KYC/AML · 한도 체크 · 고객 Vault 매핑
  • Fireblocks API Gateway
운영 워크스페이스 (W-OPS)
Hot + Warm
  • API Co-Signer
  • 입금 감지 · Sweeping
  • 소액 출금 자동화
수탁 워크스페이스 (W-COLD)
Cold-only
  • 에어갭 iOS 서명
  • 양방향 QR 서명
  • 고액 출금 수동 승인
⇵ Fireblocks P2P Network (쿼럼 승인) ⇵
온체인 (BTC · ETH · 스테이블코인 · ...)
감사·컴플라이언스 계층
Webhook → SIEM → 장기 아카이브(7년) → 규제 보고서

3. 워크스페이스 구조

📘 상세: docs/01

3.1 W-OPS (운영 워크스페이스, Hot + Warm)

항목 내용
타입 Hot + Warm 혼합
역할 일상 입출금, 고객 입금 수집, 소액 출금, 거래소 연동
서명 API Co-Signer (자동) + Warm 모바일 승인 (고빈도 수동)
자산 비중 전체 자산의 소수 (예: ~10~20% 이하)
연결성 인터넷 연결 · API 활성

3.2 W-COLD (수탁 워크스페이스, Cold-only)

항목 내용
타입 Cold-only (계약서 명시 필수)
역할 고객 자산 장기 보관, 대액 출금 승인
서명 에어갭 iOS + Fireblocks Cold Wallet 앱 + 양방향 QR
자산 비중 전체 자산의 대부분 (예: 80%+)
연결성 완전 오프라인 (콘솔만 온라인)

3.3 워크스페이스 간 통신


4. Vault 구조 — 고객별 Segregated

W-COLD (수탁 워크스페이스)
├── Vault: customer-00001/
│   ├── BTC 주소 · 키 쉐어
│   ├── ETH 주소 · 키 쉐어
│   └── USDC(ERC20) 주소 · 키 쉐어
├── Vault: customer-00002/
│   └── ...
├── Vault: customer-N/
│   └── ...
└── Vault: internal-reserve/    ← 회사 자금 (Omnibus 허용)

핵심:
- 고객별 독립 Vault Account = 독립 온체인 주소 = 독립 키 쉐어
- 고객 자산과 회사 자산 절대 혼합 금지
- 고객 자산 간에도 혼합 금지 (Omnibus 금지)
- 내부 운영 자금(유동성, 수수료 수령 등)만 Omnibus 형태 허용


5. 역할 및 거버넌스

📘 상세: docs/04 · docs/13

5.1 W-COLD 역할 배치 (권장)

역할 인원 책임 디바이스
Owner 1명 (+ 예비 1명) 루트 MPC 키 · 신규 서명자 승인만 에어갭 iOS (보안 금고)
Signer 최소 3명 (교대 가능) 대액 출금 서명 전용 에어갭 iOS 각자
Non-Signing Admin 2명+ 일상 승인, 워크스페이스 설정 변경 온라인 Fireblocks 앱
Approver 2~3명 (컴플라이언스) TAP 정책 기반 트랜잭션 검증 온라인 Fireblocks 앱
Viewer 감사팀 조회 전용 온라인
Security Manager 1명 (IT) iOS 감독 모드 프로비저닝 macOS + Apple Configurator

5.2 원칙

5.3 Admin Quorum 설정

변경 유형 필요 승인
정책(TAP) 변경 Non-Signing Admin 2명 + Approver 1명
화이트리스트 주소 추가 Non-Signing Admin 2명
신규 서명자 추가 Owner 승인 (에어갭 QR)
P2P 네트워크 연결 Admin Quorum + 상대 워크스페이스 쿼럼
워크스페이스 동결(Freeze) Owner 또는 Non-Signing Admin 1명 (긴급 시)

6. 정책(TAP) 레이어

📘 상세: docs/13

TAP는 첫 번째 일치 원칙(first-match) — 가장 제한적인 규칙부터 순서대로 정렬.

6.1 W-COLD TAP 권장 레이어

순위 규칙 조건 조치
1 블랙리스트 차단 제재 대상 · 미등록 고위험 주소 BLOCK
2 내부 Admin 송금 금지 출금자 = Admin/Owner BLOCK
3 일일 한도 초과 24h 누적 > 임계값 BLOCK · 재시도 시 재승인
4 P2P 네트워크 송금 상대가 등록 거래상대방 Signer 1명 + Approver 1명
5 화이트리스트 송금 (소액) whitelist + < 1 BTC 상당 Signer 1명 + Approver 1명
6 화이트리스트 송금 (대액) whitelist + ≥ 1 BTC 상당 Signer 2명 + Approver 2명
7 신규 주소 송금 whitelist 미등록 BLOCK (화이트리스트 등록 먼저)
8 시간대 제한 업무 시간 외 대기 + 내부 알림
9 기본 거부(catch-all) 모든 기타 BLOCK

6.2 W-OPS TAP 권장

6.3 Sweeping (W-OPS → W-COLD 정기 이체)


7. 키 관리 및 백업 아키텍처

📘 상세: docs/14 · docs/15

7.1 키 쉐어 배치

MPC-CMP 지갑 (3 key shares)
├── Share 1: Fireblocks 클라우드 (HSM 보호)
├── Share 2: 고객사 자체 저장소
│            ├─ W-OPS: API Co-Signer (온프렘 SGX TEE)
│            └─ W-COLD: 에어갭 iOS 기기 (Signer별 1대)
└── Share 3: 백업 저장소 (별도 지역)

7.2 백업 저장소 다변화 (권장)

요소 위치 #1 위치 #2
Workspace Key Backup Recovery Kit 본사 내화 금고 원격 DR 사이트 (타지역)
복구 패스프레이즈 (Owner) 금속 카드 - 은행 대여금고 금속 카드 - 제3자 수탁 (변호사 사무소 등)
복구 패스프레이즈 (Signer별) 각자 개인 금고 (선택) 회사 비상 봉투
제3자 DR 서비스 Coincover / Station70 평가

7.3 패스프레이즈 정책

7.4 복구 시나리오

시나리오 방법 소요 시간
Signer 기기 1대 분실 신규 Signer 온보딩 후 이전 삭제 (Soft Recovery) 1~2일
Owner 기기 분실 + 패스프레이즈 보유 복구 모드 활성화 (지원팀 화상 검증) 수 일
Owner 기기 분실 + 패스프레이즈 망실 기존 Signer를 임시 Owner로 승격 → 재프로비저닝 수 일~1주
전체 서명 인프라 손상 Hard Recovery (fireblocks-key-recovery-tool + 백업 키트) 수 일 (전면 운영 중단)

7.5 DR 리허설 주기


8. 입출금 트랜잭션 플로우

📊 요약 (의사결정자용): 아래 1장 다이어그램으로 입·출금 통제 구조 전체를 확인. 기술 상세 시퀀스는 이하 "개발자용 상세" 접기 블록에서 확인.

입금 플로우

flowchart LR A["전용 주소 송금
고객 · 1:1 주소"]:::cust --> B["확정 감지
커스터디 · 온체인 블록"]:::cty B --> C["원장 · 고객 알림
은행 · 감사 로그"]:::bank C --> D{"임계값
초과?"} D -- 초과 --> E["★ 콜드 자동 이체
커스터디 · 오프라인 보관"]:::hi D -- 미만 --> F["핫 · 웜 유지
커스터디 · 운영 유동성"]:::cty classDef cust fill:#f3f4f6,stroke:#6b7280,color:#111827 classDef bank fill:#fff7ed,stroke:#b45309,color:#7c2d12 classDef cty fill:#eef4ff,stroke:#1d4ed8,color:#0c2769 classDef hi fill:#1d4ed8,stroke:#1d4ed8,color:#ffffff,stroke-width:2px

출금 플로우

flowchart LR A["출금 요청
고객 · 2FA 인증"]:::cust --> B["정책 · 한도 · 리스크 점검
은행 · AML · 화이트리스트"]:::bank B --> C{"대액?"} C -- 대액 --> D["★ 다중 승인 + 오프라인 서명
은행 + 커스터디"]:::hi C -- 소액 --> E["자동 승인
커스터디 · 정책 통과분"]:::cty D --> F["온체인 전송 · 고객 통보
커스터디"]:::term E --> F classDef cust fill:#f3f4f6,stroke:#6b7280,color:#111827 classDef bank fill:#fff7ed,stroke:#b45309,color:#7c2d12 classDef cty fill:#eef4ff,stroke:#1d4ed8,color:#0c2769 classDef hi fill:#1d4ed8,stroke:#1d4ed8,color:#ffffff,stroke-width:2px classDef term fill:#ffffff,stroke:#111827,stroke-width:2px,color:#111827

범례: ■ 고객 · ■ 은행 운영·정책 · ■ 커스터디·온체인 · ★ 고위험 통제 포인트
ⓘ 전 단계 감사 로그 7년 보존 · 한국 가상자산이용자보호법(2024-07 시행) 준수

8.1 입금 플로우 (Deposit)

▸ 개발자용 상세 — 입금 시퀀스 (펼쳐보기)
sequenceDiagram autonumber actor Cust as 고객 participant Bank as 은행 participant WOPS as W-OPS (핫·웜) participant SGX as SGX Co-Signer participant CB as 콜백 핸들러 participant WCOLD as W-COLD (콜드) Cust->>WOPS: 전용 입금 주소로 송금 Note over WOPS: 온체인 확정 블록 판정
BTC 3~6 / ETH 12~20 confirm WOPS->>Bank: CONFIRMED Webhook Note over Bank: 원장 갱신 · 고객 알림
감사 로그 (SIEM 9.1절) Note over Bank: Sweeping 정책 평가
임계값(예: 10 BTC 상당) 초과? alt 임계값 미만 Note over WOPS: 현 잔고 유지 · 다음 배치 재평가
동일 주소로 계속 수신 else 임계값 초과 — W-COLD Sweeping Bank->>WOPS: 스윕 API 호출 (초과분만, P2P Network) Note over WOPS: P2P 대기열 등록 → TAP 평가 WOPS->>SGX: 서명 요청 SGX->>CB: 룰 검증 요청 Note over CB: 금액 · 목적지 워크스페이스
· 시간 · 사용자 평가 CB-->>SGX: APPROVE Note over SGX: Enclave 내부 MPC Key Share 서명
(키 미유출) SGX-->>WOPS: 서명본 반환 Note over WOPS: 클라우드 Share 결합 →
W-OPS 측 서명 완성 WOPS->>WCOLD: P2P 수신 요청 Note over WCOLD: Admin Quorum 승인
고객 Vault 수신
온체인 트랜잭션 없음 end

8.2 출금 플로우 (Withdrawal)

▸ 개발자용 상세 — 출금 시퀀스 (펼쳐보기)
sequenceDiagram autonumber actor Cust as 고객 participant Bank as 은행 participant WOPS as W-OPS (핫·웜) participant SGX as SGX Co-Signer participant CB as 콜백 핸들러 participant WCOLD as W-COLD (콜드) actor Signer as Signer (에어갭) actor Approver as Approver (온라인) Cust->>Bank: 출금 요청 — 목적지·금액·자산·2FA
(세션·IP·기기 지문 기록) Note over Bank: 사전 검증
KYC/AML · Travel Rule · 한도
화이트리스트 · 컴플라이언스 룰 Note over Bank: 금액 티어 판단 (8.3절)
→ Hot(소액) / Cold(대액) alt 소액 — Hot 경로 (W-OPS 자동 서명) Bank->>WOPS: Tx 생성 API (W-OPS vault · 목적지 · 금액) Note over WOPS: 대기열 등록 → TAP 평가
화이트리스트 · 한도 · 업무시간 WOPS->>SGX: 서명 요청 SGX->>CB: 룰 검증 요청 Note over CB: 위험 스코어 · 이상 패턴
내부 권한 · 이중 승인 조건 CB-->>SGX: APPROVE / REJECT Note over SGX: Enclave 내부 MPC Key Share 서명
(키 미유출) SGX-->>WOPS: 서명본 반환 Note over WOPS: 클라우드 Share 결합 → MPC 완성
Fireblocks 노드로 온체인 브로드캐스트 else 대액 — Cold 경로 (W-COLD 수동·에어갭) Bank->>WCOLD: Tx 생성 API (W-COLD vault · 목적지 · 금액) Note over WCOLD: 콘솔 Pending Tx · QR 코드 표시
(8시간 유효) WCOLD->>Signer: QR 표시 Note over Signer: Signing Room 2인 입실 (CCTV)
QR 스캔 · 목적지·금액 육안 확인
PIN + 생체 → Approve Signer-->>WCOLD: 응답 QR → 콘솔 웹캠 업로드 WCOLD->>Approver: 승인 요청 (TAP 정책) Note over Approver: 1~2명 (Signer와 다른 인력, SoD)
모바일 앱 생체 인증 → Approve Approver-->>WCOLD: Approve Note over WCOLD: Share 조합 (클라우드 + iOS + 백업)
MPC 서명 완성 → 온체인 브로드캐스트 end rect rgb(237, 245, 237) Note over WOPS,Bank: 공통 후처리 — Hot·Cold 모두 WOPS-->>Bank: CONFIRMED Webhook (Hot 경로) WCOLD-->>Bank: CONFIRMED Webhook (Cold 경로) Note over Bank: 잔고 차감 · Tx 해시·수수료 기록
SIEM 7년 아카이브 (9.1절)
고객 통보 · 이상 감지 알림 (9.2절) end

8.3 출금 제한 설계

구분 임계값 예시 처리 경로
초소액 < 0.01 BTC 상당 W-OPS 자동
소액 0.01 ~ 1 BTC W-OPS Warm 수동 승인
중액 1 ~ 10 BTC W-COLD Signer 1 + Approver 1
대액 ≥ 10 BTC W-COLD Signer 2 + Approver 2 + 시간 지연
초대액 사전 고지 필수 W-COLD + 실사 + Admin Quorum

임계값은 서비스 규모·가격 변동·규제 준수 상황에 맞게 주기적 조정


9. 모니터링·감사·컴플라이언스

9.1 로깅 · 감사

9.2 실시간 알림 트리거

이벤트 알림 대상 채널
TAP BLOCK 발생 보안팀 + 컴플라이언스 Slack + 이메일
임계값 초과 출금 시도 CISO + 관리자 Slack + SMS
Signer 서명 실패 3회 보안팀 PagerDuty
워크스페이스 구성 변경 전체 Admin 이메일
Signer 키 용량 10% 미만 IT · 보안팀 Slack (재프로비저닝 예약)
로그인 지역 이상 보안팀 Slack + SMS

9.3 정기 보고서


10. 재해 복구(DR) 아키텍처

10.1 등급별 대응

등급 시나리오 대응
L1 특정 Signer 부재 (휴가·병가) 다른 Signer로 교대 (최소 3명 유지)
L2 Signer 기기 분실 Soft Recovery — 신규 Signer 온보딩 후 이전 삭제
L3 Owner 기기 분실 Owner 복구 절차 (지원팀 + 복구 패스프레이즈)
L4 의심 침해 Workspace Freeze 즉시 발동 (발신 차단, 수신 허용)
L5 전체 인프라 손상 Hard Recovery — 복구 키트 + fireblocks-key-recovery-tool

10.2 RTO/RPO

10.3 워크스페이스 Freeze 절차

  1. 손상 의심 감지 → 보안팀 에스컬레이션
  2. Owner 또는 Non-Signing Admin이 즉시 Freeze 발동
  3. 모든 사용자 역할이 Viewer로 자동 변경 → 발신 차단
  4. 수신은 계속 (고객 입금 중단 회피)
  5. Fireblocks 지원팀 + 포렌식 팀에 보고
  6. 근본 원인 파악 후 Unfreeze 또는 신규 워크스페이스 마이그레이션

11. 물리 보안 및 인력 배치

11.1 디바이스 보관

디바이스 보관 위치 접근 권한
Owner iOS 본사 Tier-3 금고 (내화·생체) Owner + CISO (2-of-2)
Signer iOS (각자) 개인 금고 또는 팀 금고 본인 전용
macOS 프로비저닝 PC 격리 클린룸 Security Manager
복구 카드 (Owner) 은행 대여금고 + 제3자 수탁 Owner + 법무팀
Workspace Backup Kit 본사 금고 + DR 사이트 Owner + IT Lead

11.2 공간 요구사항

11.3 인력 요건


12. 한국 규제 매핑

📘 상세: regulation-fireblocks-mapping

규제 요구사항 본 아키텍처 대응
이용자 자산 분리 보관 고객별 Segregated Vault (4절) — 회사 자산과 물리 분리
콜드월렛 80% 이상 보관 W-COLD에 자산 대부분 배치 (3.2절), W-OPS 최소화
해킹·전산사고 대비 예치·보험 별도 준비 (Fireblocks 자체 기능 아님) — 외부 보험사 계약
안전한 키 관리 MPC-CMP + 에어갭 + 다변화 백업 (7절)
출금 통제 TAP 레이어드 정책 + 화이트리스트 + 다중 승인 (6절, 8절)
내부통제 기준 역할 분리 (5절) + Admin Quorum (5.3절) + 감사 로그 (9절)
이상거래 탐지 의무 실시간 알림 (9.2절) + SIEM 연동
7년 거래기록 보관 외부 아카이브 (9.1절)
ISMS-P 기술 요구사항 TAP + 감사 로그 + 접근 통제로 대응

12.1 HSM 관련 참고


13. 초기 구축 로드맵

Phase 1: 사전 준비 (4~6주)

Phase 2: 워크스페이스 프로비저닝 (2~3주)

Phase 3: 정책 및 연결 (2주)

Phase 4: 통합 및 감사 (2~3주)

Phase 5: 운영 리허설 (2주)

Phase 6: 제한 서비스 → 정식 오픈


부록: 체크리스트 요약

런북에 포함할 핵심 체크리스트는 fireblocks-cold-wallet-research 9절를 참조.