피드로 돌아가기
Building a Shielded Token dApp on Midnight: From Compact Contract to React UI
Dev.toDev.to
Security

Ledger와 Contract의 책임 분리를 통한 Privacy-first dApp 설계

Building a Shielded Token dApp on Midnight: From Compact Contract to React UI

Ragrin Armstrong2026년 6월 17일19advanced

Context

기존 Ethereum 모델의 단일 컨트랙트 중심 구조는 잔액과 소유권 노출이라는 프라이버시 한계 존재. Midnight 네트워크는 ZK Proof 기반의 Ledger 레이어와 정책 정의를 위한 Compact Contract 레이어를 분리하여 데이터 은닉과 비즈니스 로직을 동시에 해결함.

Technical Solution

  • Ledger와 Contract의 책임 분리: 실제 코인 가치와 소유권은 Ledger의 UTXO Commitment로 관리하고, Contract는 권한 검증과 Bookkeeping 역할만 수행하는 구조 설계
  • Keypair Admin Pattern 도입: Deployer의 신원 노출 방지를 위해 Local Private Key에서 파생된 Public Key만을 On-chain에 저장하는 익명성 확보 전략 채택
  • Witness 기반 데이터 주입: Wallet SDK를 통해 Private Data를 Circuit에 전달하는 Witness 메커니즘을 활용하여 데이터 유출 없는 상태 검증 구현
  • Domain-Separated Hashing 적용: persistentHash와 네임스페이스 패딩을 통한 Cross-protocol Attack 방지 및 키 충돌 가능성 원천 차단
  • Privacy Primitive 추상화: Merkle Tree 및 Nullifier 관리 로직을 Ledger 레이어로 위임하여 Contract 코드를 단순화하고 로직 검증 효율성 증대

1. On-chain 데이터 저장 시 신원 노출 가능성을 검토하고 Public Key 파생 패턴 적용 여부 확인

2. 서로 다른 목적의 해시 값 충돌 방지를 위해 Domain Separation 적용

3. 비즈니스 로직과 프라이버시 기본 프리미티브(ZK Proof, Merkle Tree 등)를 분리하여 테스트 가능성 확보

원문 읽기