Приложение для анонимного голосования в Cardano: участники подтверждают членство с помощью доказательств с нулевым разглашением, а голоса остаются конфиденциальными.
iden3/snarkjs
Библиотека на JavaScript и WebAssembly для создания и проверки zkSNARK-доказательств с Groth16, PLONK и FFLONK, работающая с циркуитами circom.
- Звёзды
- 2,042
- Форки
- 489
- Открытые issues
- 135
- Последний коммит
- в прошлом месяце
Что это?
snarkjs — набор инструментов для работы с доказательствами с нулевым разглашением, реализованный на JavaScript и WebAssembly. Он поддерживает системы доказательств Groth16, PLONK и FFLONK и работает со скомпилированными циркуитами, созданными компилятором circom.
Помимо создания и проверки доказательств, библиотека включает инструменты для церемоний доверенной настройки с участием нескольких сторон: создания файлов universal powers of tau и внесения в них вкладов, выполнения вкладов фазы 2 для конкретного циркуита, применения случайных маяков и проверки итоговых транскриптов. Форматы Ptau, как заявлено, совместимы с другими реализациями церемоний.
Библиотека работает в Node.js через CLI и API, а в браузере — через сборку с включёнными зависимостями. Она распространяется как ES-модуль, а криптографическое ядро работает в WASM и использует worker threads для параллельных вычислений.
Ключевые возможности
- 01Создаёт и проверяет zkSNARK-доказательства Groth16, PLONK и FFLONK.
- 02Работает в Node.js через CLI и API, а также в браузере.
- 03Предоставляет инструменты для церемоний trusted setup с powers of tau и фазой 2.
- 04Экспортирует ключи проверки и контракты верификаторов Solidity.
- 05Вычисляет witness по выводу circom WASM и проверяет его по файлам R1CS.
Сценарии использования
- Разработка приложений с сохранением конфиденциальности, которые доказывают утверждения, не раскрывая входные данные.
- Проведение церемонии trusted setup для циркуита circom.
- Публикация верификатора zk-доказательств в виде смарт-контракта Ethereum.
- Создание доказательств с нулевым разглашением на веб-странице для проверки на стороне клиента.
Быстрый старт
- 1
Установите Node.js (актуальную LTS-версию, v18 или новее)
- 2
Установите snarkjs глобально с помощью npm
npm install -g snarkjs@latest - 3
Установите circom, следуя официальному руководству по установке
- 4
Покажите список команд snarkjs
snarkjs --help
Что важно знать
- Распространяется по лицензии GPL-3.0 с копилефтом, которая может ограничивать использование в проприетарном коде.
- Работает с цепями, скомпилированными отдельным компилятором circom, поэтому необходимо также установить circom.
Темы
Частые вопросы
- Что такое snarkjs?
- Библиотека на JavaScript и WebAssembly для создания и проверки zkSNARK-доказательств с Groth16, PLONK и FFLONK, работающая с циркуитами circom. snarkjs — набор инструментов для работы с доказательствами с нулевым разглашением, реализованный на JavaScript и WebAssembly. Он поддерживает системы доказательств Groth16, PLONK и FFLONK и работает со скомпилированными циркуитами, созданными компилятором circom.
- snarkjs можно использовать бесплатно? Какая у него лицензия?
- snarkjs распространяется с открытым исходным кодом под лицензией GPL-3.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- snarkjs всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в snarkjs — 1 окт. 2026 г..
- Для чего можно использовать snarkjs?
- Разработка приложений с сохранением конфиденциальности, которые доказывают утверждения, не раскрывая входные данные. Проведение церемонии trusted setup для циркуита circom. Публикация верификатора zk-доказательств в виде смарт-контракта Ethereum. Создание доказательств с нулевым разглашением на веб-странице для проверки на стороне клиента.
- Как установить snarkjs?
- Установите Node.js (актуальную LTS-версию, v18 или новее) Установите snarkjs глобально с помощью npm: npm install -g snarkjs@latest Установите circom, следуя официальному руководству по установке Покажите список команд snarkjs: snarkjs --help
- Где скачать snarkjs?
- Исходный код и инструкции по установке — на GitHub: https://github.com/iden3/snarkjs
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Децентрализованная операционная система и ПО узлов, обеспечивающие работу сети Aleo для приложений с доказательствами с нулевым разглашением.
Виртуальная машина с нулевым разглашением, которая генерирует доказательства корректного выполнения программ на Rust и других языках, компилируемых через LLVM.
Реализация на Rust для создания и проверки Circle STARK на поле M31: верификатор no_std и SIMD-бэкенд для прувера.
Фреймворк на TypeScript для создания zero-knowledge circuits и zkApps с генерацией и проверкой доказательств в браузере, Node.js или Mina Protocol.
Портируемая и простая в использовании криптографическая библиотека на C для шифрования, расшифрования, цифровых подписей и безопасного хеширования паролей, форк NaCl.