피드로 돌아가기
Building an Unshielded Token dApp with UI on Midnight
Dev.toDev.to
Security

Compact DSL 기반 Unshielded Token 설계를 통한 ZK 오버헤드 제거 및 트랜잭션 효율화

Building an Unshielded Token dApp with UI on Midnight

mmoo92026년 4월 17일11intermediate

Context

Midnight 네트워크의 기본 Privacy 기능은 ZK-Proof 생성으로 인한 연산 부하와 높은 가스 비용을 유발함. 모든 데이터의 은닉이 필요하지 않은 Governance Token이나 Loyalty Point의 경우, 과도한 Shielding 설정이 시스템 복잡도와 사용자 비용을 증가시키는 병목 지점으로 작용함.

Technical Solution

  • Compact DSL을 활용해 ZK Circuit으로 컴파일되는 스마트 컨트랙트 설계
  • Ledger State에 Balance를 Public Map 형태로 저장하여 ZK Proof 생성 단계 생략
  • mintUnshieldedsendUnshielded Circuit 내에 own_public_key 검증 로직을 구현한 권한 제어
  • ledger.balances.lookupinsert 메서드를 통한 상태 업데이트 최적화로 데이터 읽기/쓰기 효율성 확보
  • @midnight-ntwrk/midnight-js 라이브러리를 통해 Wallet-Contract 간의 비동기 RPC 통신 구조 설계
  • React Frontend와 Lace Wallet 연동을 통한 End-to-End 트랜잭션 파이프라인 구축

- 데이터 은닉 필요성 여부에 따라 Shielded/Unshielded 모델을 선택하여 ZK Circuit 연산 비용 최적화 - Compact DSL 사용 시 `ledger` 상태 변수의 Public/Private 가시성 설정을 통한 가스비 절감 검토 - ZK 기반 dApp 개발 시 Local Docker Stack을 활용한 테스트 환경 구축으로 개발 사이클 단축

원문 읽기