<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc [
  <!ENTITY nbsp "&#160;">
  <!ENTITY zwsp "&#8203;">
  <!ENTITY nbhy "&#8209;">
  <!ENTITY wj "&#8288;">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     category="info"
     docName="draft-vandemeent-tibet-causal-time-00"
     ipr="trust200902"
     submissionType="IETF"
     consensus="true"
     version="3">

  <front>
    <title abbrev="TIBET Causal Time">TIBET Causal Time Substrate</title>

    <seriesInfo name="Internet-Draft"
                value="draft-vandemeent-tibet-causal-time-00"/>

    <author fullname="Jasper van de Meent" initials="J."
            surname="van de Meent">
      <organization>Humotica</organization>
      <address>
        <postal>
          <country>Netherlands</country>
        </postal>
        <email>info@humotica.com</email>
        <uri>https://humotica.com/</uri>
      </address>
    </author>

    <date year="2026" month="May" day="9"/>

    <area>Security</area>
    <workgroup>Internet Engineering Task Force</workgroup>

    <keyword>causal time</keyword>
    <keyword>Lamport</keyword>
    <keyword>TIBET</keyword>
    <keyword>logical clocks</keyword>
    <keyword>forward-only recovery</keyword>

    <abstract>
      <t>This document describes the TIBET Causal Time Substrate, a
      forward-only causal ordering model for identity-bound distributed
      systems.</t>
      <t>TIBET does not treat wall-clock time as the primary ordering
      primitive. Instead, it uses a cryptographically bound logical-time
      structure encoded through append-only linkage, monotonic generation
      counters, and signed causal references. External wall-clock sources,
      including NTP, RFC 3161 timestamping services, Roughtime, GNSS, or
      public ledger timestamps, are treated as auxiliary alignment
      anchors rather than as the constitutive source of event order.</t>
      <t>The core claim is simple: TIBET is a forward-only causal
      substrate that enables recovery and reversibility without rewriting
      history.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="status">
      <name>Status of This Memo</name>
      <t>This memo is an Internet-Draft working document derived from
      operational architecture notes, prototype implementations, and
      forensic delivery work produced in the Humotica / TIBET stack during
      May 2026.</t>
      <t>It is intended to capture and formalize an already deployed
      structural property of TIBET rather than to introduce a greenfield
      timing model.</t>
      <t>This document is an initial public framing and substrate document
      intended to align distributed-systems theory, identity-bound
      execution, off-grid or degraded-network operations, and forward-only
      recovery semantics.</t>
    </section>

    <section anchor="problem">
      <name>Problem Statement</name>
      <t>Many distributed systems continue to over-privilege wall-clock
      time. They assume that safe ordering, freshness, replay defense, and
      reversibility can be grounded primarily in synchronized UTC.</t>
      <t>That assumption is fragile under intermittent connectivity, NTP
      outage or misconfiguration, GNSS disruption, clock drift across edge
      nodes, compromised or ambiguous time authorities, and adversarial
      replay after restore or rollback.</t>
      <t>This document argues that causal order should be primary,
      wall-clock time auxiliary, recovery forward-only, and history
      non-rewritable.</t>
    </section>

    <section anchor="terminology">
      <name>Terminology</name>
      <dl>
        <dt>Causal Time:</dt>
        <dd>The ordering of events by their dependency and sequence
        relationships, rather than by globally synchronized wall-clock
        timestamps.</dd>
        <dt>Forward-Only Causal Substrate:</dt>
        <dd>A substrate in which valid state evolution occurs only by
        appending new causally linked events.</dd>
        <dt>Logical Counter:</dt>
        <dd>A monotonic counter associated with event generation and
        ordering. Within TIBET this corresponds to the generation
        field.</dd>
        <dt>External Time Anchor:</dt>
        <dd>An observation of an external time-bearing source, recorded
        into the causal substrate as a signed event.</dd>
        <dt>Drift Record:</dt>
        <dd>A signed record describing observed offset between local time
        and an external anchor or between two time-bearing
        participants.</dd>
        <dt>Triage Fork:</dt>
        <dd>A forward-causal isolation path created in response to
        anomaly, mismatch, or uncertain continuity.</dd>
      </dl>
    </section>

    <section anchor="design-goals">
      <name>Design Goals</name>
      <t>The TIBET Causal Time Substrate is intended to preserve causal
      ordering without dependence on absolute time, support cryptographic
      identity binding of events, permit recovery and revocation without
      history rewriting, and remain meaningful under offline or
      degraded-network conditions.</t>
      <t>It is also intended to integrate with external time anchors,
      support replay-sensitive freshness checks, and surface time
      uncertainty honestly.</t>
    </section>

    <section anchor="model-overview">
      <name>Model Overview</name>
      <t>TIBET encodes causal order through a set of existing structural
      primitives including append-only linkage, signatures, generation
      counters, and parent references.</t>
      <t>These map naturally onto a Lamport-style logical ordering model:
      happened-before pointers, tamper-evident order proof, authenticated
      event origin, logical counters, causal predecessors, and event-line
      roots.</t>
      <t>The important consequence is that TIBET already behaves as a
      causally ordered logical-time substrate. This document formalizes
      that fact.</t>
    </section>

    <section anchor="related-work">
      <name>Relation to Lamport and Related Work</name>
      <t>This document is directly aligned with Lamport's logical-time
      model and the later vector-clock tradition associated with Fidge and
      Mattern.</t>
      <t>TIBET extends that tradition by binding logical ordering to
      cryptographic identity, append-only lineage, and explicit fork,
      merge, and tombstone semantics.</t>
    </section>

    <section anchor="forward-only">
      <name>Forward-Only Property</name>
      <t>The defining property of TIBET causal time is not merely that
      events are ordered, but that valid evolution occurs only by moving
      forward.</t>
      <t>Restore becomes fork rather than rewind, revocation becomes
      successor event rather than mutation, correction becomes amendment
      rather than overwrite, and cancellation becomes compensating action
      rather than erasure.</t>
    </section>

    <section anchor="event-classes">
      <name>Event Classes</name>
      <ul>
        <li>ordinary application or system action events</li>
        <li>fork or snapshot-reference events</li>
        <li>merge or transfer-pair events</li>
        <li>tombstone events</li>
        <li>triage or quarantine events</li>
        <li>external time-anchor events</li>
        <li>drift-record events</li>
      </ul>
      <t>These classes are not all necessarily already standardized in
      TIBET registries, but they align structurally with the substrate
      described here.</t>
    </section>

    <section anchor="external-anchors">
      <name>External Time Anchors</name>
      <t>External time anchors provide auxiliary alignment between local
      causal order and broader time-bearing reference systems such as NTP,
      timestamping authorities defined by <xref target="RFC3161"/>,
      Roughtime, GNSS, PTP, public ledger timestamps, or observed
      environmental anchors.</t>
      <t>External time anchors may improve alignment. They must not
      redefine already established causal order.</t>
    </section>

    <section anchor="drift-alignment">
      <name>Drift and Alignment</name>
      <t>Clock drift is expected in real systems, especially edge systems
      and off-grid nodes. TIBET treats drift as a recordable condition,
      not as a collapse of ordering truth.</t>
      <t>Implementations should be able to represent locally observed
      time, externally anchored time, offset between them, uncertainty
      window, and validity scope of the observation.</t>
    </section>

    <section anchor="processing-model">
      <name>Processing Model</name>
      <section anchor="local-event">
        <name>Local Event</name>
        <t>When a local event is committed, the implementation increments
        or derives a monotonic generation value, binds the event to prior
        causal state, signs the event, and appends it.</t>
      </section>
      <section anchor="incoming-reference">
        <name>Incoming Causal Reference</name>
        <t>When a remote or transferred event enters local reasoning, the
        implementation evaluates causal relation and derives successor
        progression in Lamport style as max(local generation, remote
        generation) plus one for any new local successor event that
        depends on both.</t>
      </section>
      <section anchor="recovery">
        <name>Recovery</name>
        <t>Recovery produces successor state by fork, compensation,
        revocation, or new forward-causal action. It must not pretend to
        restore the system to an earlier pre-committed causal state.</t>
      </section>
      <section anchor="time-anchoring">
        <name>Time Anchoring</name>
        <t>When external time is sampled, the implementation may write an
        external-anchor event and may write drift information, but must
        not use the anchor to invalidate already committed causal
        order.</t>
      </section>
    </section>

    <section anchor="example-flows">
      <name>Example Flows</name>
      <section anchor="snapshot-resume">
        <name>Snapshot and Resume</name>
        <t>In the TIBET model, a snapshot references a chain position and
        resume becomes a fork from that position. The new line advances
        with its own forward-only history.</t>
      </section>
      <section anchor="transfer-pair">
        <name>Transfer Pair</name>
        <t>In TAT or TIBET Drop, transfer_out records sender-side causal
        commitment, transfer_in records receiver-side causal
        acknowledgement, and successor generation derives from the maximum
        of local and sender generation plus one.</t>
      </section>
      <section anchor="surface-mismatch">
        <name>Semantic Surface Mismatch</name>
        <t>If routing surface and sealed manifest differ, content may
        still be valid, but the causal substrate should treat the
        situation as anomaly and create a triage fork or isolation
        path.</t>
      </section>
    </section>

    <section anchor="security">
      <name>Security Considerations</name>
      <t>This document assumes an attacker may replay previously valid
      artifacts, re-inject old state through backup or restore channels,
      manipulate wall-clock sources or exploit clock drift, rename or
      relabel artifacts outside sealed causal truth, or attempt
      destructive rollback semantics through operational tooling.</t>
      <t>The forward-only causal model is specifically designed to reduce
      replay-after-restore, replay-after-revoke, backup injection,
      clock-spoofing ambiguity, drift concealment, and destructive
      rollback.</t>
      <t>The key invariant is that security-sensitive reversibility must
      be implemented as forward causal compensation, not as history
      rewrite.</t>
    </section>

    <section anchor="interop">
      <name>Interoperability Considerations</name>
      <t>This substrate is designed to compose with JIS identity, UPIP
      continuity, TAT transfer flow, TBZ or ICC container semantics, and
      semantic routing surfaces.</t>
      <t>Interoperability therefore depends less on UTC agreement and more
      on shared causal encoding, verifiable linkage, explicit anchor
      semantics, and clear distinction between order and alignment.</t>
    </section>

    <section anchor="broader-stack">
      <name>Relationship to the Broader Humotica Stack</name>
      <t>Within the broader architecture, Turing answers what computes,
      Lamport-style causal time answers when in event order, JIS answers
      who is permitted, and semantic framing layers answer within what
      semantic frame a process is interpreted.</t>
      <t>TIBET occupies the causal-time substrate role while composing
      with the other axes.</t>
    </section>

    <section anchor="future-work">
      <name>Future Work</name>
      <ul>
        <li>standardized external time-anchor token shape</li>
        <li>standardized drift-record token shape</li>
        <li>explicit uncertainty handling</li>
        <li>causal freshness proofs for intermittently connected
        devices</li>
        <li>zero-disclosure continuity proofs over long time horizons</li>
        <li>alignment with RFC 3161, Roughtime, and public-ledger
        anchoring profiles</li>
      </ul>
    </section>

    <section anchor="future-questions">
      <name>Questions for Future Revisions</name>
      <t>The following topics are non-blocking for the present -00
      version and are recorded here to guide later discussion and
      interoperability work.</t>
      <ul>
        <li>whether drift should be standardized as its own token type or
        as a subclass of time-anchor event</li>
        <li>whether external anchor trust levels should be formally
        graded</li>
        <li>whether causal freshness should be defined as a reusable
        verification primitive</li>
        <li>how uncertainty and stale-anchor conditions should be surfaced
        in operator tooling</li>
        <li>whether some domains should require time-anchor presence while
        others permit purely local causal mode</li>
      </ul>
    </section>

    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions in the present version.</t>
      <t>Future revisions may define registries for external time-anchor
      token shapes, drift-record token shapes, or causal freshness proof
      types, likely under Expert Review policy as described in
      <xref target="RFC8126"/>.</t>
    </section>
  </middle>

  <back>
    <references>
      <name>References</name>
      <reference anchor="LAMPORT1978">
        <front>
          <title>Time, Clocks, and the Ordering of Events in a Distributed System</title>
          <author fullname="Leslie Lamport" surname="Lamport" initials="L."/>
          <date year="1978"/>
        </front>
        <seriesInfo name="Communications of the ACM" value="21(7)"/>
      </reference>
      <reference anchor="RFC3161" target="https://www.rfc-editor.org/info/rfc3161">
        <front>
          <title>Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)</title>
          <author fullname="C. Adams" surname="Adams" initials="C."/>
          <date month="August" year="2001"/>
        </front>
        <seriesInfo name="RFC" value="3161"/>
      </reference>
      <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126">
        <front>
          <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
          <author fullname="M. Cotton" surname="Cotton" initials="M."/>
          <author fullname="B. Leiba" surname="Leiba" initials="B."/>
          <author fullname="T. Narten" surname="Narten" initials="T."/>
          <date month="June" year="2017"/>
        </front>
        <seriesInfo name="BCP" value="26"/>
        <seriesInfo name="RFC" value="8126"/>
      </reference>
    </references>

    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The author thanks the Humotica team for editorial assistance,
      internal peer review, and operational tooling that made this
      substrate framing concrete rather than theoretical.</t>
      <t>The substrate framing also builds on the logical-time tradition
      established by <xref target="LAMPORT1978"/>.</t>
      <t>The author also thanks Richard Barron of Red Specter Security
      Research for adversarial validation that helped sharpen the
      forward-only recovery property under realistic attack
      conditions.</t>
    </section>
  </back>
</rfc>
