Skip to content

lorcann-rauzduel/zk-snark-age-verification

Repository files navigation

ZK-SNARK Age Verification

Description

Implémentation d'un simple mécanisme de vérification d'âge utilisant des preuves à divulgation nulle de connaissance (ZK-SNARK) pour la validation d'identité.

Installation

Prérequis

  1. Rust (pour compiler Circom)
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
  1. Node.js (v16+ recommandée)

Installation

  1. Cloner et compiler Circom :
git clone https://github.com/iden3/circom.git
cd circom
cargo build --release
cargo install --path circom
  1. Vérifier l'installation :
circom --version

Installation de snarkjs

npm install -g snarkjs

Installation du projet

  1. Cloner le repository
git clone https://github.com/lorcann-rauzduel/zk-snark-age-verification.git
  1. Installer les dépendances :
pnpm install
  1. Compiler le circuit :
# Compilation du circuit
pnpm compile

# Génération de la trusted setup
pnpm trusted-setup

# Contribution à la trusted setup
pnpm contribute
  1. Lancer les tests
npx hardhat test

Utilisation

Génération de preuve

const { proof, publicSignals } = await generateProof({
  age: 22, // Âge à prouver
});

Vérification sur la blockchain

await ageGateway.verify(
  [proof.pi_a[0], proof.pi_a[1]],
  [
    [proof.pi_b[0][1], proof.pi_b[0][0]],
    [proof.pi_b[1][1], proof.pi_b[1][0]],
  ],
  [proof.pi_c[0], proof.pi_c[1]],
  publicSignals
);

Ressources utiles

About

Un système de vérification d'âge basé sur ZK-SNARK.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published