Midnight Network에서 첫 프라이버시 보호 앱 만들기

발행: (2025년 12월 15일 오전 07:34 GMT+9)
4 min read
원문: Dev.to

Source: Dev.to

프라이버시‑우선 블록체인 애플리케이션에 관심이 있다면, Midnight Network (MN)는 흥미로운 놀이터입니다. MN을 사용하면 제로‑지식 증명(ZKP)을 활용해 민감한 데이터를 보호하면서도 블록체인과 검증 가능한 방식으로 상호작용하는 DApp을 만들 수 있습니다. 핵심은 선택적 공개—사용자는 모든 정보를 노출하지 않고도 특정 정보를 증명할 수 있습니다.

create-mn-app 빠른 시작

create-mn-app CLI는 설정 없이 Midnight Network 애플리케이션을 스캐폴딩합니다. TypeScript, 핫 리로딩, 지갑 생성이 사전 구성되어 제공됩니다. Node.js, Docker, Compact 컴파일러에 대한 의존성은 자동으로 관리됩니다.

npx create-mn-app my-app
cd my-app
npm run setup

사용 가능한 템플릿

  • Hello World – ZKP를 이용한 메시지 저장
  • Counter DApp – ZKP를 이용한 증감 기능
  • Bulletin Board, DEX, Midnight Kitties 등 기타 템플릿은 현재 개발 중입니다.

수동 설정

사전 요구 사항

  • Node.js ≥ 20.x (NVM을 통해 설치)
  • 기본 명령줄 사용 지식
  • 코드 편집기 (예: Visual Studio Code)
nvm install 20

프로젝트 생성

mkdir my-mn-app
cd my-mn-app
npm init -y
mkdir src contracts
touch contracts/hello-world.compact

스마트 계약 정의

pragma language_version 0.17;

// Ledger to store your data
export ledger message: Opaque;

// Circuit to update the ledger
export circuit storeMessage(customMessage: Opaque): [] {
  message = disclose(customMessage);
}

disclose는 데이터를 의도적으로 공개하기 위해 필요합니다. Compact는 기본적으로 프라이버시를 보장합니다.

스마트 계약 컴파일

compact compile contracts/hello-world.compact contracts/managed/hello-world

컴파일 결과:

  • contract/ – 컴파일된 계약 아티팩트
  • keys/ – ZKP를 위한 암호화 키
  • zkir/ – 제로‑지식 중간 표현(Intermediate Representation)
  • compiler/ – 빌드용 중간 파일

이 설정으로 Midnight Network에서 프라이버시를 보장하는 DApp을 바로 구축할 수 있습니다. 사용자는 민감한 데이터를 비공개로 유지하면서 안전하게 상호작용할 수 있습니다. Compact 계약과 ZKP의 결합은 체인 상에서 확장 가능하고, 안전하며 검증 가능한 프라이버시를 제공합니다.

다음 단계

시리즈의 다음 파트에서는 MN 앱을 배포하는 방법과 상호작용하는 방법을 자세히 살펴볼 예정입니다. 프라이버시를 보장하는 DApp을 Midnight Network에서 계속 구축하고 싶다면 기대해 주세요! 🌌

Back to Blog

관련 글

더 보기 »