G TRIP·GyID

协议

TRIP 到底规定了什么

GyID 实现 IETF RATS 工作组的 draft-ayerbe-trip-protocol-04。草案刻意收窄范围:它规定证据,不规定传输、命名与锚定——那些留白正是本实现贡献 companion 草案的地方。

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

01

面包屑 Breadcrumb

证据的基本单元。一个九字段的 CBOR map,用 Ed25519 签名;块哈希是完整编码的 SHA-256。

  • ▸ index —— 链内序号,从 0 起连续
  • ▸ identity —— Attester 的 Ed25519 公钥
  • ▸ timestamp —— Unix 秒
  • ▸ h3 cell + 分辨率 —— 7 到 10,默认 10
  • ▸ context digest —— 对 h3/时间桶/Wi-Fi/基站/IMU 分量做 SHA-256
  • ▸ prev hash —— 上一块哈希,创世为 null
  • ▸ meta flags —— 含探索会话标志
  • ▸ signature —— 覆盖字段 0–7 的确定性 CBOR
02

链规则

让伪造变得昂贵的规则,端上与验证方执行完全相同的判定。

  • ▸ 相邻面包屑落在同一 H3 网格必须拒绝
  • ▸ 单个网格累计上限 10 条
  • ▸ 最小间隔 15 分钟;显式的探索会话可缩短至 5 分钟
  • ▸ index 必须连续,且每条都引用上一块哈希
  • ▸ 每条面包屑各自携带 Ed25519 签名
03

Epoch 与锚定

面包屑永远不上链,它们被封进 Merkle 根,只有根被锚定。

  • ▸ 默认每个 epoch 100 条面包屑
  • ▸ 根承诺有序集合,并记录唯一网格数
  • ▸ 根由身份密钥签名
  • ▸ 锚定目标与链无关;本实现使用 Base
04

人类存在证明证书(PoH)

依赖方真正消费的产物。15 个 CBOR 字段,由验证方签名,只含统计量。

  • ▸ 身份、签发时间、epoch 数、面包屑数与唯一网格数
  • ▸ α、β、κ、π 与临界置信度
  • ▸ 信任分与有效期
  • ▸ RP nonce —— 必填,把证书绑定到某一次请求
  • ▸ 链头哈希 —— 必填,把它绑定到某一份确切证据
05

主动验证 Active Verification

本部署主推的唯一模式。预先录制的轨迹无法回答一个当时并不存在的挑战。

  • ▸ 依赖方生成 16 字节 nonce
  • ▸ 验证方通过实时通道下发挑战
  • ▸ Attester 把 nonce 与链头、期望序号一起签名
  • ▸ 验证方校验应答后,签发绑定该 nonce 的 PoH
06

多验证方设计

任何合规实现都可以用自己的 Ed25519 密钥充当验证方;Attester 可以同时提交给多个,依赖方自行选择信任谁。

  • ▸ 协议中不存在特权验证方
  • ▸ 验证方在 well-known 地址公布自己的公钥与策略
  • ▸ 本项目的定位是「第一个公开验证方」,而不是唯一验证方

收敛区间

面包屑数 区间 能支撑什么
0 – 63 Bootstrap 起步 不定义 PSD,如实展示为「成长中」的身份
64 – 199 Provisional 暂定 可计算 PSD,方差约 0.15,足以声明 handle
200 – 255 Stable 稳定 方差低于 0.05,可靠正判
256+ High confidence 高置信 可用于高风险决策
草案是 Internet-Draft 而非 RFC:若不续期就会过期。本项目以 draft-04 作为互操作基线固定下来,同时跟踪后续版本。