피드로 돌아가기
Dev.toSecurity
원문 읽기
Public-Private 분리 아키텍처 기반 Midnight dApp 풀스택 구현
Building Private Signal Board: a Full-Stack Midnight dApp with Compact, Witnesses, React, and Off-Chain Metadata
AI 요약
Context
단순한 상태 읽기/쓰기 중심의 기존 스마트 컨트랙트 데모 모델의 한계 분석. 데이터의 공개 범위 설정과 증명 가능성이라는 Midnight 플랫폼의 핵심 가치를 실현하기 위한 구조적 접근 필요.
Technical Solution
- Compact 기반의 스마트 컨트랙트로 공개 상태(Public State)를 유지하며 체인의 Compactness 및 감사 가능성 확보
- Witness Layer를 통한 Private Input 처리로 민감 정보의 공개를 차단하고 Zero-Knowledge Proof 기반의 무결성 검증 수행
- Off-chain Metadata API를 분리하여 휴먼 리더블 컨텍스트와 UI 설정 정보를 관리함으로써 온체인 데이터 부하 감소
- TypeScript API Binding을 통한 Compact 컨트랙트 인터페이스의 정적 타입 보장 및 런타임 에러 방지
- Compact 컴파일러(0.31.0)와 런타임(@midnight-ntwrk/compact-runtime ^0.16.0)의 버전 정렬을 통한 런타임 호환성 해결
- CI 파이프라인 내 컨트랙트 컴파일, API 타입 체크, UI 빌드를 통합하여 전체 라이프사이클의 자동화 검증 수행
실천 포인트
- 온체인 데이터는 최소한의 상태(Source of Truth)만 유지하고 상세 메타데이터는 오프체인 API로 분리했는지 검토 - Zero-Knowledge Proof 적용 시 공개 데이터와 비공개 데이터의 경계(Boundary)가 명확히 정의되었는지 확인 - 초기 생태계 툴체인 사용 시 컴파일러, 런타임, 생성된 코드 간의 버전 일치 여부를 CI 단계에서 강제하는 프로세스 구축