zkp-logos-compiler
v1.0.0
Published
A dynamic ZKP rule compiler and proover CLI for Circom and snarkjs
Downloads
28
Maintainers
Readme
Logos: ZKP Compiler for Verifiable Business Rules
Этот проект представляет собой инструментарий для работы с Доказательствами с Нулевым Разглашением (ZKP). Он позволяет динамически создавать, компилировать и верифицировать бизнес-правила на основе криптографии.
Проект состоит из двух основных компонентов:
- Веб-приложение: Интерактивный интерфейс для демонстрации и тестирования правил через браузер.
- CLI (Интерфейс Командной Строки): Инструмент для разработчиков для локальной работы и интеграции в автоматизированные процессы.
Технологический Стек
- Криптография: zk-SNARKs (Groth16)
- Язык схем: Circom
- Библиотека для ZKP: snarkjs
- Бэкенд: Node.js + Express.js
- CLI: Commander.js
- Менеджер процессов (для веб-сервера): PM2
- Фронтенд: Ванильный HTML / CSS / JavaScript
Веб-приложение (Web Application)
Этот компонент предоставляет веб-интерфейс для интерактивной работы с компилятором правил.
Инструкция по Запуску Веб-сервера
Клонировать репозиторий и установить зависимости:
git clone https://github.com/apollokz/zkp.git cd zkp npm installСкомпилировать базовые схемы (если необходимо):
circom circuits/CheckAmount.circom --r1cs --wasm --sym -o circuitsПровести "Trusted Setup" (генерацию ключей): Этот процесс необходимо выполнить только один раз.
# Фаза 1: Powers of Tau snarkjs powersoftau new bn128 14 keys/pot14_0000.ptau -v snarkjs powersoftau contribute keys/pot14_0000.ptau keys/pot14_0001.ptau --name="First contribution" -v snarkjs powersoftau prepare phase2 keys/pot14_0001.ptau keys/pot14_final.ptau -v # Фаза 2: Специфичная для схемы snarkjs groth16 setup circuits/CheckAmount.r1cs keys/pot14_final.ptau keys/checkamount_0000.zkey snarkjs zkey export verificationkey keys/checkamount_0000.zkey keys/verification_key_checkamount.jsonЗапустить сервер с помощью PM2:
- Установите PM2 глобально:
npm install pm2 -g - Запустите сервис:
pm2 start server.js --name zkp-service
- Установите PM2 глобально:
Открыть демо в браузере: Перейдите по адресу
http://<ваш_ip_адрес>:3000.
Управление Сервисом (PM2)
- Показать список сервисов:
pm2 list - Посмотреть логи:
pm2 logs zkp-service - Перезапустить сервис:
pm2 restart zkp-service - Остановить сервис:
pm2 stop zkp-service
Интерфейс Командной Строки (CLI)
Этот компонент предоставляет набор утилит для локальной компиляции, генерации доказательств и верификации.
Активация CLI
После выполнения шага 1 из инструкции выше (установки зависимостей), выполните:
npm linkЭта команда делает команду zkp-compiler доступной из любой директории в вашей системе.
Быстрый старт с CLI
Создайте файл с определением правила, например,
myRule.json:{ "ruleId": "isAdult", "type": "greaterThan", "privateInputs": ["age"], "publicInputs": ["minimumAge"] }Скомпилируйте правило:
zkp-compiler compile myRule.jsonСоздайте файл с входными данными, например,
myInputs.json:{ "age": 25, "minimumAge": 18 }Сгенерируйте доказательство:
zkp-compiler prove isAdult -i myInputs.jsonВерифицируйте доказательство:
zkp-compiler verify isAdult -p zkp_output/isAdult_proof.json -s zkp_output/isAdult_public.json
Справка по Командам CLI
compile
Компилирует новую ZKP-схему из JSON-файла.
zkp-compiler compile <ruleFile>
prove
Генерирует доказательство для ранее скомпилированного правила.
zkp-compiler prove <ruleId> -i, --inputs <file>
verify
Верифицирует сгенерированное доказательство.
zkp-compiler verify <ruleId> -p, --proof <file> -s, --signals <file>
