九月三十日是内布拉斯加州数据中心年度资源报告的法定截止日,所有在运的数据中心都要向州里交账。
当地电视台 10/11 的记者拿到了谷歌林肯数据中心的申报文件,申报主体写的是一家名叫 Agate LLC 的壳公司。
文件里用电量和用水量两栏被黑色方块盖得严严实实,申报方援引三条州法条主张这些信息属于商业秘密。
记者把光标移到黑框上,按住鼠标左键拖过涂黑区域,复制,再粘贴进一个空白文档。
黑框下面的数字一个不少,原封不动地全部显现在新文档里。
没有黑客入侵,没有内部爆料,没有任何漏洞利用,一次全选复制就击穿了谷歌的保密主张。
这大概是本年度成本最低的一次数据泄露,攻击载荷是每个人键盘上都有的复制粘贴快捷键。
黑框盖住的数字是五十二点六五兆瓦的峰值用电,和上一年度一千三百二十九点九万加仑的用水量。
同一批文件里还躺着三家谷歌数据中心合计超过一点一七亿美元的二零二五年度预期退税金额。
10/11 电视台在九月三十日当天向州水资源能源与环境部提交了正式的公开记录申请。
讽刺的是申请还在走流程,公众却已经可以用复制粘贴读到全部被涂黑的内容。
这起事件同时撕开了两个话题,一个是 PDF 涂黑为什么失效的工程问题,一个是 AI 数据中心的水电账本。
前者是一个被反复重犯了二十多年的经典工程事故,后者是算力时代最敏感的资源透明度博弈。
我们先把工程问题拆个明白,再来读这份意外公开的账本里到底写了什么。
黑框为什么挡不住复制粘贴
要理解这次泄露,先要理解 PDF 文件内部的图层结构。
一个 PDF 页面不是一张扁平的图片,而是一组按顺序执行的绘图指令,这组指令叫做内容流。
文字在内容流里以文本对象的形式存在,每一个字符都带着字体、字号和精确的页面坐标。
阅读器把内容流从头到尾执行一遍,字符和图形按顺序被画到页面上,先画的在后画的下面。
涂黑工具在绝大多数办公软件里的实现,是往页面上叠加一个填充纯黑的矩形。
这个矩形可以是一个注释对象,也可以是直接追加到内容流尾部的一段矩形填充指令。
无论哪种实现,被盖住的文本对象都原样保留在文件里,一个字符都没有被删除。
渲染器按顺序先画文字再画黑框,于是人眼看到的是一块干净的黑,秘密看起来消失了。
但复制粘贴读的从来不是渲染出来的像素,而是内容流里的文本对象本身。
选中文本时光标按文本对象的坐标命中黑框下面的字,剪贴板拿到的是最原始的字符。
同一份文件交给屏幕阅读器朗读,黑框下面的数字会被一字不差地念给视障用户听。
搜索引擎的爬虫抓取这份 PDF 建立索引时,黑框下面的内容同样会被完整收录。
视觉上的不可见和信息上的不存在,是两件完全不同的事情,这次事故把它们焊在了一起。
这次泄露的申报文件里,电表数字和水表数字就以明文形式躺在黑框的正下方。
用任何 PDF 解析库都能把这些文本对象直接抽出来,连选中复制的动作都可以省掉。
下面这段十几行的 Python 代码,演示了穿透一份假涂黑 PDF 的完整过程。
from pypdf import PdfReader
reader = PdfReader("dcr_agate_2025.pdf")
page = reader.pages[3]
# 涂黑通常只是页面上叠加的填充矩形注释
for annot in page.get("/Annots", []):
obj = annot.get_object()
if obj.get("/Subtype") == "/Square":
print("发现涂黑矩形:", obj["/Rect"])
# 文本层从未被删除,直接穿透黑框
text = page.extract_text()
for line in text.splitlines():
if "megawatt" in line or "megagallon" in line:
print("黑框下面的明文:", line)
extract_text 方法读的是内容流里的全部文本指令,完全不关心页面上盖了什么颜色的矩形。
如果涂黑是直接画进内容流的矩形填充,连注释列表都不用遍历,文本抽取照样命中。
真正的红action工具走的是另一条路,它会把被标记的文本对象从内容流里物理删除再重写文件。
所以判定一次涂黑是否有效的方法论只有一条,对成品文件跑一次文本抽取看还能不能抽出来。
这类事故的受害者名单很长,而且不乏顶级机构和顶级律所。
二零一九年马纳福特案的法庭量刑文件用同样的方式涂黑,记者复制粘贴后读到了全部删节内容。
更早的案例可以追溯到政府调查报告和企业并购文件,事故模式二十多年没有变过。
每一次事故的根因都相同,操作人员把遮盖当成了删除,把眼睛当成了唯一的读者。
而真实世界里文件的第一批读者往往是解析器,解析器看到的世界和眼睛完全不同。
黑框之外还有四个泄密通道
就算涂黑做对了,PDF 里还有好几条旁路能把秘密送出去。
第一条是元数据,标题、作者、编辑历史里经常残留着不该出现的字段。
第二条是增量更新,反复保存的 PDF 会把旧版本对象完整留在文件尾部。
第三条是附件与缩略图,嵌入的原始文件和预览图常常绕过了所有清理流程。
第四条是字体子集,嵌入字体里留存的字符集有时会暴露被删除文本的轮廓。
所以完整的涂黑流程从来不是点一下按钮,而是一次对整个文件结构的审计。
专业的做法是先删内容、再清元数据、再移除增量历史,最后整体重写文件。
栅格化成纯图片是最保守的兜底方案,代价是文件失去搜索和复制能力。
交付前的验收动作只有一条,对成品跑一次文本抽取和元数据审计。
能抽出被涂黑的内容,就说明涂黑没有生效,文件必须打回重做,没有例外。
这次内布拉斯加的申报文件如果有任何一道文本抽取验收,账本就漏不出来。
安全工程的第一原理在这里同样适用,秘密必须不存在于交付物之中。
任何依赖视觉遮盖的保密手段,都默认对手只会用眼睛看文件,这个假设从来都是错的。
黑框下面的水电账本
工程问题讲完了,现在来读这份意外公开的账本。
林肯数据中心的申报主体 Agate LLC,报告峰值电力需求五十二点六五兆瓦。
这个功率量级折算下来,足以支撑数万张加速卡同时满负荷运转训练或推理任务。
用水方面,冷却塔、蒸发系统和场站运营上一年度合计消耗一千三百二十九点九万加仑。
这个水量大约可以灌满二十个奥运会标准泳池,听上去还不算夸张。
横向对比,这个数字还不到林肯市九月二十九日单日市政用水量的一半。
但真正惊人的是全州口径,已申报的六家数据中心去年合计用掉七点六五亿加仑水。
七点六五亿加仑足够灌满一千一百五十九点九三个奥运泳池,这只是一个小州的一年。
用水最多的是帕皮利恩的 Fireball Group LLC,同样是一家谷歌的壳公司。
它申报的二零二五年度用水量是五点四七八八亿加仑,一家占了全州申报量的七成以上。
退税数字同样躺在黑框下面,三家谷歌壳公司合计预期拿回一点一七亿美元。

