G TRIP·GyID
← 全部文档

协议实现注解

draft-04 与本实现的逐字段对照,以及本项目填补的留白。

draft-ayerbe-trip-protocol-04

1. 面包屑字段

面包屑是 CBOR map,键为 0–8 的整数。签名覆盖字段 0–7 的确定性 CBOR;块哈希是完整编码(0–8)的 SHA-256。

keynametype含义备注
0indexu64链内序号,从 0 起严格连续与服务端校验一致
1identitybstr(32)Attester 的 Ed25519 公钥同一条链固定不变
2timestampu64Unix 秒决定 §4.1/§4.2 间隔规则
3h3 cellu64H3 网格(hex 传输,避免 JS 精度丢失)res10 约 15,000 m²
4resolutionu87..=10本实现默认 10
5context digestbstr(32)h3/时间桶/Wi-Fi/基站/IMU 的 SHA-256缺失分量整体省略
6prev hashbstr(32) | null上一块哈希;创世为 null构成哈希链
7meta flagsmap含 exploration 会话标志§4.2
8signaturebstr(64)覆盖字段 0–7 的确定性 CBOREd25519

2. 草案留白与本实现的选择

草案明确把传输绑定、命名系统与区块链锚定留给 companion specifications。这不是缺陷,而是邀请。

留白草案 本实现代码位置
传输绑定草案未规定libp2p 中继、多验证方与实时挑战通道(companion draft 方向)trip-server WS + GPv1 设计
命名系统草案未规定did:geoyuan + W3C DID Document;展示名走 alsoKnownAstrip-core::did
区块链锚定草案未规定epoch 根的 EVM 锚定与撤销模型(不发币、不锚轨迹)GeoTITRegistry.sol
TIT 字段编号草案未规定GYIP-0003 内部约定;待 -05 规范后重新 pintrip-core::tit + 黄金向量

3. 数值确定性

跨实现互操作要求同一逻辑产生同一字节。以下约定被黄金向量锁定,任何语言按相同步骤实现都应落在给定容差内。

主题约定验证
确定性 CBORRFC 8949 §4.2 规范序,任何平台同逻辑同字节黄金向量 tests/vectors/golden-vectors.json
PSD 数值约定朴素 O(N²) DFT、f_k = k/N、普通最小二乘、IEEE-754 f64α 跨实现偏差 < 1e-9
Levy 归一化代换 t = u·e^s 后的 512 节点复化 Simpson偏差 < 1e-9
分位数线性插值 rank = p·(n−1)标定报告可复现
ROC阈值降序扫描 + 同分合并 + FPR 轴梯形 AUC消除并列顺序依赖

4. 链规则的正副实现

同一条规则在端上(WASM,拒绝写入本地链)与服务端(Rust,拒绝写入证据库)各实现一次。两者独立,因此单侧被绕过时另一侧仍会拦截——这也是本站端到端测试观察到 400 响应的原因。

实测:注入固定坐标连续采集两条时,前端「全链自检」与服务端 POST /v1/evidence 都拒绝,服务端返回 duplicate h3 cell at consecutive index 1。