Extra labels: security, formal-verification
Tier: L (5-7 days) | Type: security
Context. stealth-registry has correctness-critical invariants (registration → resolution round trip, no double-registration, expiry monotonicity). Property-tests catch bugs by sampling; Kani proves them. Prove the top 3 invariants.
Scope.
- Set up Kani in
stealth-registry/src/proofs/.
- Prove: (a) register-then-resolve returns the exact registered payload, (b) no two active registrations share the same key, (c) expiry strictly monotonic per key.
- Add CI job that runs proofs on push.
- Document the shape of each proof in
stealth-registry/README.md.
Acceptance.
Files. stealth-registry/src/proofs/, .github/workflows/ci.yml, stealth-registry/README.md.
Extra labels:
security,formal-verificationTier: L (5-7 days) | Type: security
Context.
stealth-registryhas correctness-critical invariants (registration → resolution round trip, no double-registration, expiry monotonicity). Property-tests catch bugs by sampling; Kani proves them. Prove the top 3 invariants.Scope.
stealth-registry/src/proofs/.stealth-registry/README.md.Acceptance.
stealth-registry/README.mddocuments each proof's claim and its non-goalFiles.
stealth-registry/src/proofs/,.github/workflows/ci.yml,stealth-registry/README.md.