Internet-Draft TRIP February 2026
Ayerbe Expires 5 August 2026 [Page]
Workgroup:
Independent Submission
Internet-Draft:
draft-ayerbe-trip-protocol-00
Published:
Intended Status:
Informational
Expires:
Author:
C. Ayerbe
ULISSY s.r.l.

TRIP: Trajectory-based Recognition of Identity Proof

Abstract

This document specifies the Trajectory-based Recognition of Identity Proof (TRIP) protocol, a decentralized mechanism for establishing claims of physical-world presence through cryptographically signed, spatially quantized location attestations called "breadcrumbs." Breadcrumbs are chained into an append-only log, bundled into verifiable epochs, and distilled into a Trajectory Identity Token (TIT) that serves as a persistent pseudonymous identifier. Trust in a TIT accumulates through spatiotemporal diversity of the underlying trajectory rather than through biometric capture or centralized credential issuance. TRIP is designed to be transport-agnostic and operates independently of any particular naming system, blockchain, or application layer.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 5 August 2026.

Table of Contents

1. Introduction

Conventional approaches to proving that an online actor corresponds to a physical human being rely on biometric capture, government-issued documents, or knowledge-based challenges. Each technique introduces a centralized trust anchor, creates honeypots of personally identifiable information (PII), and is susceptible to replay or deepfake attacks.

TRIP takes a fundamentally different approach: it treats sustained physical movement through the real world as evidence of embodied existence. A TRIP-enabled device periodically records its position as a "breadcrumb"--a compact, privacy- preserving, cryptographically signed attestation that the holder of a specific Ed25519 key pair was present in a particular spatial cell at a particular time. An adversary who controls only digital infrastructure cannot fabricate a plausible trajectory because doing so requires controlling radio-frequency environments (GPS, Wi-Fi, cellular, IMU) at many geographic locations over extended periods.

This document specifies the data structures, algorithms, and verification procedures that constitute the TRIP protocol. It intentionally omits transport bindings, naming-system integration, and blockchain anchoring, all of which are expected to be addressed in companion specifications.

1.1. Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

1.2. Terminology

Breadcrumb
A single, signed attestation of spatiotemporal presence. The atomic unit of the TRIP protocol.
Trajectory
An ordered, append-only chain of breadcrumbs produced by a single identity key pair.
Epoch
A batch of consecutive breadcrumbs whose aggregate integrity is attested by a Merkle root and a signature.
Trajectory Identity Token (TIT)
A 16-byte identifier derived from the public key and genesis breadcrumb, used as a persistent pseudonym.
H3 Cell
A hexagonal cell identifier from the H3 geospatial indexing system, used as the privacy-preserving spatial coordinate in breadcrumbs.
Context Digest
A SHA-256 hash of ambient environmental signals (Wi-Fi BSSIDs, cell tower IDs, IMU readings) that provides corroborating evidence for a breadcrumb's claimed location without revealing the raw signals.
Trust Score
A numerical value reflecting the spatiotemporal diversity and longevity of a trajectory, computed according to a defined trust function.

2. Protocol Architecture

TRIP defines three layers of abstraction:

  1. Breadcrumb Layer -- Production and validation of individual signed attestations.
  2. Epoch Layer -- Aggregation of breadcrumbs into verifiable batches with Merkle integrity.
  3. Trust Layer -- Computation of a reputation score from the spatiotemporal properties of a trajectory.

All cryptographic operations use Ed25519 [RFC8032] for signing and SHA-256 [RFC6234] for hashing. Spatial coordinates are quantized to the H3 hexagonal grid system before any storage or transmission.

2.1. Identity Model

A TRIP identity is an Ed25519 key pair. The 32-byte public key is the identity. There is no registration authority; any entity capable of generating a valid Ed25519 key pair MAY participate in the protocol. The private key MUST be stored in a secure enclave or hardware-backed keystore and MUST NOT leave the originating device.

A single physical entity MAY maintain multiple TRIP identities. The protocol makes no attempt to link multiple identities to a single entity; such linkage is explicitly a non-goal.

4. Trajectory Identity Token (TIT)

The Trajectory Identity Token is a compact, deterministic identifier derived from the identity key and the genesis breadcrumb. It serves as a persistent pseudonym that is shorter than a full public key yet remains cryptographically bound to both the key and its origin point.

   tit_input  = identity_public_key || BreadcrumbHash(genesis)
   tit_full   = SHA-256(tit_input)
   TIT        = tit_full[0..15]     // first 16 bytes (128 bits)
Figure 3: TIT Derivation

The TIT is 16 bytes (128 bits). Implementations SHOULD represent TITs as 32-character lowercase hexadecimal strings for display and interchange.

A TIT is immutable once computed. If an entity wishes to start a new trajectory (e.g., after key compromise), it MUST generate a new key pair, which will produce a new TIT. No mechanism exists within TRIP to link old and new TITs; such linkage is a higher-layer concern.

