Prevent stale attestation proofs before registrar submission#3672
Prevent stale attestation proofs before registrar submission#3672leopoldjoy wants to merge 7 commits into
Conversation
Co-authored-by: OpenCode <opencode-noreply@coinbase.com>
🟡 Heimdall Review Status
|
Co-authored-by: OpenCode <opencode-noreply@coinbase.com>
Co-authored-by: OpenCode <opencode-noreply@coinbase.com>
Co-authored-by: OpenCode <opencode-noreply@coinbase.com>
Co-authored-by: OpenCode <opencode-noreply@coinbase.com>
Co-authored-by: OpenCode <opencode-noreply@coinbase.com>
Co-authored-by: OpenCode <opencode-noreply@coinbase.com> # Conflicts: # crates/proof/tee/registrar/src/signer_manager.rs
Review SummaryThe PR adds a registrar-side freshness gate that decodes the proof journal and checks attestation age before submitting Findings1. Missing The PR description states that it "blocks proof recovery for the signer when the final gate rejects stale or undecodable proof output." However, neither error path calls 2. Inconsistent
|
✅ base-std fork tests: all 616 passedbase/base is fully in sync with the base-std spec.
|
Summary
TEEProverRegistry.registerSignercalldata is submitted.Tangible value
This prevents the registrar from knowingly submitting a proof that is already doomed to fail the on-chain
MAX_AGEcheck. It protects against recoveredLockedproofs that age out while fulfillment completes, fresh proofs that become stale during proof/receipt/tx retries, and future proof providers returning old or malformed journals.Tests
RISC0_SKIP_BUILD_KERNELS=1 cargo test -p base-proof-tee-registrarRISC0_SKIP_BUILD_KERNELS=1 BASE_SUCCINCT_ELF_STUB=1 just build::affected-ci "origin/main"RISC0_SKIP_BUILD_KERNELS=1 BASE_SUCCINCT_ELF_STUB=1 just check::clippy-affected-ci "origin/main"RISC0_SKIP_BUILD_KERNELS=1 BASE_SUCCINCT_ELF_STUB=1 just test-affected-ci "origin/main"Note: local macOS runs use
RISC0_SKIP_BUILD_KERNELS=1because this machine lacks thexcrun metaltool required byrisc0-syskernel compilation.