在 Midnight Network 上构建您的第一个隐私保护应用

发布: (2025年12月15日 GMT+8 06:34)
3 min read
原文: Dev.to

Source: Dev.to

如果你对隐私优先的区块链应用感兴趣,Midnight Network(MN)是一个令人兴奋的实验场。使用 MN,你可以构建使用零知识证明(ZKPs)来保护敏感数据,同时仍以可验证的方式与区块链交互的 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 的增减计数
  • 其他模板如公告板、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/ – 零知识中间表示
  • compiler/ – 构建过程中的中间文件

有了这些准备,你就可以开始在 Midnight Network 上构建隐私保护的 DApp。用户可以安全交互,而敏感数据保持私密。Compact 合约 + ZKP 的组合确保了链上隐私的可扩展性、安全性和可验证性。

后续步骤

在本系列的后续章节中,我们将深入探讨如何 部署 MN 应用,以及如何 交互 MN 应用。敬请期待,继续在 Midnight Network 上构建隐私保护的 DApp! 🌌

Back to Blog

相关文章

阅读更多 »