
Legionは、プライバシーを重視して構築されたゼロ知識認証ファブリックです。
ハードウェアにバインドされたデバイスリング署名による真のゼロ知識認証
Legionは、自分が誰であるかを明かすことなく、承認されていることを証明するパスワードレスなゼロ知識認証システムです。
指紋 + 24語のリカバリフレーズ(MetaMaskのような)だけで認証できます。ユーザー名もパスワードもサーバー側の秘密も不要です。
| プロパティ | 保証 |
|---|---|
| 認証 | パスワードレス (BIP-39 + 指紋) |
| ユーザーの匿名性 | 2^20分の1 (1,048,576) |
| デバイスの匿名性 | ユーザーごとに 2^10分の1 (1,024) |
| 健全性エラー | 2^-128 |
| 証明システム | Halo2 PLONK (透過的セットアップ) |
| 認証情報の導出 | Blake3 (BIP-39 シード) |
| ハードウェア結合 | WebAuthn Level 2 (TPM/Secure Enclave) |
| マルチデバイス | アカウントごとに最大2台 |
| レート制限 | 1時間あたり5回の試行 |
| デバイス失効 | 即時ブラックリスト |
git clone https://github.com/deadends/legion.git cd legion
chmod +x scripts/install.sh && ./scripts/install.sh
scripts\install.bat
**これで完了です!** ブラウザで http://localhost を開いてください。
### インストールされるもの
- ✅ Redis(セッションストレージ)
- ✅ Legion Server(ZKプルーフ検証器)
- ✅ Frontend(WASMクライアント)
- ✅ Nginx(リバースプロキシ)
**パフォーマンス**:登録 約5秒、認証 約2分(k=14 プルーフ生成)
---
### 手動セットアップ(Docker不使用)
<details>
<summary>クリックして手動インストールを展開</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
本番環境へのデプロイについては、DEPLOYMENT.md を参照してください
| セキュリティレベル | k | 証明時間 | 証明サイズ | 用途 |
|---|---|---|---|---|
| 開発 | 12 | ~30s | 3.2 KB | テスト |
| 本番 | 14 | ~2min | 3.4 KB | 推奨 |
テストハードウェア: Lenovo IdeaPad 3 - Intel Core i3 11th Gen
注記: パフォーマンスはハードウェアの仕様によって異なる場合があります。
| メトリクス | 値 | 備考 |
|---|---|---|
| 証明サイズ | 3,264バイト | 圧縮後 3.19 KB |
| 公開入力 | 10 | ユーザーツリールート、デバイスツリールート、nullifier など |
| パラメータ生成 | 7.03s | k 値ごとの一回限りのセットアップ |
| 回路作成 | 2.3µs | 無視できるオーバーヘッド |
| 検証鍵生成 | 1.29s | 一回限りの鍵生成 |
| 証明検証 | 107.7ms | 実際のZK証明チェック |
| 合計検証 | 8.43s | エンドツーエンド(キャッシュなし) |
内訳:
| メトリクス | 値 | 備考 |
|---|---|---|
| 証明サイズ | 3,392バイト | 圧縮後 3.31 KB |
| 公開入力 | 10 | ユーザーツリールート、デバイスツリールート、nullifier など |
| パラメータ生成 | 100.78s | k 値ごとの一回限りのセットアップ |
| 回路作成 | 5µs | 無視できるオーバーヘッド |
| 検証鍵生成 | 12.89s | 一回限りの鍵生成 |
| 証明検証 | 967.2ms | 実際のZK証明チェック |
| 合計検証 | 114.65s | エンドツーエンド(キャッシュなし) |
内訳:
重要: パラメータ生成と鍵生成は一回限りのコストであり、キャッシュ可能です。キャッシュされると、検証は k 値に応じて約108〜967msしかかかりません。現在の実装ではパラメータはまだキャッシュされていません。
以前のベンチマークより遅いのはなぜか? パスワードレス回路は、1つの代わりに2つのMerkleツリー(ユーザー+デバイス)を検証するようになり、真のデバイスレベルの匿名性(ユーザーごとに1024台中1台のデバイス)を提供します。
📖 暗号技術の詳細を含むステップバイステップの認証フローについては、ARCHITECTURE_FLOW.md を参照してください