<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Cold Wallet 리서치 자료</title>
<style>
:root { color-scheme: light; }
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: -apple-system, 'Apple SD Gothic Neo', 'Malgun Gothic', 'Noto Sans KR', sans-serif;
  line-height: 1.6;
  color: #222;
  background: #fff;
  display: flex;
  align-items: flex-start;
}

nav.sidebar {
  position: sticky;
  top: 0;
  width: 300px;
  flex-shrink: 0;
  height: 100vh;
  overflow-y: auto;
  padding: 24px 20px;
  background: #f7f8fa;
  border-right: 1px solid #e4e6eb;
  font-size: 0.85em;
}
nav.sidebar h2 {
  font-size: 0.9em;
  color: #555;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0 0 12px 0;
  padding: 0;
  border: 0;
  page-break-before: auto;
}
nav.sidebar ul { list-style: none; padding-left: 0; margin: 0; }
nav.sidebar li { margin: 1px 0; }
nav.sidebar a {
  display: block;
  color: #3b4149;
  text-decoration: none;
  padding: 4px 8px;
  border-radius: 4px;
  word-break: keep-all;
  line-height: 1.45;
}
nav.sidebar a:hover { background: #e8ecf1; color: #0366d6; }
nav.sidebar a.active { background: #dde7f5; color: #0366d6; font-weight: 600; }

nav.sidebar .home-nav {
  border-bottom: 1px solid #d8dce2;
  padding-bottom: 10px;
  margin-bottom: 14px;
}
nav.sidebar .home-nav a {
  display: block;
  font-weight: 600;
  color: #1f2328;
  padding: 6px 8px;
  border-radius: 4px;
  font-size: 0.92em;
}
nav.sidebar .home-nav a + a { margin-top: 2px; }
nav.sidebar .home-nav a:hover { background: #e8ecf1; color: #0366d6; }

.scroll-top {
  position: fixed;
  bottom: 28px;
  right: 28px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #0366d6;
  color: white;
  border: none;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(0,0,0,0.18);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.1s ease;
  z-index: 1000;
  padding: 0;
}
.scroll-top.visible { opacity: 1; pointer-events: auto; }
.scroll-top:hover { background: #0353b4; transform: translateY(-1px); }
.scroll-top:active { transform: translateY(0); }

nav.sidebar > ul > li > a { font-weight: 600; color: #1f2328; margin-top: 6px; }
nav.sidebar ul ul {
  padding-left: 14px;
  margin: 2px 0 6px;
  border-left: 1px solid #d8dce2;
  margin-left: 10px;
}
nav.sidebar ul ul li a {
  font-size: 0.95em;
  color: #4a5159;
  padding-left: 10px;
  position: relative;
}
nav.sidebar ul ul li a::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 6px;
  height: 1px;
  background: #cfd4db;
}
nav.sidebar ul ul ul {
  padding-left: 12px;
  margin-left: 8px;
}
nav.sidebar ul ul ul li a {
  font-size: 0.9em;
  color: #6b7280;
}

main.content {
  flex: 1;
  min-width: 0;
  max-width: 900px;
  margin: 0 auto;
  padding: 32px 48px 64px;
}

h1 { border-bottom: 2px solid #333; padding-bottom: 8px; }
h2 { border-bottom: 1px solid #ccc; padding-bottom: 4px; margin-top: 1.8em; }
h3 { margin-top: 1.4em; }
code { background: #f4f4f4; padding: 2px 4px; border-radius: 3px; font-family: 'Menlo', 'Courier New', monospace; font-size: 0.9em; }
pre { background: #f7f7f7; padding: 12px; border-radius: 4px; overflow-x: auto; border: 1px solid #e0e0e0; font-size: 0.82em; line-height: 1.4; white-space: pre; }
pre code { background: none; padding: 0; }
table { border-collapse: collapse; margin: 1em 0; width: 100%; font-size: 0.92em; }
th, td { border: 1px solid #ccc; padding: 6px 10px; text-align: left; vertical-align: top; word-break: keep-all; }
th { background: #f0f0f0; }
blockquote { border-left: 4px solid #4a90e2; padding: 6px 14px; color: #333; background: #eef6ff; margin: 1em 0; border-radius: 0 4px 4px 0; }
img { max-width: 80%; height: auto; display: block; margin: 1em auto; border: 1px solid #ddd; padding: 8px; background: white; }
a { color: #0366d6; text-decoration: none; }
a:hover { text-decoration: underline; }
hr { border: 0; border-top: 1px solid #e4e6eb; margin: 2em 0; }
em { color: #666; }

@media (max-width: 900px) {
  body { display: block; }
  nav.sidebar {
    position: static;
    width: 100%;
    height: auto;
    border-right: 0;
    border-bottom: 1px solid #e4e6eb;
  }
  main.content { max-width: 100%; padding: 24px 20px; }
}

@page { size: A4; margin: 2cm; }
@media print {
  body { display: block; background: #fff; }
  nav.sidebar { display: none; }
  .scroll-top { display: none; }
  main.content { max-width: 100%; margin: 0; padding: 0; }
  h2 { page-break-before: always; break-before: page; }
  h2:first-of-type { page-break-before: auto; break-before: auto; }
  h2, h3, h4 { page-break-after: avoid; break-after: avoid; }
  tr, pre, blockquote, img { page-break-inside: avoid; break-inside: avoid; }
  p { widows: 3; orphans: 3; }
  a { color: #0366d6; }
}
</style>
</head>
<body>
<nav class="sidebar" aria-label="목차">
<div class="home-nav">
<a href="./README.html">🏠 전체 목차</a>
</div>
<h2>목차</h2>
<ul>
<li><a href="#_1">목차</a>
</li>
<li><a href="#_2">문서 구성</a>
</li>
<li><a href="#_3">빠른 참조 — 핵심 수치</a>
<ul>
<li><a href="#2024-07-19">국내 규제 (가상자산 이용자 보호법, 2024-07-19 시행)</a></li>
<li><a href="#_4">국내 거래소 자산 보관 비중 (공식 발표)</a></li>
<li><a href="#3">국내 수탁 3사 기술 스택 (공식 확인)</a></li>
<li><a href="#fireblocks">Fireblocks 국내 파트너십 (공식)</a></li>
</ul>
</li>
<li><a href="#_5">다음 단계 권장</a>
</li>
<li><a href="#_6">내부 저장소 연계 문서</a>
</li>
</ul>
</nav>
<main class="content">
<h1 id="cold-wallet">Cold Wallet 리서치 자료</h1>
<blockquote>
<p>리서치 일자: 2026-04-16
본 폴더의 모든 문서는 <strong>공식 출처(법령·공식 발표·보도자료·공식 문서) 기반</strong>으로 작성되었습니다.
추측은 배제했으며, 공개되지 않은 영역은 "공식 확인 자료 없음"으로 명시했습니다.</p>
</blockquote>
<hr />
<h2 id="_1">목차</h2>
<ul>
<li><a href="#문서-구성">문서 구성</a></li>
<li><a href="#빠른-참조-핵심-수치">빠른 참조 — 핵심 수치</a><ul>
<li><a href="#국내-규제-가상자산-이용자-보호법-2024-07-19-시행">국내 규제 (가상자산 이용자 보호법, 2024-07-19 시행)</a></li>
<li><a href="#국내-거래소-자산-보관-비중-공식-발표">국내 거래소 자산 보관 비중 (공식 발표)</a></li>
<li><a href="#국내-수탁-3사-기술-스택-공식-확인">국내 수탁 3사 기술 스택 (공식 확인)</a></li>
<li><a href="#fireblocks-국내-파트너십-공식">Fireblocks 국내 파트너십 (공식)</a></li>
</ul>
</li>
<li><a href="#다음-단계-권장">다음 단계 권장</a></li>
<li><a href="#내부-저장소-연계-문서">내부 저장소 연계 문서</a></li>
</ul>
<hr />
<h2 id="_2">문서 구성</h2>
<table>
<thead>
<tr>
<th>#</th>
<th>주제</th>
<th>주요 내용</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td><a href="./custodial-cold-wallet-architecture.html"><strong>수탁형 콜드 월렛 아키텍처 (참조 설계)</strong></a></td>
<td>W-OPS/W-COLD 이중 워크스페이스, 고객별 Segregated Vault, 역할 배치(Owner/Signer 3명/Admin), TAP 9단계, 키 백업 다변화, 입출금 플로우, DR 등급, 한국 규제 매핑, 6-Phase 로드맵</td>
</tr>
<tr>
<td>2</td>
<td><a href="./docs/index.html"><strong>Fireblocks Cold Wallet 공식 문서 (한글)</strong></a></td>
<td>Help Center 15개 문서 전문 번역 — 개요, 프로비저닝, 서명, 보안, 복구 등 (스크린샷 포함)</td>
</tr>
<tr>
<td>3</td>
<td><a href="./kisa-virtual-asset-research.html"><strong>KISA / 국내 가상자산 규제</strong></a></td>
<td>특금법 + 가상자산 이용자 보호법(2024-07-19) + ISMS-P 3축, 콜드월렛 80% 의무, 개인키 2인 분할, 보험·준비금, 15년 거래기록, VASP 56개 추가 점검항목</td>
</tr>
<tr>
<td>4</td>
<td><a href="./regulation-fireblocks-mapping.html"><strong>규제 요건 ↔ Fireblocks 매핑</strong></a></td>
<td>12개 규제 요건별 Fireblocks 대응 기능, 해석 필요 영역(MPC=멀티시그 동등 인정 여부 등)</td>
</tr>
<tr>
<td>5</td>
<td><a href="./korean-companies-research.html"><strong>국내 기업 현황</strong></a></td>
<td>업비트(99%), 빗썸(95.6%), KODA(Henesis 멀티시그), KDAC(SOC1 Type2), BDACS(MPC+멀티시그), Fireblocks 한국 파트너십(NH농협·신한투자·카이아)</td>
</tr>
<tr>
<td>6</td>
<td><a href="./hsm-sgx-fireblocks-overview.html"><strong>HSM·SGX·Apple Secure Enclave 개념과 Fireblocks 적용 방식</strong></a></td>
<td>세 가지 TEE 비교, SGX 키 생성 메커니즘(EPC·EGETKEY·RDRAND), Apple Secure Enclave 상세(적용 기기·sepOS·Face ID), Zero-day와 부채널 공격 사례(Foreshadow·Plundervolt·ÆPIC Leak), MPC와의 계층 관계, Fireblocks 기본 SGX 스택과 HSM(BYO) 옵션, 용어집 — Key Link 제외</td>
</tr>
</tbody>
</table>
<hr />
<h2 id="_3">빠른 참조 — 핵심 수치</h2>
<h3 id="2024-07-19">국내 규제 (가상자산 이용자 보호법, 2024-07-19 시행)</h3>
<ul>
<li><strong>콜드월렛 80% 이상</strong> 의무 보관 (기존 70% → 10%p 상향)</li>
<li><strong>개인키·복구구문 2인 이상 분할 확인</strong> 의무</li>
<li><strong>보험/준비금</strong>: 핫 자산의 5% + 최소 30억 원</li>
<li><strong>거래기록 15년</strong> 보존</li>
</ul>
<h3 id="_4">국내 거래소 자산 보관 비중 (공식 발표)</h3>
<table>
<thead>
<tr>
<th>거래소</th>
<th>콜드월렛 비중</th>
<th>비고</th>
</tr>
</thead>
<tbody>
<tr>
<td>업비트</td>
<td><strong>99%</strong> (목표 100%)</td>
<td>2025-11 솔라나 해킹 후 상향</td>
</tr>
<tr>
<td>빗썸</td>
<td><strong>95.6%</strong> (2025-12-31)</td>
<td>법정 기준 120% 수준</td>
</tr>
</tbody>
</table>
<h3 id="3">국내 수탁 3사 기술 스택 (공식 확인)</h3>
<table>
<thead>
<tr>
<th>수탁사</th>
<th>기술</th>
<th>주주</th>
</tr>
</thead>
<tbody>
<tr>
<td>KODA</td>
<td>Henesis 멀티시그 2-of-3</td>
<td>KB국민은행 + 해시드 + 해치랩스</td>
</tr>
<tr>
<td>KDAC</td>
<td>비공개 (SOC1 Type2 취득)</td>
<td>신한은행 + 코빗 + 블로코 + 페어스퀘어랩</td>
</tr>
<tr>
<td>BDACS</td>
<td>MPC + 콜드월렛 하이브리드</td>
<td>우리은행 투자</td>
</tr>
</tbody>
</table>
<h3 id="fireblocks">Fireblocks 국내 파트너십 (공식)</h3>
<ul>
<li>NH농협은행 (2024-11, VAT 토큰화)</li>
<li>신한투자증권 + 웨이브릿지 (2025-01, 비트코인 현물 ETF 수탁)</li>
<li>카이아(Kaia)</li>
</ul>
<hr />
<h2 id="_5">다음 단계 권장</h2>
<ol>
<li><strong>내부 통제 문서화</strong>: <a href="./regulation-fireblocks-mapping.html"><code>regulation-fireblocks-mapping.md</code></a> 매핑 기반으로 ISMS-P 심사 대비 통제 기술서 작성</li>
<li><strong>ISMS-P 심사원 사전 조율</strong>: "MPC-CMP = KISA 권장 멀티시그 동등기술" 해석 확인</li>
<li><strong>운영 정책 수립</strong>:
   - Workspace 분리 (운영용 Hot/Warm + 수탁용 Cold-only)
   - Segregated Vault 구조
   - TAP 규칙 최소 9~12개
   - 연 1회 복구 리허설
   - 거래기록 WORM 스토리지 백업</li>
</ol>
<hr />
<h2 id="_6">내부 저장소 연계 문서</h2>
<p>본 폴더 외에 내부 Git 저장소에는 아래 상세 가이드가 함께 관리되고 있습니다. 공개 배포 범위에는 포함되지 않으므로 필요 시 레포지토리에서 직접 확인하세요.</p>
<ul>
<li><code>fireblocks-custodial-cold-wallet-guide.md</code> — Fireblocks 수탁형 콜드월렛 &amp; 에어갭 서명 종합 가이드 (Key Link, 스위핑, HSM 심화 포함)</li>
<li><code>docs/234-aws-nitro-api-co-signer-architecture.md</code> — AWS Nitro API Co-Signer 아키텍처</li>
<li><code>docs/240-install-aws-nitro-api-co-signer.md</code> — AWS Nitro API Co-Signer 설치 가이드</li>
</ul>
</main>

<script>
(function() {
  var headings = document.querySelectorAll('main.content h2[id], main.content h3[id]');
  var links = document.querySelectorAll('nav.sidebar a[href^="#"]');
  var map = {};
  links.forEach(function(a) {
    var id = decodeURIComponent(a.getAttribute('href').slice(1));
    map[id] = { link: a };
  });
  function setActive() {
    var current = null;
    headings.forEach(function(h) {
      var rect = h.getBoundingClientRect();
      if (rect.top - 80 < 0) current = h.id;
    });
    links.forEach(function(a) { a.classList.remove('active'); });
    if (current && map[current]) map[current].link.classList.add('active');
  }
  window.addEventListener('scroll', setActive, { passive: true });
  setActive();
})();
</script>

<script>
(function() {
  var btn = document.createElement('button');
  btn.className = 'scroll-top';
  btn.type = 'button';
  btn.setAttribute('aria-label', '맨 위로');
  btn.title = '맨 위로';
  btn.textContent = '↑';
  btn.addEventListener('click', function() {
    window.scrollTo({ top: 0, behavior: 'smooth' });
  });
  document.body.appendChild(btn);
  function toggle() {
    if (window.scrollY > 300) btn.classList.add('visible');
    else btn.classList.remove('visible');
  }
  window.addEventListener('scroll', toggle, { passive: true });
  toggle();
})();
</script>

</body>
</html>
