09 投票的可信度(重大发现)

这是本次调研中最有价值的一手证据:媒体广泛引用的"鲸鱼娘 312 万票 : D 老师 145 万票",出自一个投票当天就出现刷票、票数回滚与刷票农场迹象的第三方投票网站。该网站的源码与 issue 追踪完全公开在 GitHub 上。

一、投票网站的身份

项目 内容
网址 https://ds-vs-ds.win/(当前被 Cloudflare 拦截,返回 403 "Attention Required")
标题 「你更喜欢哪一个 deepseek 拟人形象?」
源码仓库 github.com/KurosawaGeeker/ds-vs-ds
仓库创建时间 2026-09-26T16:45:52Z = 北京时间 2026-09-27 00:45
最后 push 2026-09-27T13:56:11Z = 北京时间 2026-09-27 21:56
技术栈 Cloudflare Pages(docs/)+ Cloudflare Workers(api/worker.js)+ D1 数据库(api/schema.sql)+ Turnstile 人机验证
选项定义 data-choice="left" = "左边:蓝发、蓝领带、深色西装的 deepseek 拟人形象"(D 老师);data-choice="right" = "右边:蓝发、女仆装的 Q 版 deepseek 拟人形象,抱着一碗米饭吃饭"(鲸鱼娘)
API GET /api/results、GET /api/selection、POST /api/vote
页面广告 页面挂有 isacai.space 的左右侧广告位(docs/assets/isacai.jpg)
仓库状态 2 star / 1 fork / 7 个未关闭 issue,无 LICENSE

left/right 的对应关系由 docs/index.html 中的 alt 文本与 data-choice 属性直接确认,不存在歧义。

二、七个 issue 揭示的问题(逐字引用)

Issue #6(LouisYang841,2026-09-28T01:08Z ≈ 北京时间 09-28 09:08)——刷票脉冲与打码农场

标题:feat(voting): require proof-of-work on validated ballots

"9/27 的刷票脉冲(一分钟约 1 万票)显示:Turnstile 验证了「解题的是真浏览器」,但 voterId 是客户端自生成的随机 UUID,打码农场每票只需 1 个新 UUID + 1 次 Turnstile 解题 + 1 个住宅代理 IP。Turnstile 这层实现本身没问题(本 PR 未改动它),缺的是把每票成本从「约等于免费」抬起来的第二道闸。"

Issue #7(DFrostW,2026-09-30T07:43Z ≈ 北京时间 09-30 15:43)——独立观测到的异常投票模式

标题:关于清除页面缓存即可重新投票的问题

"我写了个只读脚本每 10 秒轮询 /api/results(不提交投票),留了一段 9/30 15:08–15:16(UTC+8) 的数据…… 关键观测:左侧 35.2 票/分、右侧 1.8 票/分(19:1),但存量比是 28:72;左侧 10 秒增量的 CV 0.93、Fano 因子 5.1,而泊松预期 CV ≈ 0.41 —— 明显成簇,峰值 102 票/分;窗口内没有任何回退。 我认为这是关于清除浏览器缓存就可以反复投票的问题,建议增加 IP 限制"

Issue #4(LouisYang841,2026-09-27T16:26Z ≈ 北京时间 09-28 00:26)——票数回滚

"为什么票数倒退回几千和几万了"

Issue #5(daltoclef,2026-09-27T18:39Z ≈ 北京时间 09-28 02:39)——半夜注入票数与页面广告

"首先是大半夜充值一次票数,然后之前投票过的不让投,网页上还挂个广告圈米,啥成分不必多说了"

Issue #1/#2/#3(09-27)——早期的看热闹式吐槽

  • 1 "神了,这都有"(qmxdiy,08:57Z)

  • 2 "这期神了"(BaoZiFly-233,11:22Z)

  • 3 "不言而喻,一目了然"(iron-water,11:50Z):"堪比吹奏部公开处刑,我说这小号还得练"

二·补 站方自述:原始票数与"不适用于严肃选举"(Lead 独立核验)

Lead 通过 GitHub API 直接取得该仓库 README 原文(Accept: application/vnd.github.raw,ref=feat/voting-site,已存档 raw/tech/dsvsds_readme_verified.md),其关键段落逐字如下:

"投票必须通过 Turnstile,后端验证一次性令牌、hostname、action 和浏览器 ID 绑定。随机 UUID 唯一约束和 D1 事务保证同一 ID 只计一票。IP 仅用于边缘限流和 Cloudflare 验证,不写入投票数据库。"

"提交入口每个 IP 每分钟允许 5 次尝试;通过验证的提交每个 Cloudflare 节点每分钟最多 120 次。……限流为 Cloudflare 的节点级近似限制,并非全球严格配额。人机验证不能证明一人一票,不适用于严肃选举。"

