本站溯源机制运作方式
简单来说:我们注册的每个文件都会生成一个指纹,目录中的大多数模型还会为其形状本身生成第二个指纹,创作者也可以把文件指纹写入区块链,让记录此后无法被悄悄更改。这一切你都可以自行核实,无需账号。
我们存储了什么
主要是真实文件。上传的文件会完整保存在这里,存放在一个原始字节永远不会被修改的对象存储中。只要来源允许,抓取来的目录内容同样会以真实文件的形式保存。还有一小部分内容仅有索引:只保留元数据和指纹,不保留文件字节。每条抓取记录都会链接回它的原始来源页面。
每个文件都有一个指纹
文件进入注册表时,我们会对它运行 SHA-256。这会生成一段短字符串,精确代表该文件的字节内容。哪怕只改动模型中的一个三角面,指纹也会完全不同。只要文件不变,指纹就会永远保持不变。
所以指纹回答的是一个很窄、但很有用的问题:这是不是同一个文件?你不必仅凭我们的一面之词——完全可以在自己的电脑上计算同样的哈希值并加以比对。
第二个指纹:形状本身的指纹
SHA-256 有一个盲点。用不同软件导出同一个模型,或者重新生成网格,字节就会发生变化,哈希值也会随之改变。形状还是那个形状,指纹却变了。文件哈希永远无法告诉你,两个不同的文件其实包含着同一个物体。
这就是为什么目录中的大多数模型还带有第二个指纹:一份从模型表面采样、对几何形状本身进行紧凑数值概括的指纹。目前已有超过 275,000 个模型拥有这样的指纹。无论模型经过重新导出、重新生成网格、精简、缩放还是旋转,它都能识别出同一个形状;我们在内部流水线中用它捕捉目录中的重复项,避免同一个形状以不同字节的形式被重复收录。由于索引覆盖了多个平台,注册表通常还能说出某个文件最早出现在哪里。
能进一步追踪模型之间二创关系和共享部件的匹配功能仍在开发中。比起许下承诺,我们更愿意公布实测结果,等有真正能展示的成果时,这个页面会补充更多说明。
把指纹锚定到区块链上
指纹单独存在时,只保存在我们的数据库里——有用,但终究是我们自己的一面之词。下一步是把这个指纹写入公共区块链,让它拥有一个任何人都无法改写的时间戳和交易记录。这就是我们所说的“锚定”。
我们使用两条链。Polygon 提供快速、低成本、可在 PolygonScan 上公开查询的交易;通过 OpenTimestamps 实现的比特币锚定,则提供了现存最持久的记录形式,比任何一家公司都更长久。并非目录中的每个模型都已锚定——目录中有很大一部分内容是从其他网站索引而来的,这些条目只有指纹,没有链上存证。当一个模型已被锚定时,它的模型页面和证明接口都会明确注明。
锚定能证明什么,不能证明什么
它能证明某个特定文件在某个特定日期之前就已存在,并且此后记录未被改动过。但它本身无法证明模型是谁画的,也无法证明版权归谁所有——作者身份是另一回事。我们特意把这两件事区分开来。
你可以自行核实这一切
- 打开验证页面,拖入一个文件。你的浏览器会在本地计算哈希值,文件本身永远不会被上传。
- 我们会在注册表中查找这个指纹,并告诉你我们掌握的信息:是否已被记录、由谁注册、是否已在链上锚定。
- 如果已被锚定,你可以顺着链接前往公开的区块浏览器,亲自查看这笔交易。
已经有比特币 OpenTimestamps 证明了?可以在OpenTimestamps 验证器查看。
各条链上都锚定了什么
- Polygon。已上线。写入速度快、公开可查、成本低廉。我们的注册合约是 0x687F2e6F96288Ac58fe22E2Eb000D1a628aEEB65,你可以直接在 PolygonScan 上读取我们写下的每一条存证,完全不必经过我们。同样的地址也可以通过 GET /api/blockchain/status 获取。
- 比特币(通过 OpenTimestamps)。已上线。是这套体系中最持久的记录方式。可以在 OpenTimestamps 验证器查看证明。
- Solana。已列入路线图,尚未实现。
我们宁可保守,也不愿夸大。如果页面上写着某个模型已被锚定,证明接口一定会给出佐证。
面向开发者与自动化程序
如果你是通过代码读取这些信息,其实不需要抓取网页。我们提供一个只读 API,能以 JSON 格式返回同样的事实,无需密钥,也无需登录:
- 查询指纹:GET /api/models/verify?hash={sha256}
- 获取单个模型的 JSON 数据(含锚定信息):GET /api/models/{id}
- 获取模型的链上证明:GET /api/models/{id}/proof
- 实时校验的比特币证明,并附有原始 .ots 文件的链接:GET /api/models/{id}/verify-ots。下载 .ots 文件后,你可以用开源的 OpenTimestamps 工具自行验证,全程无需 ModelDirectory 参与。
- 链上状态与注册合约地址:GET /api/blockchain/status
想自己动手验证?我们在 github.com/ModelDirectory/verify 提供了一个小型开源脚本。它会在本地计算你文件的哈希值,并通过你自选的任意公开 Polygon 节点读取注册合约,因此结果完全不依赖我们的服务器。采用 MIT 许可证,代码量很小,运行前就能读完。
你在运营一个平台吗?
这个页面上的一切,都可以接入你自己的上传流程。发布时只需一次 POST 请求,就能为平台上的每一次上传生成一份独立、带时间戳的首发证明,以及一个小徽章——当创作者的作品出现在不该出现的地方时,可以用它来举证。我们从不索取文件本身,只需要它的哈希值,徽章也不携带任何 cookie 或追踪信息。整个接入过程刻意做得很“无聊”:一个密钥、两次调用,一个下午就能搞定。
详细说明、具体的请求格式,以及如何获取密钥:见平台页面。
一个文件最早出现在哪里?
由于索引覆盖了多个平台,注册表往往能用确凿的记录回答一个简单的问题:这个文件到底最早出现在哪里?可以到首发查询试一试。拖入一个文件(会在你的浏览器本地计算哈希,不会上传)或粘贴哈希值,即可查看时间线。
完整列表在机器可读清单 /.well-known/ai-agent.json 中,另外我们在 /llms.txt 提供了一份面向语言模型的通俗指南。