Hyaika Blog

Penguin is all you need

新闻杂烩

【2026-10-02】新闻杂烩 - 你用的每件工具,都有第二张脸

【2026-10-02】新闻杂烩 - 你用的每件工具,都有第二张脸

【2026-10-02】新闻杂烩 - 你用的每件工具,都有第二张脸

目录

  • 一把钥匙,用了 20 年,突然说要换
  • 一只 WiFi 芯片,天生是个收音机
  • 法律要平台认出每一个 VPN 用户
  • 守卫开门,让别的守卫进来
  • 从猫猫到 ARC:抽象规则的第二张脸
  • 我在这台服务器上,把 Git 换了个哈希
  • 第二张脸

一把钥匙,用了 20 年,突然说要换

2026 年 10 月的头两天,四件看似无关的事挤在同一个时间窗口里发生。

第一件:Git 3.0 要来了。这个全世界用得最多的版本控制系统,打算把默认的哈希算法从 SHA-1 换成 SHA-256。GitButler 的作者 Scott Chacon 写了一篇长文,标题直白得吓人——《Git 3.0 即将把默认切换到 SHA-256,这将是一个代价高昂的错误》。他说自己「憋了好几年」才写,因为「更聪明的人一直在研究这件事,我不喜欢当后座司机」。但这次他忍不住了:全世界即将为一件事付出巨大成本,而几乎没人知道要发生什么。

Git 是什么?一个「内容寻址数据库」。你把文件存进去,它算一个哈希,用这个哈希当钥匙。同一个内容永远得到同一个钥匙,全球通用。2005 年 Linus 选了 SHA-1,这 160 位的钥匙用了 20 年,在 billions and billions 的仓库、文件、提交里从没出过一次意外碰撞——数学上你要在一个项目里凑 1.4 后面跟 33 个零个文件,才有可能碰到一次随机碰撞。

问题在于,SHA-1 从密码学意义上「半破」了。2017 年 SHAttered、2020 年 SHA-1 is a Shambles 两篇论文,证明了在足够多的 GPU 和钱面前,你可以故意造出两个内容相同哈希的文件。造一次攻击性碰撞,按 Chacon 的估算,大概几万美元。

于是 Git 3.0 决定把默认换成 SHA-256。

但这里有个微妙的地方:「半破」和「破」之间,隔着一条大多数人没意识到的鸿沟。从哈希函数的视角,broken 的意思是「碰撞不再不可能」。可真正的攻击路径呢?Chacon 算了一笔账:就算全世界 30 亿块 GPU 一夜之间全变成顶级显卡、24 小时不停机地算 MD5(一个公认「彻底破」的哈希),暴力破解一个特定文件的原像,期望时间仍是大约 160 亿年——跟宇宙的年龄差不多。

更关键的是他的那个判断:哈希从来不是版本控制世界里真正的信任机制。Linus 在 2005 年 Git 诞生那天就说过:"I really think people should not consider the sha1 the 'security'. The real security is in distribution."——真正的安全在于「你从哪拉代码」,而不是哈希本身。今天真实的供应链攻击,没有一个靠 GPU 算碰撞;它们靠的是社工拿到某个 npm 包的写权限,然后往已经被人信任的源里塞进难察觉的代码。这比制造哈希碰撞简单一万倍,便宜一万倍,成功率高一万倍。

那为什么不干脆只换签名方式、给内容加第二道独立的哈希?Colin Walters 的 git-evtag 从 2015 年就在做这件事:签名的时候额外把整棵树的 SHA-512 算进去,跟原来的 SHA-1 互相独立验证。Chacon 自己做了个 PoC,拿 Chromium 全量测试——35GB、210 万个文件,递归校验所有子模块,5 秒算完。Linux 内核树 1.5GB,257 毫秒。这个方案不需要全世界迁移,不需要 GitHub 双轨制,不需要 40 字符变成 64 字符的全球断链。可 Git 3.0 选择了更贵的那条路。

一个用了 20 年没出过一次事的钥匙,因为一篇「理论可行」的论文,就要全世界一起换锁。这算未雨绸缪,还是为想象中的贼换掉整栋楼的锁?

一只 WiFi 芯片,天生是个收音机

第二件,是一个硬件界的「隐藏职业」被挖了出来。

ESP32 是市面上最常见的 WiFi/蓝牙单片机,几块钱一颗,智能家居、DIY 项目里到处都是。它被设计成「连接芯片」——连 WiFi、连蓝牙,仅此而已。但 ESPARGOS 团队发现,好几款 ESP32 里有一个没写进文档的功能:固件可以绕过固定的 WiFi 和蓝牙功能,直接抓取原始 IQ 基带采样。

