피드로 돌아가기
Managing Private State in Midnight: Patterns, Pitfalls, and Best Practices
Dev.toDev.to
Security

Client-side Private State와 Commitment 모델을 통한 온체인 프라이버시 구현

Managing Private State in Midnight: Patterns, Pitfalls, and Best Practices

Tosh2026년 4월 19일11advanced

Context

EVM 기반 체인의 모든 스토리지 공개 구조로 인한 프라이버시 제약 해결 필요. 기존 TEE나 암호화 API 등 외부 인프라 의존성을 제거하고 프로토콜 레벨에서 프라이버시를 보장하는 아키텍처 설계 요구.

Technical Solution

  • Ledger State(공개)와 Private State(클라이언트)의 도메인 분리를 통한 데이터 가시성 제어
  • Poseidon Hash 기반의 Commitment 모델을 도입하여 실제 값은 로컬에 저장하고 온체인에는 암호화된 해시값만 기록하는 구조 설계
  • User Public Key를 Commitment에 바인딩하여 타인의 무단 인출을 방지하는 소유권 검증 로직 구현
  • 256-bit Entropy의 Secret(Blinding Factor)을 개별 Commitment마다 적용하여 동일 값 간의 상관관계 분석 공격 차단
  • UTXO 스타일의 Note 기반 상태 관리 모델을 통해 잔액 변경 시 기존 Note의 Nullification과 신규 Note 생성을 통한 원자적 상태 전이 구현
  • Root History Circular Buffer(최근 100개 Root 저장)를 통한 Stale Merkle Root 문제 해결 및 증명 유효 기간 확보

1. Private State 유실 시 복구 불가능함을 인지하고 로컬 데이터 백업 전략 수립

2. Commitment 생성 시 반드시 고유한 Secret을 사용하여 데이터 간 Linkability 제거

3. Merkle Proof 생성과 제출 사이의 시간차를 고려하여 온체인 Root History 버퍼 크기 산정

4. 소유자 식별자를 해시값에 포함하여 Preimage 유출 시의 리스크 최소화

원문 읽기