产品 · Evidence
一份不需要通过我们就能核对的记录。
每一次裁决都会写下一条从不更新、也从不删除的记录,连同它所依据的每一份外部响应的逐字节副本,并以内容自身派生出的地址归档。若干年之后,你可以还原出当时适用哪条规则、存在什么数据、由谁做了什么判断——并且验证这期间没有任何一处被动过。
决策记录
每一次裁决都写,包括那些一毫秒就返回 CREDIT、事后没有任何人看过的。这里不做抽样——抽样的问题总是在「缺的那条正好被人要」的那一刻才被发现。
- 从不改写
- 存储只接受插入。更新与删除对应用层不可用,对支持人员不可用,对我们也不可用。
- 完整输入
- 收到的入金原貌、它命中了地址簿里的哪些条目、调用了哪些来源、每个来源返回了什么。
- 当时适用的规则
- 以版本记录,可还原为那一刻生效的确切配置文本,而不是现在这一份。
- 人工环节
- 如果一条挂起进了人工复核:谁打开的、看到了什么、做了什么判断、什么时候做的。
- 访问轨迹
- 对你数据的每一次内部读取,包括我们的运维查询,都落进一份独立的只增不改日志,你可以导出。
内容寻址快照
每一份外部响应都以从它自身字节派生出的标识归档。改动一个字符,它就成了另一个地址上的另一个对象,而原地址仍然指向原字节。这里不是把篡改挡住,而是让篡改没有意义。
- 按内容寻址
- 一条裁决里的引用,只可能指向做出该裁决时看到的那些确切字节。
- 一次写入
- 对象存储版本化加对象锁。不存在覆盖写的路径——应用层没有,拥有生产权限的运维也没有。
- 先原始,后派生
- 响应在被解释之前就已留存。结论总是可以重算;一份从未留存的原始记录,无法从结论反推出来。
审计包里有什么
拿一个裁决 ID 发一次请求,取回一个压缩包。它由留存的对象拼装而成,不是按当前状态重新生成的。
| 条目 | 是什么 |
|---|---|
| manifest.json | 裁决的全部字段、证据哈希,以及自行校验该哈希的书面说明。 |
| layer_a/ | 被调用的每一个权威名单来源的留存原始响应,无论命中与否。 |
| layer_b/ | 被调用的每一个付费来源的留存原始响应体——在该来源条款允许转交给你的前提下;不允许时,放调用记录、来源名与名单版本。 |
| rule/ | 产生该裁决的确切规则配置,版本以裁决中记录的为准。 |
| chain/ | 我们当时读到的这笔入金的链上记录。 |
| report.pdf | 同样的内容,排版成给「不会去打开 JSON 文件的人」看的样子。 |
留存
裁决记录与其快照至少保存五年——比多数适用监管要求的年限更长,也比多数争议真正找上门所需的时间更长。这是写进合同的下限,不是一个成本一高就悄悄滚掉的存储层级。
自己验证
需要靠信我们才成立的完整性,不叫完整性。三项检查,没有一项需要我们参与:
- 01 对包里每一个留存对象重算哈希,与它归档所用的地址比对。不一致,说明这个对象不是裁决当时引用的那个。
- 02 对整包内容重算证据哈希,与裁决做出那一刻写进记录里的值比对。
- 03 用你自己跑的节点重读链上那部分,完全不依赖我们的节点。
冻结真的发生时
一次触及你的冻结,会在几分钟而不是几天内变成一份可提交给发行方与律师的材料包:受影响流水的裁决历史、每一条裁决背后的证据,以及按第一天、第二天、第一周排好序的处置清单。提前备好它的理由很简单——冻结之后那几个小时,是最不适合现场翻记录的时候。
你可以带着全部数据离开
属于你的每一条裁决、每一份快照、每一份日志,都能按上面描述的格式完整导出,不需要开工单。对于跑私有部署的机构,这些数据本来就没有出去过。「不制造锁定」比「承诺不利用锁定」更容易被你验证。