新しいモジュラーzkツールキット!⚡ これを使用して、オフチェーン構成証明からzkpsを生成します。 フロー: - オフチェーン認証の署名/使用 - SP1 で証明を生成する - WASM による検証 - オンチェーンでの検証結果を証明(オプション) これに貢献してくれた@shivansheth & @whoisgautxm (zkAttestify) とサポートしてくれた @SuccinctLabs に感謝します!
フローは次のとおりです。 1) 有効なオフチェーン認証に署名/提供 - 構造化された構成証明はEASを使用して作成されます - EIP712と署名済み - データはオフチェーンでプライベートなままです。 - 署名は検証可能です。 2) ZKプルーフの生成(SP1) - SP1 zkvm を使用して EAS 構造体を解析します。 - 署名の正確性とロジックを検証(デモ用にハードコード) - SP1 プログラムは Groth16 または Plonk プルーフを生成します - 出力にはプルーフファイル + パブリックインプットが含まれます リポジトリの dob-program と dob-scripts がロジックを処理します。 3) WASM(ブラウザまたはノード)で確認する - コンパイルされた検証ツールを読み込みます - 証明+公開インプットを提供する - JSスクリプトは証明検証を実行し、ロジックをチェックします 4) オプション: オンチェーンでの検証結果を証明 - zk 証明を solidity verifier コントラクト (groth16 verifier) に提出します。 - 成功したら、EASを呼び出して新しいオンチェーン構成証明を発行します。 - スキーマとデータはカスタマイズ可能です (isOver18 = true) - 有効期限/失効/コンポーザビリティを制御可能 - 元のオフチェーン認証へのリンクはありません 筆記 - このフローは、オフチェーン構成証明のアテスターを信頼することを前提としています。 - Groth16/plonk プルーフの生成が遅い。Succinct Prover Networkを使用して効率を向上させます。
このチュートリアル/デモでは、15分でどのように機能するかを説明します。簡単な年齢証明の例を使用します。ツールキットはモジュール式であるため、少し調整するだけで、後で独自のスキーマ/回路ロジックと交換できます。
Github にアクセス
代わりにZKAttestifyチームのビデオを見たいですか?
フローをカスタマイズしたいですか? ここでは、何を微調整すべきかをご紹介します。 - 'dob-program/src/main.rs' で – ロジックを変更します (例: 'degree == "CS"')。 - 'dob-script/input.json' – 構成証明データとスキーマを変更する - 「WASM_verifier/」で – 同じ構造の証明を確認します
このプロジェクトはリファレンス実装です。モジュール式でオープンソースであり、すぐにフォークできます。より多くのスキーマ、検証者、ユースケースのサポートを拡張するためにご協力ください。 私たちは、このリポジトリを次のレベルに引き上げたいと考えている貢献者とビルダーを積極的に探しています。 手を伸ばしてください!🫡
18.48K