5. Epoch Specification

5.1. Data Structure

An epoch aggregates a contiguous range of breadcrumbs into a single verifiable unit. Epochs enable efficient verification: a verifier can check the epoch Merkle root and signature without examining every individual breadcrumb.

Table 4: Epoch Fields
Key CBOR Label Type Description
epoch_index 1 uint Zero-based epoch sequence number
identity 2 bstr Ed25519 public key (32 bytes)
start_time 3 tag(1) Timestamp of first breadcrumb in epoch
end_time 4 tag(1) Timestamp of last breadcrumb in epoch
start_index 5 uint Breadcrumb index of first entry
end_index 6 uint Breadcrumb index of last entry
merkle_root 7 bstr SHA-256 Merkle root of breadcrumb hashes (32 bytes)
count 8 uint Number of breadcrumbs in epoch
previous_epoch 9 bstr / null Hash of preceding epoch, or null for first epoch
signature 10 bstr Ed25519 signature over fields 1-9 (64 bytes)

5.2. Merkle Tree Construction

The Merkle tree is a binary tree constructed from the breadcrumb hashes within the epoch. Leaves are the SHA-256 hashes of individual breadcrumbs. Internal nodes are computed as SHA-256(left_child || right_child). If the number of leaves is odd, the last leaf is duplicated.

                     MerkleRoot
                    /          \
               H(AB)            H(CD)
              /     \          /     \
          H(B0)   H(B1)   H(B2)   H(B3)
Figure 4: Merkle Tree for an Epoch of 4 Breadcrumbs

where H(Bn) = BreadcrumbHash(breadcrumb_n) and H(AB) = SHA-256(H(B0) || H(B1)).

5.3. Bundling Rules

A producer SHOULD bundle an epoch when the number of unbundled breadcrumbs reaches or exceeds 100. Implementations MAY use a different threshold but MUST NOT create epochs with fewer than 10 breadcrumbs (except for the final epoch if the trajectory is being closed).

Epochs MUST be sequential and contiguous: epoch N+1 MUST begin at the breadcrumb immediately following the last breadcrumb of epoch N. No breadcrumb may belong to more than one epoch, and no breadcrumb may be omitted from an epoch.

6. Trust Computation

6.1. Trust Model Overview

TRIP trust reflects the difficulty of fabricating a trajectory. A trajectory that visits many distinct spatial cells over a long duration is harder to fake than one confined to a small area or short time span. The trust model quantifies this intuition through three components: trajectory density, spatial diversity, and temporal decay.

6.2. Trust Score Function

The trust score T for a trajectory is computed using a Parisi percolation model [PARISI]:

   T = D(t) * S * k_percolation

   where:

   D(t) = exp(-(t - t_last)^2 / (2 * tau^2))
          Gaussian temporal decay function
          t       = current time
          t_last  = timestamp of most recent breadcrumb
          tau     = decay half-life (RECOMMENDED: 30 days)

   S     = unique_cells / total_breadcrumbs
           Spatial diversity ratio (0.0 to 1.0)
           unique_cells = count of distinct H3 cells visited

   k_percolation = min(breadcrumb_count / 100.0, k_max)
                   Parisi percolation factor [PARISI]
                   k_max = 7 (RECOMMENDED)
Figure 5: Trust Score Computation

A verifier MAY apply additional weighting factors (e.g., context digest richness, geographic spread) but MUST compute at least the base trust score defined above for interoperability.

6.3. Trust Thresholds

TRIP does not mandate specific trust thresholds for application-level decisions. However, the following reference thresholds are RECOMMENDED for interoperability:

Table 5: Reference Trust Thresholds
Level Min. Score Min. Breadcrumbs Typical Use
anonymous 0 0 Key pair exists, no trajectory
emerging 0.5 50 Read-only access, limited API
established 1.0 100 Handle claiming, messaging
trusted 3.0 300 Financial operations, publishing
sovereign 5.0 500+ Full protocol participation

7. Verification Procedures

7.1. Breadcrumb Verification

A verifier MUST perform the following checks on each breadcrumb, in order:

  1. Decode the CBOR payload and verify that all mandatory fields (labels 1-7, 9) are present.
  2. Verify that the identity field (label 2) is a valid 32-byte Ed25519 public key.
  3. Reconstruct the signable payload from fields 1-8 in canonical CBOR encoding.
  4. Verify the Ed25519 signature (label 9) against the signable payload using the identity public key.
  5. If index > 0, verify that the "previous" field (label 7) matches the hash of the preceding breadcrumb.
  6. If index == 0, verify that the "previous" field is null.
  7. Verify that the timestamp is not in the future (with a tolerance of RECOMMENDED 5 minutes for clock skew).
  8. OPTIONAL: Verify velocity plausibility relative to the preceding breadcrumb (Section 3.6).

