如何核验
这份档案的核心诉求是:让任何人——无需相信我们、无需联系我们——都能独立确认每一条信号确实是赛前发布的,而不是赛后编造的。
为此我们选择了一套略显迂回的做法。本页解释其中的原理,以及你如何亲自核验。
档案为什么这样运作
在博彩相关领域,一份对外展示的成绩单面临一个根本困难:如何证明这些记录是真的赛前发布的,而不是事后挑选有利的结果?任何事后的编辑、删除、修饰,都会让一份成绩单失去全部意义。
截图、录屏、公众号发帖,都无法解决这个问题——发布者随时可以删除、可以编辑、可以只保留好看的部分。口头承诺更无用。唯一的办法,是把预测提交到一个发布者自己也无法篡改的地方,并让全世界都能查到提交的准确时间。
为此我们选用了 GitHub。
GitHub 是什么
GitHub 是全球最大的代码协作平台,由微软运营。全球绝大多数软件工程师在上面存放、协作、维护代码。Linux 操作系统、Python 语言、React 前端框架等几乎所有主流开源项目,都以 GitHub 为官方存档地。许多全球一线的科研机构、NASA、谷歌、特斯拉,也把代码和数据公开托管于此。
对本档案而言,GitHub 扮演的角色与它原本作为代码平台的用途不同,但利用的是它的同一项核心特性:
每一次提交都会被自动记录提交时间。任何后续的修改、删除、替换,都会在项目的历史记录中留下公开痕迹,谁都能看到。这份历史记录由 GitHub 系统维护,项目主理人自己无法修改。
简单说,GitHub 对本档案而言,相当于一个全球公开、发布者本人也无法篡改的公证处。
想象一个这样的公证处
它接受任何人提交的信封,立刻盖上时间戳封口,把它公开放在一面所有人都能看见的透明墙上。任何事后的改动、删除、替换,都会在墙上留下痕迹,谁都能看见。公证处自己也没有权限偷偷改动任何一个信封。它只做一件事——如实封存,如实公开。
这正是 GitHub 对本档案而言所扮演的角色。
这份档案如何使用 GitHub
每一条预测在对应赛事开赛前,被加密封存到一个 zip 文件中,提交到本项目的 GitHub 仓库。GitHub 自动记录这次提交的精确时间戳——通常是赛前数十分钟到数小时。
赛后,我们把对应的赛果录入 track_record.csv,同时公开该 zip 文件的解密密码。
从这一刻起,任何人都可以独立核验这条信号:打开 zip 文件,看到我们赛前的原始预测内容,并确认它与事后公开的成绩表格完全一致。
你可以做三件事来核验
第一,查看封存时间。打开 GitHub 仓库,每一个 zip 文件旁边都标注着它被提交的准确时间。这个时间早于该场赛事的开赛时间。
第二,用公开密码打开封存文件。使用 track_record.csv 中公开的密码,任何人都能解开对应的 zip 文件,看到我们赛前的原始预测内容。
第三,确认内容一致。解开后的内容,与 track_record.csv 中对应信号的那一行,必须完全一致——联赛、球队、盘口、赔率、预测方向。如果不一致,整个档案即视为作废。
在线核验工具
上述三步可以手动完成,但对不熟悉技术的用户而言稍显繁琐。我们提供了一个在线核验工具,把三步全部自动化。你只需要选择任意一条信号,浏览器会在几秒钟内替你完成下载、解密、计算哈希、查询时间戳、对比内容。
整个过程在你自己的浏览器里运行,不经过任何我们的服务器。你看到核验通过的那一刻,这条信号的赛前存在性就已被独立证实。
延伸阅读
若希望了解档案遵循的完整协议——生成规则、结算规则、结构不变量、统计学考量——请参见档案协议。