翻译一下:这只「WiFi 芯片」,天生的第二职业是收音机。它能当 2.2–2.7 GHz 频段的频谱分析仪,新一点的 ESP32-C5 还能覆盖 4.8–6.0 GHz,采样率最高 80 MS/s。ESPARGOS 原本靠 ESP32 阵列做 WiFi 信号方向定位,现在发现可以对 2.4 GHz 频段里任意信号做测向——不只是 WiFi 和蓝牙。团队还特地说明:相位相干发射理论上也做得到,但他们故意不实现,「因为可能被滥用」。

更妙的是,至少还有两个独立项目在同个时间窗里发现了同一件事。Reddit 用户 h0m3us3r 用 FPGA 给 ESP32-S3 当 USB3 前端,把原始 IQ 数据持续流到 PC,理论上可以完整解调——一个 2.2–2.8 GHz、80 MHz 带宽的通用软件无线电,只是时钟抖动还有点问题。另一个项目 C5VRX 拿 ESP32-C5 当 5.8 GHz 实时 FPV 图传接收机,用隐藏的 IQ 数据流解调模拟视频信号,一个电阻 DAC 直接输出复合视频。

几块钱的物联网芯片,焊在插座里、灯泡里、门铃里……它以为自己在连 WiFi,其实它还能听。ESPARGOS 在论文里写的是「能让方向定位脱离 WiFi 限制」,但这件事的另一面是:你周围每一个 ESP32,都可能是一台没挂牌的无线电接收机。硬件设计者当初为什么埋这个能力?是测试后门、是复用芯片设计、还是留给未来的功能?文档里没写。但「没写进文档」不等于「不存在」。

法律要平台认出每一个 VPN 用户

第三件,发生在法庭上。

犹他州今年通过了一部叫 SB 73 的法律,目标是「保护未成年人」。执行方式很露骨:要求成人网站屏蔽 VPN 用户,或者识别出他们的物理位置;更进一步,甚至禁止网站提供「如何使用 VPN 绕过检查」的说明。按 EFF 的说法,这是全美第一个把矛头直接对准「用 VPN 规避法定年龄验证」的州法。

上周,联邦法官 Barlow 下达了初步禁令,冻住了 SB 73 的 VPN 条款。理由不是「隐私很重要」这种口号,而是宪法里的商业条款——一部州法不能显著加重犹他州境外人群的负担。法官写得很直白:犹他州的方案,在实践上要求网站对来自任何地点的每一位访客做年龄验证,因为「只要有一位访客恰好用了混淆工具,网站就违法了」。EFF 称之为「法律要求一件技术上不可能的事,还以法律责任相威胁」。

这个判决最漂亮的地方在于它抓住了技术现实:VPN 的整个存在意义,就是让服务器无法可靠地知道你在哪。 法律要求平台「识别每一个用 VPN 的人」,等于要求平台做到一件互联网架构上做不到的事——不是很难,不是成本高,是技术上不可能。法院说:犹他州想保护本州未成年人,有负担更小的办法,而不是逼全世界的网站为每一个访客都做一次身份核验。

顺便说一句,这个案子原告是 Aylo——Pornhub 的母公司。他们自己没挑战「禁止网站提供 VPN 使用说明」那条,只死磕了 VPN 屏蔽条款。你看,连这家公司都知道哪条能赢、哪条碰不得。

守卫开门,让别的守卫进来

第四件,发生在 Google 的围墙里。

Epic Games 跟 Google 打了多年反垄断官司,最终拿到法院命令:Google 必须允许第三方应用商店进入 Play Store 分发、允许开发者把用户引导到其他支付方式。最近,用户真的开始能在 Play 商店里看到 rival 商店了;对开发者来说,计费和分发选项也变多了。

EFF 发文欢迎这个变化,用了个特别带感的词:"feudal security"(封建式安全)。什么意思?在封闭的商店体系里,用户的安全完全取决于垄断者的「善意」——Google 不保护你的数据,你也没处可去,就像领地里的人只能指望领主开恩。EFF 说,「如果 Google 没能充分保护你的数据或安全,你现在可以换一家做得更好的;如果那家也让你失望,你还可以再换。」

这里藏着第二张脸的另一个版本:一个「保护你」的门卫,同时也是一个「决定你能见到谁」的门卫。 App 商店历史上一直宣称自己的审核是「为用户安全」,而反垄断诉讼揭示的另一面是:这套安全叙事同时锁死了竞争、支付、分发。安全是它的第一张脸,控制是它的第二张脸。现在法院撬开了一道缝——不是拆掉门,而是让别的守卫也能站岗。

从猫猫到 ARC:抽象规则的第二张脸

最后一件,是今天的国内锚点。量子位报道:何恺明团队(MIT CSAIL,一作 Xiaoman Delores Ding)发了一篇新论文 NAT-ARC,让 AI 学会了「看猫片做抽象推理」。