7.2. Epoch Verification

A verifier MUST perform the following checks on each epoch:

  1. Verify the Ed25519 signature over fields 1-9.
  2. Reconstruct the Merkle tree from the constituent breadcrumb hashes and verify it matches the declared merkle_root.
  3. Verify that start_index and end_index define a contiguous range.
  4. Verify that count == end_index - start_index + 1.
  5. If epoch_index > 0, verify that previous_epoch matches the hash of the preceding epoch.

7.3. TIT Verification

To verify a claimed TIT, a verifier MUST:

  1. Obtain the claimant's Ed25519 public key and genesis breadcrumb.
  2. Verify the genesis breadcrumb per Section 7.1.
  3. Compute the TIT per Section 4 and compare with the claimed value.

8. CBOR Encoding

TRIP messages MUST be encoded using CBOR [RFC8949]. The canonical encoding follows the deterministic CBOR rules specified in Section 4.2 of [RFC8949]:

Implementations that also support JSON interchange (e.g., for debugging or logging) SHOULD use the following canonical JSON rules: keys sorted alphabetically, numbers normalized (integers where possible), and no trailing whitespace.

8.1. CDDL Schema

The following CDDL [RFC8610] defines the TRIP data structures:

; TRIP Protocol CDDL Schema

breadcrumb = {
  1 => uint,                ; index
  2 => bstr .size 32,       ; identity (Ed25519 public key)
  3 => #6.1(number),        ; timestamp (epoch seconds)
  4 => uint,                ; cell (H3 index)
  5 => uint .le 15,         ; resolution (0-15)
  6 => bstr .size 32,       ; context digest (SHA-256)
  7 => bstr .size 32 / nil, ; previous hash or null
  ? 8 => meta-map,          ; optional metadata
  9 => bstr .size 64,       ; signature (Ed25519)
}

meta-map = {
  ? "battery"      => uint .le 100,
  ? "accuracy"     => float,
  ? "network"      => tstr,
  ? "entity_class" => entity-class,
  ? "manual"       => bool,
  * tstr => any,
}

entity-class = "human" / "vehicle" / "drone" / "anchor"

epoch = {
  1  => uint,                ; epoch_index
  2  => bstr .size 32,       ; identity
  3  => #6.1(number),        ; start_time
  4  => #6.1(number),        ; end_time
  5  => uint,                ; start_index
  6  => uint,                ; end_index
  7  => bstr .size 32,       ; merkle_root
  8  => uint,                ; count
  9  => bstr .size 32 / nil, ; previous_epoch hash or null
  10 => bstr .size 64,       ; signature
}

trajectory-identity-token = bstr .size 16

9. Security Considerations

9.1. Threat Model

TRIP assumes the following threat model:

  • Private key security: The Ed25519 private key is assumed to be held in a secure enclave. If the private key is compromised, the attacker can produce valid breadcrumbs. Key compromise is outside the scope of TRIP; key management and revocation are higher-layer concerns.
  • GPS spoofing: An attacker with a software-defined radio can spoof GPS signals in a localized area. The context digest (Section 3.4) mitigates this by incorporating Wi-Fi BSSID and cellular tower data that are independent of GPS. Spoofing all signal sources simultaneously at diverse locations is significantly harder.
  • Virtual environment: An attacker running the TRIP client in an emulator can feed arbitrary location data. The velocity plausibility check (Section 3.6) and the requirement for sustained diversity over time make this attack progressively more expensive.
  • Colocation attack: Two colluding devices can generate breadcrumbs at the same locations, but each device produces an independent trajectory under its own key. Cross-trajectory correlation is a verifier-side heuristic and is outside the scope of this specification.

9.2. Cryptographic Agility

This specification mandates Ed25519 for signatures and SHA-256 for hashing. Future versions of TRIP MAY introduce algorithm negotiation. Implementations SHOULD be designed to allow algorithm substitution without protocol-level changes.

9.3. Replay Protection

The monotonically increasing index and the chaining via the "previous" hash field provide replay protection within a single trajectory. A replayed breadcrumb will fail the chain integrity check. Cross-trajectory replay (using breadcrumbs from identity A in a trajectory of identity B) will fail signature verification.

9.4. Denial of Service

An attacker can generate large numbers of breadcrumbs to consume verifier resources. Verifiers SHOULD rate-limit breadcrumb submission per identity and MAY require a minimum trust score before accepting further breadcrumbs for resource-intensive operations.

10. Privacy Considerations

10.1. Location Privacy

TRIP's primary privacy mechanism is H3 quantization. By design, a breadcrumb reveals only that the producer was within a hexagonal cell of known area--not the precise GPS coordinates. At the default resolution 10, each cell covers approximately 15,000 square meters (0.015 km2), providing meaningful location privacy in urban environments.

