
Legion es un tejido de autenticación de conocimiento cero construido para la privacidad.
Autenticación de Conocimiento Cero Real con Firmas de Anillo de Dispositivos Vinculados al Hardware
Legion es un sistema de autenticación de conocimiento cero sin contraseña que demuestra que estás autorizado sin revelar quién eres.
Autentícate usando solo tu huella dactilar + frase de recuperación de 24 palabras (como MetaMask). Sin nombres de usuario, sin contraseñas, sin secretos del lado del servidor.
| Propiedad | Garantía |
|---|---|
| Autenticación | Sin contraseña (BIP-39 + Huella dactilar) |
| Anonimato del usuario | 1 de 2^20 (1,048,576) |
| Anonimato del dispositivo | 1 de 2^10 (1,024) por usuario |
| Error de solidez | 2^-128 |
| Sistema de prueba | Halo2 PLONK (configuración transparente) |
| Derivación de credenciales | Blake3 (semilla BIP-39) |
| Vinculación de hardware | WebAuthn Nivel 2 (TPM/Secure Enclave) |
| Multidispositivo | Máx. 2 dispositivos por cuenta |
| Limitación de velocidad | 5 intentos/hora |
| Revocación de dispositivos | Lista negra instantánea |
git clone https://github.com/deadends/legion.git cd legion
chmod +x scripts/install.sh && ./scripts/install.sh
scripts\install.bat
**¡Eso es todo!** Abre http://localhost en tu navegador.
### Lo que se instala
- ✅ Redis (almacenamiento de sesiones)
- ✅ Legion Server (verificador de pruebas ZK)
- ✅ Frontend (cliente WASM)
- ✅ Nginx (proxy inverso)
**Rendimiento**: Registro ~5s, Autenticación ~2min (generación de pruebas k=14)
---
### Configuración manual (sin Docker)
<details>
<summary>Haz clic para expandir la instalación manual</summary>```bash
# 1. Install Redis
# macOS: brew install redis && redis-server
# Ubuntu: sudo apt install redis && redis-server
# Windows: https://redis.io/docs/install/install-redis/install-redis-on-windows/
# 2. Run server (terminal 1)
cd legion-server
cargo run --release --features redis
# 3. Build frontend (terminal 2)
cd wasm-client
wasm-pack build --target web --release
python3 -m http.server 8000
# 4. Open http://localhost:8000
Para despliegue en producción, consulta DEPLOYMENT.md
| Nivel de Seguridad | k | Tiempo de Prueba | Tamaño de Prueba | Caso de Uso |
|---|---|---|---|---|
| Desarrollo | 12 | ~30s | 3.2 KB | Pruebas |
| Producción | 14 | ~2min | 3.4 KB | Recomendado |
Hardware de Prueba: Lenovo IdeaPad 3 - Intel Core i3 11.ª Generación
Nota: El rendimiento puede variar según las especificaciones del hardware.
| Métrica | Valor | Notas |
|---|---|---|
| Tamaño de Prueba | 3,264 bytes | 3.19 KB comprimido |
| Entradas Públicas | 10 | Raíz del árbol de usuario, raíz del árbol de dispositivo, nullifier, etc. |
| Generación de Parámetros | 7.03s | Configuración única por valor k |
| Creación de Circuito | 2.3µs | Sobrecarga insignificante |
| Generación de Clave Verificadora | 1.29s | Generación de clave única |
| Verificación de Prueba | 107.7ms | Verificación real de ZK proof |
| Verificación Total | 8.43s | Extremo a extremo (sin caché) |
Desglose:
| Métrica | Valor | Notas |
|---|---|---|
| Tamaño de Prueba | 3,392 bytes | 3.31 KB comprimido |
| Entradas Públicas | 10 | Raíz del árbol de usuario, raíz del árbol de dispositivo, nullifier, etc. |
| Generación de Parámetros | 100.78s | Configuración única por valor k |
| Creación de Circuito | 5µs | Sobrecarga insignificante |
| Generación de Clave Verificadora | 12.89s | Generación de clave única |
| Verificación de Prueba | 967.2ms | Verificación real de ZK proof |
| Verificación Total | 114.65s | Extremo a extremo (sin caché) |
Desglose:
Importante: La generación de parámetros y la generación de clave son costos únicos que se pueden almacenar en caché. Una vez en caché, la verificación toma solo entre ~108-967ms según el valor de k. La implementación actual aún no almacena parámetros en caché.
¿Por qué es más lento que los benchmarks anteriores? El circuito sin contraseña ahora verifica DOS árboles Merkle (usuario + dispositivo) en lugar de uno, proporcionando anonimato real a nivel de dispositivo (1 de 1024 dispositivos por usuario).
📖 Para un flujo de autenticación detallado paso a paso con detalles criptográficos, consulta ARCHITECTURE_FLOW.md