G TRIP·GyID

The protocol

What TRIP actually specifies

GyID implements draft-ayerbe-trip-protocol-04 from the IETF RATS working group. The specification is deliberately narrow: it defines evidence, not transport, naming or anchoring. Those gaps are where this implementation contributes companion work.

baseline: draft-ayerbe-trip-protocol-04 · IETF RATS

01

Breadcrumbs

The unit of evidence. A CBOR map with nine fields, signed with Ed25519; the block hash is SHA-256 over the full encoding.

  • ▸ index — position in the chain, contiguous from 0
  • ▸ identity — Ed25519 public key of the attester
  • ▸ timestamp — Unix seconds
  • ▸ h3 cell + resolution — 7 to 10, default 10
  • ▸ context digest — SHA-256 over h3 / time bucket / Wi-Fi / cell / IMU parts
  • ▸ prev hash — previous block hash, null at genesis
  • ▸ meta flags — including exploration sessions
  • ▸ signature — covers the deterministic CBOR of fields 0–7
02

Chain rules

Rules that make fabrication expensive, applied identically on device and on the verifier.

  • ▸ Consecutive breadcrumbs in the same H3 cell are rejected
  • ▸ At most 10 breadcrumbs accumulate per cell
  • ▸ Minimum interval 15 minutes; explicit exploration sessions may shorten it to 5
  • ▸ Indices must be contiguous and each breadcrumb must reference the previous block hash
  • ▸ Every breadcrumb carries its own Ed25519 signature
03

Epochs and anchoring

Breadcrumbs are never written to a chain. They are sealed into a Merkle root, and only that root is anchored.

  • ▸ Default epoch size is 100 breadcrumbs
  • ▸ The root commits to the ordered set, plus the count of unique cells
  • ▸ The root is signed by the identity key
  • ▸ Anchor targets are chain-agnostic; this implementation uses Base
04

Proof of Humanity certificate

The output a relying party actually consumes. Fifteen CBOR fields, signed by the verifier, containing statistics only.

  • ▸ identity, issued-at, epoch count, breadcrumb and unique-cell counts
  • ▸ α, β, κ, π and the criticality confidence
  • ▸ trust score and validity window
  • ▸ RP nonce — mandatory, binds the certificate to one request
  • ▸ chain head hash — mandatory, binds it to one exact evidence set
05

Active Verification

The only mode this deployment promotes. A pre-recorded trajectory cannot answer a challenge that did not exist when it was captured.

  • ▸ The relying party generates a 16-byte nonce
  • ▸ The verifier pushes a challenge over a real-time channel
  • ▸ The attester signs the nonce together with the chain head and expected index
  • ▸ The verifier checks the response, then issues a PoH bound to that nonce
06

Multi-verifier by design

Any compliant implementation can act as a verifier with its own Ed25519 key; an attester may submit to several and a relying party picks whom to trust.

  • ▸ There is no privileged verifier in the protocol
  • ▸ The verifier publishes its key and policy at a well-known URL
  • ▸ This project positions itself as the first public verifier, not the only one

Convergence regimes

Breadcrumbs Regime What it supports
0 – 63 Bootstrap PSD is not defined; the identity is shown as still growing
64 – 199 Provisional PSD computed, variance around 0.15 — enough to claim a handle
200 – 255 Stable Variance below 0.05 — reliable positive classification
256+ High confidence Suitable for high-stakes decisions
The specification is an Internet-Draft, not an RFC. It expires unless renewed, and this project pins draft-04 as its interoperability baseline while tracking later revisions.