Repository navigation
Define TESLA clock uncertainty and suspend/clock-step behaviour #72
Description
Activity
- addedFeatureA specific missing product behavior.A specific missing product behavior.P2Follow-on improvement or optional expansion after core requirements.Follow-on improvement or optional expansion after core requirements.Traffic policy and attributionConsistent traffic policy, aggregate budgets and evidence-backed packet attribution.Consistent traffic policy, aggregate budgets and evidence-backed packet attribution.Validation gapBehavior may exist in part; the required operating evidence or test gate remains absent.Behavior may exist in part; the required operating evidence or test gate remains absent.
on Sep 24, 2026 - added 2 commits that reference this issue
on Oct 5, 2026 PR #376, merged as f345d9f. All 16 required jobs passed on the exact candidate and merged main.
The executor now refuses signing for an unready chain origin or excessive wall/monotonic drift, never restores authority to an earlier signing epoch, and exposes clock unavailability through admission, CLI and health metrics. Controlled-clock regressions cover steps, suspend and recovery.
This remains open for the receiver/capture-time trust and end-to-end uncertainty contract and its delayed-capture validation. The documented local drift threshold is a safety policy, not a measured bound on the receiver's clock.
#409 adds the independently supplied receiver-clock record described in the remaining scope above. SDK/CLI verification binds that record to the exact packet bytes and capture timestamps, executor/chain/origin identities and an observation interval. Its combined error bound must cover receiver and schedule-origin uncertainty, timestamping error and drift. The verifier rounds the bound conservatively, rejects overrides or uncovered captures, and supports later offline checks when the original arrival was covered. Missing records leave
capture_time_trusted=false. Record and operator procedure.Controlled tests cover delayed rechecks, edited timestamps/digests, wrong origins, insufficient bounds and the disclosure boundary. The local step/suspend safety and health behavior from #376 remain in place. These tests do not establish a measured cross-host bound.
This issue remains open for:
- An owned end-to-end capture run with independently referenced receiver-to-schedule clock observations, including uncertainty over the actual capture interval and epoch/disclosure boundaries.
- Acceptance of the supported uncertainty/delay envelope. Tag spec v1 still checks capture epoch
tandt−1; supplying a larger error bound does not widen that window. If the supported envelope needs more candidates, it needs an explicit versioned matching policy, bounded work and revised false-match accounting.
Schedule signatures, synchronization flags and kernel clock estimates alone do not supply that measurement.
All 17 checks passed on the exact candidate and merged main, including the separate guest-source checks.
Problem
Schedules use time.Sub against the construction timestamp while verification derives epochs from capture wall-clock timestamps. These may use different clock behaviour across steps or suspend. Trying adjacent verifier epochs does not establish a bounded timestamp-trust policy.
Proposed change
Define and enforce a monitored mapping between monotonic local durations and verifiable wall time, including explicit attribution availability when clock uncertainty is too large.
Acceptance criteria
Current evidence
unimplemented clock policy / validation gap; source inspection only, no new runtime reproduction. Backlog classification is based on source inspection; this issue does not claim a new runtime reproduction.
Dependencies
Related work
These are integration points, not prerequisites for starting this issue.
Priority context
Required before accepting untrusted users or advertising the corresponding protected capability; not a blocker for the trusted local TEST alpha.
Validation must use owned local fixtures on supported Linux environments. Record the implementing merge request and relevant test results before closing this issue.
Imported from GitLab issue 71. Originally opened 2026-09-10. Historical GitLab links may require access to the original project.