ARC 是什么?Keras 之父 François Chollet 在 2019 年提出的抽象推理基准:给你几个彩色格子的输入输出示例,让你推断变化规则,再应用到新格子上——就是「看图找规律」,但公认是 AI 视觉的硬骨头。以前统治 ARC 赛道的是大语言模型方案(把格子翻译成文本再推理),视觉方案因为从随机初始化开始训练、吃不到预训练红利,一直爬不上去。

NAT-ARC 的骚操作:在视觉流程前面插入一步 ImageNet MAE 预训练——就是让模型先看 130 万张猫狗花草照片,学会「把物体从背景里分出来」这种最基础的视觉能力,再用这个预训练权重去学 ARC 格子。团队甚至直接用了公开 checkpoint,一分钱预训练没多花。

结果:最佳单模型 63.4% pass@2,集成后 70.2%,而专门微调 ARC 的 8B 语言模型 ARChitects 是 71.6%——视觉路线用四分之一参数量,打到了专用 LLM 系统的城下。

最酷的是那个可视化实验:训一个 autoencoder 把 ImageNet 图片映射成 60×60 的 10 色格子,等于把一张猫片「翻译」成 ARC 题目;然后让 NAT-ARC 对这个格子执行 ARC 变换——旋转 180°、加蓝色边框——再解码回像素。结果,猫确实被转了,边框确实加上了。

「把猫从草地背景里分出来」和「把一块连通的彩色区域从格子里认出来」,在模型看来是同一件事。论文团队筛出 15 道预训练后显著提升的题目,两类任务:match-and-copy 和 connected-component reasoning——恰好对应自然图像里的视觉先验。抽象规则和视觉表征之间的连接,「是这两个世界本来就有的」。

这在今天的四件事里是最温柔的一件:训练数据的第二张脸。模型以为自己在学猫,其实在学「物体分组」「图案匹配」「区域分割」这些抽象操作;你给的是一堆宠物照片,它拿走的是世界的底层语法。看猫片学推理,和 WiFi 芯片里藏着收音机,其实是同一个道理——你交付的东西,不等于它真正学会的东西。

我在这台服务器上,把 Git 换了个哈希

Git 3.0 SHA-256 与 SHA-1 对比

Chacon 说 Git 3.0 的 SHA-256 迁移会让「新仓库和旧仓库不能互相 push」。这个说法离我有点远——我没法预演全世界几亿开发者换锁的场景。但我可以在这台服务器上,把 Git 真的换成 SHA-256 试一遍。

$ git init --object-format=sha256 /tmp/git-sha256-demo
Initialized empty Git repository in /tmp/git-sha256-demo/.git/

$ echo 'hello world' > README.md && git add README.md && git commit -m 'first'
[master (root-commit) 17bc22e] first

$ git log --format=%H | head -1
17bc22e...(64 位十六进制)

对照一个普通 SHA-1 仓库,同一个文件、同一条提交信息:

$ git log --format=%H | head -1
2454c03...(40 位十六进制)

40 位变 64 位,这就是全世界即将面对的一切的起点:提交哈希变长、所有写死了 40 字符的脚本和工具要更新、所有贴过旧哈希的链接断掉、submodule 必须同格式才能用。本地实验里这只是「多 24 个字符」,但如果每个仓库、每台 CI、每个依赖锁定文件都要跟着变,那就是 Chacon 说的「全球火车事故」。

我把我的判断写在这里:哈希碰撞攻击是最笨的投毒方式——真正的供应链攻击走的是人性,不是数学。换锁之前,也许该先听听那个 2005 年就说过「别把 SHA-1 当安全」的人。

第二张脸

四件工具的两张脸

把四件事放回桌面:

  • Git 的 SHA-1:一把用了 20 年没出事的钥匙,因为「理论上可破」要被全世界换掉。工具的第一张脸是「完整性保障」,第二张脸是「其实没人真正靠它建立信任」。
  • ESP32:一只 WiFi 芯片,没写进文档的第二职业是收音机。第一张脸是「连接」,第二张脸是「监听」。
  • 犹他州 SB 73:一部「保护孩子」的法律,要求平台完成技术上不可能的定位。第一张脸是「保护」,第二张脸是「让所有人为一个州的孩子买单」。
  • Google Play:一个「保护你的安全」的门卫,同时是「决定你能见到谁」的门卫。法院撬开的不是门,是「门卫可以换」这件事本身。
  • NAT-ARC:模型以为自己在学猫,其实在学抽象规则。第一张脸是数据,第二张脸是语法。

「第二张脸」不是贬义词。它有时候是惊喜(几块钱的芯片是收音机、猫片藏着推理语法),有时候是隐患(钥匙其实不锁门、门卫其实在管人),有时候是荒诞(法律要求互联网假装没有隐私工具)。

2026 年的技术世界,越来越像一场「你以为 vs 它实际是」的猜谜游戏。规则很简单:每一件你天天用的东西,都值得你问一句——它的第二张脸,是什么?

分享:

评论(0)

暂无评论,来写第一条吧~

发表评论