
Legion é uma estrutura de autenticação de conhecimento zero construída para privacidade
Autenticação Verdadeira de Conhecimento Zero com Assinaturas de Anel de Dispositivo Vinculadas a Hardware
O Legion é um sistema de autenticação de conhecimento zero sem senha que prova que você está autorizado sem revelar quem você é.
Autentique-se usando apenas sua impressão digital + frase de recuperação de 24 palavras (como o MetaMask). Sem nomes de usuário, sem senhas, sem segredos no servidor.
| Property | Guarantee |
|---|---|
| Autenticação | Sem senha (BIP-39 + Impressão digital) |
| Anonimato do Usuário | 1 de 2^20 (1,048,576) |
| Anonimato do Dispositivo | 1 de 2^10 (1,024) por usuário |
| Erro de Solidez | 2^-128 |
| Sistema de Prova | Halo2 PLONK (configuração transparente) |
| Derivação de Credencial | Blake3 (semente BIP-39) |
| Vinculação de Hardware | WebAuthn Nível 2 (TPM/Secure Enclave) |
| Múltiplos Dispositivos | Máx. 2 dispositivos por conta |
| Limitação de Taxa | 5 tentativas/hora |
| Revogação de Dispositivo | 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
**É isso!** Abra http://localhost no seu navegador.
### O que é instalado
- ✅ Redis (armazenamento de sessão)
- ✅ Servidor Legion (verificador de prova ZK)
- ✅ Frontend (cliente WASM)
- ✅ Nginx (proxy reverso)
**Desempenho**: Registro ~5s, Autenticação ~2min (geração de prova k=14)
---
### Configuração Manual (Sem Docker)
<details>
<summary>Clique para expandir a instalação 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 implantação em produção, consulte DEPLOYMENT.md
| Nível de Segurança | k | Tempo de Prova | Tamanho da Prova | Caso de Uso |
|---|---|---|---|---|
| Desenvolvimento | 12 | ~30s | 3.2 KB | Teste |
| Produção | 14 | ~2min | 3.4 KB | Recomendado |
Hardware de Teste: Lenovo IdeaPad 3 - Intel Core i3 11th Gen
Nota: O desempenho pode variar com base nas especificações do hardware.
| Métrica | Valor | Notas |
|---|---|---|
| Tamanho da Prova | 3.264 bytes | 3.19 KB comprimido |
| Entradas Públicas | 10 | raiz da árvore do usuário, raiz da árvore do dispositivo, anulador, etc. |
| Geração de Parâmetros | 7.03s | Configuração única por valor de k |
| Criação de Circuito | 2.3µs | Sobrecarga insignificante |
| Geração de Chave de Verificação | 1.29s | Geração de chave única |
| Verificação de Prova | 107.7ms | Verificação real da prova ZK |
| Verificação Total | 8.43s | Fim a fim (sem cache) |
Detalhamento:
| Métrica | Valor | Notas |
|---|---|---|
| Tamanho da Prova | 3.392 bytes | 3.31 KB comprimido |
| Entradas Públicas | 10 | raiz da árvore do usuário, raiz da árvore do dispositivo, anulador, etc. |
| Geração de Parâmetros | 100.78s | Configuração única por valor de k |
| Criação de Circuito | 5µs | Sobrecarga insignificante |
| Geração de Chave de Verificação | 12.89s | Geração de chave única |
| Verificação de Prova | 967.2ms | Verificação real da prova ZK |
| Verificação Total | 114.65s | Fim a fim (sem cache) |
Detalhamento:
Importante: A geração de parâmetros e a geração de chave são custos únicos que podem ser armazenados em cache. Uma vez em cache, a verificação leva apenas ~108-967ms dependendo do valor de k. A implementação atual ainda não armazena parâmetros em cache.
Por que mais lento que os benchmarks antigos? O circuito sem senha agora verifica DUAS árvores Merkle (usuário + dispositivo) em vez de uma, fornecendo anonimato real no nível do dispositivo (1 de 1024 dispositivos por usuário).
📖 Para obter um fluxo de autenticação detalhado passo a passo com detalhes criptográficos, consulte ARCHITECTURE_FLOW.md