"2026-09-27 排查时 D1 返回 7429: D1 DB is overloaded. Requests queued for too long.,保护上线后读取恢复。保留原有 4,559,229 票(左 1,448,682,右 3,110,547),未追溯删除。最近 10,000 条记录集中在 UTC 02:05:15–02:06:15,其中左 1,915 票、右 8,085 票,属于可疑高频模式。历史记录没有 IP 或人机验证证据,不能据此准确判定刷票数量。"

据此可以得到的三条确定结论

  1. 权威票数(终值):总计 4,559,229 票;左(D 老师)1,448,682 票 = 31.8%;右(鲸鱼娘)3,110,547 票 = 68.2%;比例约 2.15 : 1。
  2. 媒体流传的各种数字都是不同时点的快照,不是互相矛盾:311 万 : 144 万(微博"科技视说" 09-28 17:34)、312 万 : 145 万(国创漫话 09-30)、约 313 万 : 145 万(百家号 09-30)、约 314.5 万 : 145.2 万(搜狐 10-09)——终值即上面的 3,110,547 : 1,448,682。
  3. 站方自己否认了"民意"解读:明写"人机验证不能证明一人一票,不适用于严肃选举",并承认无法据历史记录准确判定刷票数量;同时披露一次可疑高频模式:60 秒内 10,000 条记录(右 8,085 / 左 1,915),以及 D1 数据库过载(错误码 7429)。

注意方向性:站方披露的那次 1 万条/分钟异常脉冲偏向右侧(鲸鱼娘);而 issue #7 在 09-30 测到的 19:1 异常增速偏向左侧(D 老师)。两者时间不同、方向不同,说明双方阵营都出现过异常流量,不能只归咎一方。

三、这些证据意味着什么

  1. 票数不是"民意",而是"可刷的计数器"。 voterId 由客户端生成随机 UUID,清缓存/换 UUID 即可重投;理论上每票成本≈1 个 UUID + 1 次 Turnstile + 1 个代理 IP。
  2. 存在被观测到的异常脉冲。 9/27 出现约 1 万票/分钟的脉冲;9/30 的一个 8 分钟窗口内,左(D 老师)以 19:1 的瞬时速率增长(35.2 票/分 vs 1.8 票/分),且分布显著成簇(Fano 5.1)。
  3. 票数出现过回滚。 有用户报告"票数倒退回几千和几万",说明总数在当天经历了重置/迁移。
  4. 与媒体口径对照: 观测到的存量比 28:72 与媒体广泛引用的 145 万 : 312 万(≈32:68) 高度接近 → 媒体引用的"312 万 : 145 万"确实来自这个站点,因此也继承了上述全部可信度问题。
  5. 注意方向: 证据显示"异常增速"出现在左(D 老师)一侧;但 #6 提到的一万票/分钟脉冲没有说明方向,不能据此认定只有一方刷票。可以确定的是:这是一场双方都可能介入、且已被污染的投票。
  6. 商业动机问题。 页面挂有第三方广告位,issue #5 直接质疑"挂个广告圈米"。这削弱了把投票结果当作中立民意测验的可能性。

四、建议的表述方式

  • ✅ 可以说:"媒体广泛引用的一次公开投票显示女版以约 312 万 : 145 万领先。"
  • ✅ 必须补充:"但该投票站(ds-vs-ds.win,源码在 GitHub KurosawaGeeker/ds-vs-ds)的 issue 记录显示,投票期间存在约 1 万票/分钟的刷票脉冲、客户端 UUID 可清缓存重投、票数回滚等问题,其结果的代表性应当被显著打折。"
  • ❌ 不应说:"投票证明鲸鱼娘才是 DeepSeek 用户的主流选择。"(这是把被污染的计数器当民意)

五、原始文件

文件 内容
raw/tech/gh_repo_dsvsds.json 仓库元数据(创建时间、分支 feat/voting-site、star/fork/issue 数)
raw/tech/gh_issues_dsvsds.json 7 个 issue 的完整 API 返回(含上述逐字正文)
raw/tech/gh_tree_dsvsds.json 仓库文件树
raw/social/github_01_dsvsds.html 仓库网页存档
raw/social/github_03_app.js 投票前端源码(含 API 常量与 /vote 逻辑)
raw/social/github_04_index.html 投票页源码(含 left/right 选项定义)
raw/social/github_05_worker.js Workers 后端源码(readTotals 读取 left/right 总数)
raw/social/dsvsds_01_site.html 站点被 Cloudflare 拦截的存档