Este proyecto demuestra cómo implementar un esquema de autenticación utilizando zk-SNARKs, Node.js, Noir/Nargo y Passport.js para autenticación privada.
- Node.js
- Noir/Nargo
- npm (Node Package Manager)
- Passport.js
-
Clona el repositorio:
git clone https://github.com/sebaszeledon/zk-auth cd zk-auth
-
Instala las dependencias:
npm install npm install express express-session passport passport-local bcrypt dotenv
-
Crea un archivo vacío llamado data.json en la carpeta zkServer para almacenar los usuarios:
[]
Compila los circuitos zk-SNARKs:
Asegúrate de tener Nargo instalado. Si no lo tienes, puedes instalarlo globalmente:
curl -L https://raw.githubusercontent.com/noir-lang/noirup/main/install | bash
Después cierre la terminal, abra una nueva y ejecute el siguiente comando:
noirup
Compila el circuito dentro de la carpeta zkAuth:
nargo compile
Inicia el servidor dentro de la carpeta zkServer:
node server.js
Abre tu navegador y navega a http://localhost:3000/register para registrar un usuario.
Navega a http://localhost:3000/login para iniciar sesión con el usuario creado.