// 지갑

지갑 아키텍처Wallet Architecture

READING TIME6분
VERSIONv2.4.1
LAST UPDATED2026.05.07

Mullet의 자산 커스터디는 '콜드 / 웜 / 핫 3계층 분리 + 멀티시그 임계 + 온체인 검증 가능성'이라는 세 가지 원칙을 따릅니다. 이 문서는 입금부터 출금까지 자금 흐름을 아키텍처 관점에서 설명하고, 이 설계가 CEX와 DEX 사이에서 합리적인 균형점이라고 보는 이유를 밝힙니다.

Mullet의 자산 커스터디는 **'콜드 / 웜 / 핫 3계층 분리 + 멀티시그 임계 + 온체인 검증 가능성'**이라는 세 가지 원칙을 따릅니다. 이 문서는 입금부터 출금까지 자금 흐름을 아키텍처 관점에서 설명하고, 이 설계가 CEX와 DEX 사이에서 합리적인 균형점이라고 보는 이유를 밝힙니다.

전체 아키텍처

Mullet의 지갑 시스템은 세 계층으로 구성됩니다 — 핫 지갑(2%) · 웜 지갑(6%) · 콜드 지갑(92%). 대부분의 자금은 콜드 지갑에 오프라인으로 보관하고, 일상적인 입출금에 대응할 소액만 핫 지갑에 둡니다.

핫 계층

핫 지갑은 Mullet 백엔드와 실시간으로 연결되는 유일한 자금 풀로, 일상적인 입출금과 오프체인 체결 시스템의 증거금 배분을 담당합니다.

  • 규모: 총 운용 자산의 2%를 넘지 않습니다
  • 배분: 자동화되어 있으며 단건 출금이 10만 달러를 넘으면 수동 심사가 시작됩니다
  • 암호화: 개인키는 AES-256으로 암호화해 보관하고 키는 AWS KMS가 관리하며, 서명은 Intel SGX 엔클레이브(신뢰 실행 환경)에서 수행합니다
  • 모니터링: 100K USDC를 넘는 출금은 SOC 팀의 수동 확인을 거칩니다
  • 서킷 브레이커: 출금 속도가 비정상이면 핫 지갑을 자동 정지하며, 해제하려면 사람이 개입해야 합니다

웜 계층

웜 지갑은 핫과 콜드 사이의 완충 장치입니다. 핫 지갑 잔고가 임계값 아래로 내려가면 주기적으로 보충합니다.

  • 규모: 운용 자산의 6%
  • 멀티시그: 2-of-3 임계
  • 타임락: 웜 자금을 움직이는 제안은 최소 24시간 지연 후 실행됩니다
  • 독립된 서명자: 핫 지갑 서명자와 완전히 달라 담합을 방지합니다

콜드 계층

콜드 지갑은 Mullet 자금의 최종 금고로, 사용자 자산의 92%가 여기 보관됩니다.

  • 규모: 운용 자산의 92%
  • 멀티시그: 3-of-5 임계 + 수동 심사, 서명자는 세 개 시간대에 분산
  • 오프라인 서명: 물리적으로 망에서 분리된(에어갭) 환경에서 서명합니다
  • 72시간 타임락: 제안부터 실행까지 최소 72시간이 걸려 그동안 커뮤니티가 감시할 수 있습니다
  • 지역 분산 백업: 개인키 조각(Shamir's Secret Sharing)을 서로 다른 세 곳에 보관합니다
i

투명성 약속: 콜드 지갑 주소는 전면 공개되어 있으며 Solscan에서 잔고를 실시간으로 확인할 수 있습니다. 콜드 지갑의 이동 기록도 온체인에 공개되므로 누구나 Solana 블록 탐색기로 직접 검증할 수 있습니다.

사용자 자금 분리

Mullet은 세 종류의 계정을 엄격히 구분합니다.

계정 유형 자금 출처 용도 임의로 사용되나요?
이용자 예치 계정 이용자 입금 청산 증거금 / 출금 플랫폼이 절대 끌어 쓰지 않습니다
회사 운영 계정 수수료 수익 인건비 / 서버 / 마케팅 CFO만 집행할 수 있습니다
보험 기금 청산 수수료 + 이익 적립 극단적 시세에서의 보전 청산 엔진만 발동할 수 있습니다

세 계정은 온체인에서 완전히 분리되어 주소와 멀티시그 구조가 모두 다릅니다. Mullet 운영 계정이 침해되더라도 이용자 자금은 안전합니다.

자기 보관으로 전환하는 방법

Mullet에 자금을 맡기고 싶지 않다면 언제든 지갑 연결 모드로 전환할 수 있습니다.

  1. 모든 자금을 Phantom / Backpack 등 자기 보관 지갑으로 출금합니다
  2. 이메일 계정에서 로그아웃하고 지갑 연결로 로그인합니다
  3. 거래 자금은 본인 지갑에서 Mullet 지정 주소로 직접 전송됩니다
  4. 포지션의 증거금은 언제나 본인 지갑 주소에 귀속됩니다

철학: 커스터디 지갑은 개인키 관리에 익숙하지 않은 사용자를 위한 편의 계층입니다. 아키텍처를 설계할 때 '어떤 사용자든 언제라도 자기 보관으로 옮길 수 있다'고 가정했고, 그 전환이 어떤 상태도 잃지 않고 이뤄지도록 만들었습니다.