指南總覽
歡迎來到 zkenc 指南!這些逐步教學將幫助你將見證加密整合到你的專案中。
你將學到什麼
這些指南提供完整、實用的範例,說明如何在實際應用中使用 zkenc:
📦 Node.js 整合
學習如何使用見證加密建立完整的 Node.js 應用程式。
- 載入和編譯 Circom 電路
- 加密和解密檔案
- 正確處理電路輸入
- 錯誤處理和最佳實踐
⚛️ React 整合
使用見證加密建立互動式 React 應用程式。
- 設定 Vite + React + TypeScript
- 在瀏覽器中處理電路檔案
- 建立加密/解密 UI
- 使用 Web Workers 優化效能
🔄 跨工具工作流程
結合使用 zkenc-cli 和 zkenc-js 以獲得最大靈活性。
- 使用 CLI 加密,用 JavaScript 解密
- 跨環境共享密文
- 結合工具優勢以適應你的工作流程
- 批次處理和自動化
前置需求
在開始這些指南之前,你應該:
-
具備基本知識:
- JavaScript/TypeScript(用於 JS 指南)
- 命令列工具(用於 CLI 指南)
- Circom 電路(基本理解)
-
安裝所需工具:
# Node.js (18+)
node --version
# Circom
circom --version
# zkenc-cli(用於跨工具指南)
zkenc --help -
準備好電路:
.circom原始碼檔案- 或預先編譯的
.r1cs和.wasm檔案
指南結構
每個指南遵循以下結構:
- 設定 - 專案初始化和相依性
- 電路準備 - 編譯和載入你的電路
- 實作 - 逐步程式碼範例
- 測試 - 驗證一切正常運作
- 優化 - 效能改進
- 部署 - 生產環境考量
範例電路
指南使用這些範例電路:
簡單範例電路
用於學習的基本電路:
pragma circom 2.0.0;
template Example() {
signal input publicValue;
signal input privateValue;
signal output result;
result <== publicValue + privateValue;
}
component main = Example();
數獨電路
實驗場中使用的實用範例:
pragma circom 2.0.0;
template Sudoku() {
signal input puzzle[81]; // 公開:謎題
signal input solution[81]; // 私密:解答
// 驗證解答有效
// ... 約束 ...
}
component main = Sudoku();
常見模式
加密模式
// 1. 載入電路檔案
const circuitFiles = {
r1csBuffer: await loadFile('circuit.r1cs'),
wasmBuffer: await loadFile('circuit.wasm'),
};
// 2. 準備公開輸入
const publicInputs = { puzzle: [...] };
// 3. 加密
const { ciphertext } = await zkenc.encrypt(
circuitFiles,
publicInputs,
message
);
解密模式
// 1. 載入密文
const ciphertext = await loadFile('encrypted.bin');
// 2. 準備完整輸入(公開 + 私密)
const fullInputs = {
puzzle: [...],
solution: [...],
};
// 3. 解密
const decrypted = await zkenc.decrypt(
circuitFiles,
ciphertext,
fullInputs
);
取得協助
如果遇到困難:
-
查看 API 參考:
-
試用實驗場:
-
檢閱範例程式碼:
- 每個指南都包含完整、可執行的範例
-
開啟 Issue:
選擇你的指南
給 Node.js 開發者
適合用於建立:
- CLI 工具
- 後端服務
- 檔案加密工具
- 批次處理器
給 React 開發者
適合用於建立:
- Web 應用程式
- 互動式 UI
- 基於瀏覽器的工具
- Progressive Web Apps
給自動化需求
適合用於:
- 使用多種工具
- 批次處理檔案
- 建立流程
- 跨平台工作流程
下一步
準備好開始了嗎?選擇上方的指南,或者:
- 剛接觸 zkenc? 從 zkenc-js 快速開始 開始
- 想要實驗? 試試 實驗場
- 需要 API 詳情? 查看 API 參考
祝你編碼愉快!🚀