Implementations MUST NOT store raw GPS coordinates after H3 quantization. Implementations SHOULD provide users with the ability to choose their preferred resolution level, understanding that lower resolutions (larger cells) provide more privacy at the cost of reduced trust accumulation rate.

10.2. Trajectory Correlation

A trajectory is intrinsically linkable: all breadcrumbs share the same identity key. This is by design, as trust accumulation requires identity continuity. However, a user who desires unlinkability across contexts MAY maintain separate TRIP identities (key pairs) for separate contexts.

Verifiers SHOULD disclose their data retention policies. Breadcrumbs presented for verification need not be stored by the verifier after trust computation.

10.3. Context Digest Privacy

The context digest is a one-way hash. Wi-Fi BSSIDs, cell tower IDs, and IMU readings cannot be recovered from the digest. However, an attacker who knows the Wi-Fi environment at a specific location and time could reconstruct the digest and confirm the producer's presence. This is a known acceptable trade-off: the digest provides corroboration, not concealment.

11. IANA Considerations

This document has no IANA actions at this time. A future revision may request:

12. References

12.1. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
[RFC8032]
Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital Signature Algorithm (EdDSA)", RFC 8032, DOI 10.17487/RFC8032, , <https://www.rfc-editor.org/info/rfc8032>.
[RFC6234]
Eastlake, D. and T. Hansen, "US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)", RFC 6234, DOI 10.17487/RFC6234, , <https://www.rfc-editor.org/info/rfc6234>.
[RFC8949]
Bormann, C. and P. Hoffman, "Concise Binary Object Representation (CBOR)", STD 94, RFC 8949, DOI 10.17487/RFC8949, , <https://www.rfc-editor.org/info/rfc8949>.
[RFC8610]
Birkholz, H., Vigano, C., and C. Bormann, "Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures", RFC 8610, DOI 10.17487/RFC8610, , <https://www.rfc-editor.org/info/rfc8610>.

12.2. Informative References

[H3]
Uber Technologies, "H3: A Hexagonal Hierarchical Geospatial Indexing System", , <https://h3geo.org/docs/>.
[PARISI]
Parisi, G., "Mean-field theory of spin-glasses with finite coordination number", , <https://doi.org/10.1103/RevModPhys.91.030501>.
[HAVERSINE]
Wikipedia, "Haversine Formula", , <https://en.wikipedia.org/wiki/Haversine_formula>.

Appendix A. Example Breadcrumb (Informative)

The following is a JSON representation of a breadcrumb for illustration. The canonical wire format is CBOR as specified in Section 8.

{
  "index": 42,
  "identity": "3b6a27bcceb6a42d62a3a8d02a6f0d73...",
  "timestamp": "2026-01-15T14:32:10Z",
  "cell": "8a2a1072b59ffff",
  "resolution": 10,
  "context": "e3b0c44298fc1c149afbf4c8996fb924...",
  "previous": "a7ffc6f8bf1ed766...previous_hash...",
  "meta": {
    "battery": 72,
    "accuracy": 8.5,
    "network": "wifi",
    "entity_class": "human",
    "manual": false
  },
  "signature": "9d61b19deffd5a60ba844af49...sig..."
}

Appendix B. Design Rationale (Informative)

B.1. Why H3 Over Other Geospatial Systems

The H3 system was selected over alternatives (S2, Geohash, Plus Codes) for several reasons: uniform cell area at each resolution level (hexagons tile more evenly than rectangles), hierarchical parent-child relationships enabling multi-resolution disclosure, efficient neighbor computation for velocity checking, and open-source availability with well-maintained libraries across platforms.

B.2. Why CBOR Over JSON

CBOR provides deterministic encoding essential for reproducible signature computation, compact binary representation suitable for constrained devices and bandwidth-limited networks, and native byte string support for cryptographic material. JSON remains useful for debugging and human-readable interchange but lacks deterministic encoding rules.

B.3. Why Trajectory Over Biometrics

Biometric systems capture immutable characteristics (fingerprints, iris, face). Once compromised, the credential cannot be rotated. Biometric databases are high-value targets. Deepfake technology increasingly undermines facial recognition. In contrast, a trajectory is: continuously renewable (new movement generates new evidence), inherently distributed (no central biometric database), resistant to digital fabrication (requires physical presence in the real world), and privacy- preserving by design (quantized spatial cells, not raw coordinates).

Acknowledgements

The TRIP protocol builds upon foundational work in cryptographic identity systems, geospatial indexing, and percolation theory. The author thanks the contributors to the H3 geospatial system, the Ed25519 specification authors, and the broader IETF community for establishing the standards that TRIP builds upon.

Author's Address

Camilo Ayerbe
ULISSY s.r.l.
Via Gaetano Sacchi 16
00153 Roma RM
Italy