본 문서는 D'CENT 엔터프라이즈의 웜 월렛 계층에 적용되는 MPC-TSS(Multi-Party Computation — Threshold Signature Scheme) 기반 서명 시스템을 설계한다. MPC-TSS는 프라이빗 키를 여러 서버에 분산된 키 셰어(Key Share)로 나누어, 전체 키가 단일 지점에서 재구성되지 않으면서도 임계값(t) 이상의 셰어 참여로 유효한 서명을 생성하는 암호학적 프로토콜이다.
정기 셰어 로테이션 (키 리프레시와 동시 수행):
[1] 로테이션 스케줄 도래 (기본 7일)
[2] 모든 참여 서버 가용성 확인 (t개 이상 필요)
[3] CGGMP21 Key Refresh 프로토콜 실행
├─ 4 라운드 인터랙티브 프로토콜
├─ 각 서버가 새 셰어 생성
└─ 이전 셰어 안전 삭제 (제로 필)
[4] 새 셰어로 테스트 서명 수행 (검증)
[5] 감사 로그 기록 (로테이션 완료, 참여 서버, 타임스탬프)
DKG 세레모니:
[사전 준비]
- n개 서버 배포 완료 (네트워크 연결, HSM 설정)
- 서버 간 상호 TLS 인증 구성
- Admin 쿼럼 승인 (DKG 시작 권한)
[DKG 실행] (CGGMP21 DKG — 4라운드)
Round 1: 각 서버가 VSS(Verifiable Secret Sharing) 커밋먼트 생성 + 브로드캐스트
Round 2: 각 서버가 Feldman VSS 셰어를 다른 서버에 전달 (포인트-투-포인트)
Round 3: 각 서버가 수신 셰어 검증 + Schnorr 증명 생성
Round 4: 공개키 집계 → 최종 공개키 확정 + 각 서버 셰어 저장
[DKG 결과]
├─ 공개키(집계): 모든 서버 + 대시보드에 공유
├─ 개별 셰어: 각 서버에만 저장 (외부 전달 없음)
└─ 체인별 주소 파생: 공개키 → BTC/ETH/등 체인 주소
[검증]
- 테스트 서명 실행 (t개 서버 참여)
- 블록체인에서 서명 유효성 확인
- DKG 세레모니 전 과정 감사 로그
[1] 서명 요청 수신 (대시보드 → 서명 코디네이터)
├─ 트랜잭션 데이터 (수신자, 금액, 체인)
├─ 정책 검증 결과 (대시보드에서 사전 검증 완료)
└─ 세션 ID 생성
[2] 서명 참여자 선택 (t개 서버)
├─ 가용한 서버 중 t개 선택 (라운드 로빈 또는 지연 시간 기반)
└─ 참여자에게 서명 세션 초대
[3] CGGMP21 서명 프로토콜 (4라운드)
Round 1: 각 참여자가 커밋먼트 생성 + 브로드캐스트
Round 2: 부분 서명 생성 + 브로드캐스트
Round 3: 부분 서명 검증 + 집계 준비
Round 4: 최종 서명 집계 → 유효한 ECDSA/EdDSA 서명 출력
[4] 서명 결과 반환
├─ 유효한 서명 → 대시보드로 반환
├─ 실패 시 → 에러 코드 + Identifiable Abort (악의적 참여자 식별)
└─ 감사 로그 기록 (참여자, 서명 해시, 소요 시간)
[5] 트랜잭션 전파
- 대시보드가 블록체인에 전파 (Cold Tier와 동일한 전파 경로)
자동 서명 조건 (모든 조건 AND):
[1] 금액 < Warm 건당 한도 (예: $10,000)
AND
[2] 수신 주소가 화이트리스트 등록
AND
[3] 영업시간 내 (설정된 시간대)
AND
[4] 일일 누적 < Warm 일일 한도
AND
[5] 비상 정지(Kill Switch) 비활성 상태
자동 서명 조건 미충족
│
├─ 금액 초과 (Warm 한도) → Cold Tier 에스컬레이션
│ └─ 에어갭 다중 서명 프로세스로 전환
│
├─ 화이트리스트 미등록 → 요청 거부 + 등록 안내
│
├─ 영업시간 외 → 대기 큐 (다음 영업시간 처리)
│ └─ 긴급: Admin 승인 시 시간 제한 해제
│
└─ 일일 한도 초과 → 요청 거부 + 익일 자동 리셋 대기
본 문서는 Phase 4 Differentiation & Extended Architecture의 일부로, MPC-TSS 기반 웜 월렛 계층을 설계한다.CLAUDE.md의 "What NOT to Use"(단일 벤더 MPC 금지) 원칙을 준수하며, Phase 3 다중 서명 워크플로우(multisig-workflow.md)의 MPC-TSS 확장 방향을 구체화한다.