피드로 돌아가기
What actually stays private on Midnight! (A builder's mental model)
Dev.toDev.to
Security

Midnight의 Witness-Ledger 구조를 통한 Default Privacy 아키텍처 구현

What actually stays private on Midnight! (A builder's mental model)

Cory Dabrowski2026년 6월 17일5advanced

Context

기존 Transparent Ledger 기반 체인에서 발생하는 데이터 노출 리스크 분석. 개발자 실수로 인한 Private 데이터 유출 방지를 위해 명시적 공개 메커니즘이 필요함.

Technical Solution

  • Witness, Ledger state, Disclosed values의 3단계 데이터 분류 체계 구축
  • 사용자 로컬 환경에만 잔존하는 Witness 기반의 Zero-Knowledge Proof 생성 구조 설계
  • Witness 유도 데이터의 Ledger 이동 시 컴파일러 단에서 차단하는 강제적 제약 사항 적용
  • disclose() 함수를 통한 명시적 공개 선언 기반의 Audit 가능 구조 구현
  • Low-entropy 데이터의 Brute-force 공격 방지를 위한 Fresh Salt 기반 Commitment 기법 적용
  • 단순 Hash 함수가 아닌 Salted Commitment를 통한 데이터 은닉성 보장 설계

- Witness 유도 데이터의 Boolean 결과값조차 정보 유출로 간주하여 disclose() 적용 여부 검토 - 공개 대상 데이터의 Entropy 수준을 분석하여 단순 Hash 대신 Salted Commitment 사용 - 동일 입력값에 대한 동일 Commitment 생성을 방지하기 위해 Salt 재사용 여부 전수 조사 - Circuit 배포 전 Witness-to-Ledger 경로 상의 명시적 disclose() 호출 위치 검증

원문 읽기