三笔退税的明细如下表所示,全部来自内布拉斯加优势法案框架下的销售与使用税豁免。
| 申报主体 | 位置 | 关键申报数据 | 2025 预期退税 |
|---|---|---|---|
| Agate LLC | 林肯 | 52.65 MW 峰值 / 13.299 MG 用水 | $55,822,472 |
| Fireball Group LLC | 帕皮利恩 | 547.88 MG 年度用水 | $39,171,573.39 |
| Westwood Solutions LLC | 奥马哈 | 未单列 | $22,558,881 |
报告同时声明,另一个激励计划 ImagiNE Nebraska Act 项下没有收到也不预期收到任何款项。
Agate 的总建筑面积申报为二十八万八千五百三十平方英尺,大约相当于五个橄榄球场。
今年六月,林肯市刚开工一条造价一千万美元的污水管线,专门把冷却水送往回收处理场。
值得注意的还有命名策略,三家数据中心分别藏在玛瑙、火球和西木三个壳名字后面。
壳公司加商业秘密豁免,构成了一个双层的信息遮挡结构。
第一层遮住公司身份,第二层遮住资源消耗,两层服务于同一个目的,让外界无法估算规模。
数据中心为什么这么能喝水
账本里的水耗数字背后,是数据中心散热技术的代际选择。
芯片的功耗最终几乎全部转化为热量,而排出热量的主流方案之一是蒸发冷却。
蒸发冷却利用水蒸发带走汽化潜热,用水的消耗换取电的节省。
同样散掉一兆瓦的热量,水冷方案比纯风冷方案省下的电相当可观。
于是运营商面对的是一个水电置换的优化题,多用水就能少用电。
行业用 PUE 衡量电效率,用 WUE 衡量水效率,两个指标常常此消彼长。
在电价高、水价低的地区,运营商天然倾向于把水当成廉价冷源来烧。
内布拉斯加恰好是电价友好的州,但这笔账的另一半由市政供水系统在付。
明白这笔置换账,就明白为什么水耗数字比电耗数字更让运营商紧张。
电耗暴露规模,水耗暴露的是规模之外还暴露了选址的成本结构。
商业秘密为什么要罩住水表电表
数据中心行业坚持把水电消耗列为商业秘密,这套理由并非完全没有逻辑。
用电量可以反推算力规模,进而反推装机容量、客户结构和运营成本。
对竞争对手来说,一座数据中心的电表读数几乎等于一份免费的尽职调查报告。
但水资源和电网不是普通的生产原料,它们是典型的地方公共资源。
居民拧开水龙头用的水,和冷却塔里蒸发掉的水,来自同一个市政供水系统。
数据中心并网扩容抬升的电网投资,最终也会分摊进每一个用户的电费单。
这就是内布拉斯加今年政策收紧的直接背景。
州长皮伦七月二十日签署行政令,要求数据中心自报对水资源、电网和本地基础设施的影响。
州水资源能源与环境部为此专门成立了数据中心工作组,监督这套年报制度的执行。
问题出在制度设计本身,自报义务和商业秘密豁免被同时写进了同一套规则。
企业一边履行申报义务,一边合法地把最关键的数字整段涂黑。
被援引的三条法条分别保护商业信息、限制公开范围,并授权监管机构接纳保密主张。
结果是一套看起来透明、跑起来空转的披露制度。
申报报告确实公开了,任何人都能在州政府的公开查询系统里检索到这些文件。
但公开的是一堆黑框,制度要求的形式齐全了,制度想要的信息没了。
如果不是这次涂黑失效,这些数字要等公开记录申请走完流程才可能部分解冻。
一个制度漏洞用一个工程漏洞做了补丁,两个低级错误阴差阳错地成全了透明度。
这种巧合显然不该是公众知情权的唯一来源。
公开记录申请救不了一套空转的制度
有人会说,不是还有公开记录申请这条正规渠道吗。
渠道确实存在,但它的时延和不确定性都写在流程里。
申请提交之后,机构有法定的响应期限,还可以依法延长。
被申请方可以主张豁免,申请人不服可以再申诉,一来一回就是几个月。
就算最终拿到文件,到手的版本依然可以是依法涂黑后的版本。
也就是说正规渠道跑完全程,公众看到的可能还是那堆黑框。
这次事件里最荒诞的一幕正在于此。
记者九月三十日提交了公开记录申请,同一天用复制粘贴读到了全部内容。
制度的正门紧闭,侧门却因为一个工程失误敞开着。
公众知情权这次不是被制度保障的,而是被别人的低级失误施舍的。
真正需要修补的不只是 PDF 操作流程,还有豁免条款的适用范围。
用水用电这类公共资源数据,本来就不该装进商业秘密的篮子里。
商业秘密保护的是配方和工艺,不是公共资源消耗的流量计读数。
把流量计读数列为秘密,本质上是把公共资源的外部性藏进了黑箱。
内布拉斯加的行政令已经迈出了第一步,至少申报义务本身建立起来了。
下一步该补的课很清楚,资源消耗数据应当强制公开且不可豁免。
全州六家数据中心七点六五亿加仑的年用水,理应是报表上最透明的数字。
技术社区在这件事上也有可贡献的部分。
公开文件发布前的自动化审计,本来就该是一条 CI 流水线。
对每份待发布的 PDF 跑一次文本抽取和元数据扫描,成本几乎为零。
把涂黑验收做成流水线里的一个硬门禁,假涂黑就没有出厂的机会。
这比任何操作规范培训都可靠,因为人总会累,流水线不会。
同样值得流水线化的还有公开查询系统本身的可用性。
申报文件已经躺在州政府的数据库里,检索体验却仍停留在上世纪。
透明的最后一公里不是法律问题,而是工程问题。
算力时代的水电账本是公共议题
把镜头拉远,这次泄露发生在 AI 算力大扩张的节点上。
每一座新建的超大规模数据中心,背后都是大模型训练与推理的电力胃口。
五十二点六五兆瓦只是一座中型站点的峰值,头部厂商的单一园区早已迈向吉瓦量级。
水电消耗因此不再只是企业的成本科目,而是地方政府必须面对的规划变量。
居民有权知道市政供水系统里有多少水正在冷却别人家的显卡。
纳税人有权知道自己让渡出去的税收,换回了什么样的就业与税基。
一点一七亿美元的年度预期退税,对应的公共账本理应能摊在阳光下。
这次事件之后,内布拉斯加的公开记录申请还在流程里,数据中心工作组还在运转。
但技术社区从这起事故里拿走的东西更直接。
它再次证明了一个朴素的工程结论,凡是不删除的秘密都不算被保护。
涂黑之前先想清楚,你要遮住的是别人的眼睛,还是文件里的数据。
如果是后者,唯一正确的答案是让数据从文件里彻底消失。
对看热闹的人来说,这是一个关于复制粘贴的段子。
对做系统的人来说,这是一份免费的安全审计反面教材。
对关心算力成本的人来说,这是一份意外公开的稀缺账本。
三层读法各有收获,这正是这起事故值得被完整拆解的原因。
下一次再看到被涂黑的公开文件,你也许也会忍不住选中它试一试。
而写文件的人最好默认,总有一天真的会有人这么做。