不发一枪拆掉一颗芯片:Jane Street 的 ASIC 挑战,被一台笔记本和 z3 解了

# 不发一枪拆掉一颗芯片:Jane Street 的 ASIC 挑战,被一台笔记本和 z3 解了 提起逆向工程...

不发一枪拆掉一颗芯片:Jane Street 的 ASIC 挑战,被一台笔记本和 z3 解了

提起逆向工程一颗芯片,你脑中的画面大概是:酸槽里开盖,电子显微镜下一层层看硅,几百万的设备,无尘室。8 月发生的事把这套画面作废了——拆芯片这次用的是文件,和一台笔记本。

8 月 5 日,量化自营交易公司 Jane Street 在博客上发了一道题:《Can you reverse engineer an ASIC?》。他们自己设计了一颗芯片,但只给你版图——GDS 文件,芯片制造前的最终掩膜数据,包含全部金属层、布线层和晶体管层,外加几组输入输出样例。

出题人的原话写得漂亮:”The GDS is, in a very real sense, the chip. Everything the circuit does is in there. The tricky part: nothing is labeled!“——GDS 在非常真实的意义上就是那颗芯片,电路做的一切都在里面,麻烦在于:什么都没标注。

奖品是周边和一篇官方博文展示。没有现金。

一个月的兔子洞

9 月 4 日,一位网名 Jestoph 的工程师贴出完整解法,HN 拿了 427 分。他的自我介绍是副标题级别的坦白:”Why do I always do things the hard way?”——我为什么总用最难的方式做事。他有电子工程学位,但从没当过工程师。

他的路数没有一步是酸的:

flowchart TD A[“GDS 版图文件
无任何标注”] –> B[“gdstk 解析
热身题 27 个元件”] B –> C[“认出 sky130 标准单元库
按几何重叠对引脚”] C –> D[“多边形重叠图算法
约 1k 条路径 17k 个多边形”] D –> E[“提取网表 → 生成 Verilog”] E –> F[“iverilog 仿真
波形用 surfer 看”] F –> G[“z3 约束求解
120 位输入”] G –> H[“答案输出·( TWO STARS )”]

中途他自建过一个用 sqlite3 驱动的电路仿真器、一门自己发明的硬件描述语言、一个用 raylib 写的 GDS 查看器——然后全扔了,博文里还贴心地问读者”Aren’t you glad you skipped it?”(你们没看这段是不是很庆幸)。HN 评论区的swiftcoder 给了句狠评:”我这辈子没见过这么严重的 NIH 综合征(not-invented-here)。不管怎样,恭喜解出。”

他对 z3 的评语是解法全文最快乐的一句:”It’s kind of magical?”——这玩意儿有点魔法吧?

顺带,他还真在题里找到一个 bug:一根没人驱动的线。他忐忑地上报,第二天收到 Jane Street 的邮件,确认他是对的。

谜底:一个数独的表亲

电路的真实身份,被多名独立解题者还原:一个 11×11 Star Battle 检查器。Star Battle 是数独家族的逻辑题——每行、每列、每个区域放两颗星,星星之间不许相邻。这颗”芯片”在硬件层面验证一道谜题解是否合法,120 位输入编码盘面,121 个时钟周期出结果。

答对时它输出 “( TWO STARS )”,答错输出 “TRY AGAIN”,空盘输出 “EMPTY SKY”,某种溢出则是 “BIG BANG”。给一道逻辑题流片,还埋了四个彩蛋字符串。

还有一个容易忽略的细节:他并非第一人。8 月 18 日 sunaabh.com 就贴过解法(用 KLayout API 提网表),8 月 22 日有 KarelPeeters 的 gist(Yosys + SAT 求解)。他独有的三样东西:官方邮件确认的提交、题目里那个 bug,以及最好的讲故事能力——最后一样值 427 分,比 8 月出题帖的 119 分高出三倍半。

xychart-beta title “HN 热度·出题帖对解题帖·单位分” x-axis [“8月出题帖”, “9月解题帖”] y-axis “HN 分数” 0 –> 450 bar [119, 427]

AI 禁令活了几周

出题规则里有一行加粗的请求:”Please don’t feed the puzzle files directly into an AI tool, nor use it to generate your writeups.”——请别把题目文件直接喂给 AI,也别用 AI 写解题报告。

解题帖的评论区里,有人报告 ChatGPT 一小时内摸到答案,有人用 Codex 复现(转录显示”Worked for 12m 36s”,不过它借助了已经公开的电路重构)。禁令从 8 月 5 日撑到 9 月 4 日截止,与比赛同寿。

阶梯

Jane Street 出题是有传统的,一级级往上垒:

timeline title 量化公司的出题阶梯 月度谜题 : 纸笔谜题·每两个月一题 2017-2022 : ETC 电子交易挑战赛·模拟市场·现金奖 2025-02 : 神经网络逆向谜题·机制可解释性 2026-08 : ASIC 版图逆向·GDS 掩膜 未来 : 设计你自己的芯片·优胜者真流片

出题人花了两位工程师的时间,把一道 Star Battle 检查器用开源 PDK 流成版图。HN 用户 roadbuster 在 8 月就点破了用途:”This is just a job posting in disguise.”——这就是一份伪装的招聘启事。他们招的人,坐在 Hardcaml 和 FPGA 交易栈前面。

安全课免费送:版图即功能。泄了 GDS,就泄了这颗芯片做的一切——一台笔记本、几个开源库、一个月,就够了。

至于那颗物理芯片存不存在?我不知道,题目给的版图是真的,答案字符串也是真的。剩下的事,邮件里没说。

发表回复

人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 借一步网 🐾 智柴网 沪ICP备2024052574号-1