Skip to content

Reject ambiguous witness challenge timestamps - #405

Merged
aruintelligence merged 1 commit into
mainfrom
feat/canonical-challenge-times
Oct 17, 2026
Merged

aruintelligence merged 1 commit into
mainfrom
feat/canonical-challenge-times

Conversation

@aruintelligence

Copy link
Copy Markdown
Owner

Summary

  • Make both reference witness verifiers accept challenge issue and expiry timestamps only in the exact UTC millisecond form emitted by the challenge producer. This rejects JavaScript calendar rollover, submillisecond truncation, offset aliases, and incomplete timestamps before freshness evaluation.
  • Preserve the frozen historical JSON schema byte for byte; document the narrower reference verifier profile and local clock limit.
  • Add direct and fixed signed-vector adversarial cases, plus a signed quorum that remains internally valid and meets its threshold and held policy while witness replay fails.

Local verification

  • 899/899 Node tests passed.
  • Python/JavaScript comparison: 70 signed quorum cases and 35 additional checks passed.
  • Proof, API stability, upgrade contract, installed-package consumer compatibility, CLI contract, package artifact, links, proof surfaces, verifier surfaces, verifier claims, contract snapshot and drift, and git diff --check passed.

Compatibility: externally supplied challenges using other ISO-8601 spellings previously accepted by these reference verifiers will now fail even when they represent the same instant. Use exact UTC milliseconds as generated by createVerificationChallenge. GitHub CI is pending. These are project-controlled checks, not independent certification or a trusted time source. Quorum valid, threshold_met, policy_met, and witness_met remain separate.

@aruintelligence
aruintelligence merged commit ae51aa6 into main Oct 17, 2026
59 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant