投票者がゼロ知識証明でメンバーシップを証明し、投票内容を匿名に保てる、Cardano上のプライバシー保護型オンチェーン投票アプリです。
iden3/snarkjs
circom回路向けに、Groth16、PLONK、FFLONKのzkSNARK証明を生成・検証するJavaScriptおよびWebAssemblyライブラリ。
- スター
- 2,042
- フォーク
- 489
- 未解決の Issue
- 135
- 最終コミット
- 先月
これは何?
snarkjsは、JavaScriptとWebAssemblyで実装されたゼロ知識証明ツールキットです。Groth16、PLONK、FFLONKの証明システムに対応し、circomコンパイラで生成したコンパイル済み回路を扱えます。
証明の生成と検証に加え、信頼セットアップのマルチパーティセレモニーに必要なツールも備えています。universal powers of tauファイルの作成やコントリビューション、回路固有のphase 2コントリビューションの実行、ランダムビーコンの適用、生成されたトランスクリプトの検証が可能です。Ptau形式は、ほかのセレモニー実装との互換性があるとされています。
Node.jsではCLIとAPIから、ブラウザではバンドル版から利用できます。ES moduleとして配布され、暗号処理のコアはWASMで動作し、並列計算にはworker threadsを使用します。
主な機能
- 01Groth16、PLONK、FFLONKのzkSNARK証明を生成・検証します。
- 02CLIとAPI経由でNode.jsから、またブラウザから利用できます。
- 03powers of tauおよびphase 2の信頼セットアップセレモニー用ツールを提供します。
- 04検証鍵とSolidityの検証コントラクトをエクスポートします。
- 05circomのWASM出力からwitnessを計算し、R1CSファイルと照合します。
ユースケース
- 入力を明かさずに命題を証明する、プライバシー保護アプリケーションの構築。
- circom回路の信頼セットアップセレモニーの実施。
- zk証明の検証器をEthereumスマートコントラクトとして公開。
- クライアント側で検証するためのゼロ知識証明をWebページ上で生成。
クイックスタート
- 1
Node.js(最近のLTS版、v18以降)をインストールします
- 2
npmでsnarkjsをグローバルにインストールします
npm install -g snarkjs@latest - 3
公式のインストールガイドに従ってcircomをインストールします
- 4
snarkjsのコマンド一覧を表示します
snarkjs --help
使う前に知っておきたいこと
- GPL-3.0ライセンス(コピーレフト)で提供されているため、プロプライエタリなコードでの利用が制限される場合があります。
- 別途circomコンパイラでコンパイルされた回路を使用するため、circomもインストールする必要があります。
トピック
よくある質問
- snarkjs とは?
- circom回路向けに、Groth16、PLONK、FFLONKのzkSNARK証明を生成・検証するJavaScriptおよびWebAssemblyライブラリ。 snarkjsは、JavaScriptとWebAssemblyで実装されたゼロ知識証明ツールキットです。Groth16、PLONK、FFLONKの証明システムに対応し、circomコンパイラで生成したコンパイル済み回路を扱えます。
- snarkjs は無料で使えますか?ライセンスは?
- snarkjs は GPL-3.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- snarkjs は今もメンテナンスされていますか?
- 半年以内に更新あり。snarkjs の最終コミットは 2026年10月1日 です。
- snarkjs は何に使えますか?
- 入力を明かさずに命題を証明する、プライバシー保護アプリケーションの構築。 circom回路の信頼セットアップセレモニーの実施。 zk証明の検証器をEthereumスマートコントラクトとして公開。 クライアント側で検証するためのゼロ知識証明をWebページ上で生成。
- snarkjs のインストール方法は?
- Node.js(最近のLTS版、v18以降)をインストールします npmでsnarkjsをグローバルにインストールします: npm install -g snarkjs@latest 公式のインストールガイドに従ってcircomをインストールします snarkjsのコマンド一覧を表示します: snarkjs --help
- snarkjs はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/iden3/snarkjs
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
ゼロ知識アプリケーション向けのAleoネットワークを稼働させる、分散型OSおよびノードソフトウェア。
Rustやその他のLLVMコンパイル対象言語で書かれたプログラムの正しい実行を証明する、ゼロ知識仮想マシンです。
M31体上のCircle STARKの証明・検証を行うRust実装。no_std検証器とSIMD証明バックエンドを備えています。
ブラウザやNode、Mina Protocol向けに、ゼロ知識回路とzkAppsを記述し、証明を生成・検証するためのTypeScriptフレームワーク。
NaClからフォークした、暗号化・復号、デジタル署名、安全なパスワードハッシュに対応する、ポータブルで使いやすいC言語暗号ライブラリ。