round32-candidate-verifier-hardening.md 1.5 KB

Round 32:候选验证器证据加固

只读审查指出候选验证器原先的三个证据强度不足:

  1. 没有把 pilot report SHA 和候选变更记录逐项关联;
  2. 没有区分原始未纹理 GLB 与 v7 当前已纹理 GLB 的哈希;
  3. 只比较了部分属性,Draco 属性不能按普通 accessor 读取。

本轮已修正:

  • candidate builder 在changedTiles中写入currentAssetSha256、sourcePath/sourceSha256、替换尺寸、raster SHA/bytes、processing元数据和sourceTiles;
  • verifier 读取并校验pilot report SHA、passed/configurationChanged/pilotNotConfigured;
  • verifier 分别校验原始source GLB hash和v7当前精片 hash;
  • verifier 比较替换记录尺寸、rasterSha、rasterBytes、processing、sourceTiles;
  • verifier 比较全部 primitive attribute key、Draco extension、mode,并对可解码 accessor逐项比较,对Draco无bufferView属性比较索引/描述;
  • 重跑候选回验通过:113区、631preview、3023fine、2替换精片、+1,474,740 decoded raster bytes、region25=32,020,772、6,328预算组合、pipeline=0、几何/UV/源hash保持。

补充只读路径检查(按manifest声明的assetBase=city-regions-v6解析sourceUri,不是相对region目录):3,654个fine/preview sourceUri均存在;fineRecord引用的3,555个不同z19 source tiles均存在;候选标记configured=false/renderingValidated=false。此项是文件存在检查,只有本轮替换记录相关的source tile还做了SHA-256复算;未对所有历史v6来源GLB做全量内容哈希。