Security Fixes:
- CRITICAL: Add zeroize on drop for FinancialProver to prevent memory extraction
- HIGH: Fix WASM type import (ProdVerificationResult -> VerificationResult)
- MEDIUM: Add input validation for zero rent/multiplier/budget values
- Use checked_mul instead of saturating_mul for overflow detection
Performance Optimizations:
- Reduce generator memory from 16 MB to 8 MB (1-party vs 16-party)
- Add zeroize dependency (1.8) for secure memory clearing
Documentation:
- Add comprehensive ZK performance analysis docs
- Add benchmark suite for criterion testing
- Add optimization quick reference and examples
All 7 production ZK tests pass.
Implements a privacy-preserving financial learning system that runs entirely
in the browser using WebAssembly. Key features:
- PlaidLocalLearner: Browser-local ML engine with IndexedDB persistence
- Q-learning for budget optimization and spending recommendations
- HNSW vector index for semantic transaction categorization
- Spiking neural network for temporal pattern recognition
- Anomaly detection for unusual transaction flagging
- Zero data exfiltration - all learning stays client-side
Components:
- examples/edge/src/plaid/mod.rs: Core Rust learning algorithms
- examples/edge/src/plaid/wasm.rs: WASM bindings for browser
- examples/edge/pkg/plaid-local-learner.ts: TypeScript API wrapper
- examples/edge/pkg/plaid-demo.html: Interactive demo page
- examples/edge/docs/plaid-local-learning.md: Comprehensive documentation
Privacy guarantees:
- Financial data never leaves the browser
- Optional AES-256-GCM encryption for IndexedDB storage
- User can delete all data instantly
- No analytics, telemetry, or tracking