피드로 돌아가기
Dev.toSecurity
원문 읽기
Zero-knowledge proofs 기반의 Private State 아키텍처를 통한 DApp 데이터 기밀성 확보
Managing private state in Midnight DApps
AI 요약
Context
기존 Blockchain의 Public Ledger 구조로 인한 모든 온체인 데이터의 전면 공개 문제 발생. 특히 금융, 투표, 신원 증명 서비스 구현 시 데이터 프라이버시 결여가 치명적인 제약 사항으로 작용.
Technical Solution
- Public Ledger와 Private State를 분리한 Two-state 모델 설계로 데이터 가시성 제어
- Private State를 사용자 로컬 디바이스에만 저장하여 네트워크 전송 및 노출 가능성 원천 차단
- Zero-knowledge proofs를 통해 원본 데이터 공개 없이 연산의 정당성만 검증하는 메커니즘 구축
- Private Oracle(Private State + Witness functions) 구조를 통한 스마트 컨트랙트와 로컬 데이터 간의 안전한 브릿지 형성
- Compact 컴파일러의 disclose() 함수를 이용한 Private-to-Public 데이터 이동 시의 엄격한 타입 체크 및 컴파일 타임 제약 적용
- Cryptographic commitment 방식으로 온체인에는 데이터의 증명값만 저장하여 저장 공간 효율화 및 보안성 강화
실천 포인트
- 데이터 필드별로 검증자/타 사용자의 열람 필요 여부를 분석하여 Ledger와 Private State 저장 위치 결정 - Witness function을 통해 Private data가 직접적으로 온체인에 노출되지 않도록 설계 경로 검토 - disclose() 호출 시 데이터 공개 이유와 안전성을 명시하는 보안 리뷰 프로세스 수립 - 로컬 상태 저장을 위한 PrivateStateProvider의 영속성 계층 구현 및 데이터 무결성 검증 방안 마련