Repolode
iden3

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. 1

    Установите Node.js (актуальную LTS-версию, v18 или новее)

  2. 2

    Установите snarkjs глобально с помощью npm

    npm install -g snarkjs@latest
  3. 3

    Установите circom, следуя официальному руководству по установке

  4. 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 обновляется ежедневно.

Похожие проекты

Приложение для анонимного голосования в Cardano: участники подтверждают членство с помощью доказательств с нулевым разглашением, а голоса остаются конфиденциальными.

54TypeScriptApache-2.0Активно поддерживаетсяОбновлён позавчера

Децентрализованная операционная система и ПО узлов, обеспечивающие работу сети Aleo для приложений с доказательствами с нулевым разглашением.

4,5 тыс.+2 за неделю2,7 тыс.RustApache-2.0Активно поддерживаетсяОбновлён 10 часов назад

Виртуальная машина с нулевым разглашением, которая генерирует доказательства корректного выполнения программ на Rust и других языках, компилируемых через LLVM.

1,8 тыс.+6 за неделю722RustApache-2.0Активно поддерживаетсяОбновлён вчера

Портируемая и простая в использовании криптографическая библиотека на C для шифрования, расшифрования, цифровых подписей и безопасного хеширования паролей, форк NaCl.

Безопасность#cryptography#encryption#digital-signatures
14 тыс.+14 за неделю1,9 тыс.COtherАктивно поддерживаетсяОбновлён 6 дней назад