<!-- title: 熔岩灯神课：如何制造不可预测 -->
<!-- domain: programming -->

# 熔岩灯神课：如何制造不可预测——Tom Scott 那条数百万播放的安全工程课深度解读

## 概述

你每天都在调用“随机数”：生成一个令牌、抛一次加密硬币、发一张验证码图片。但绝大多数写代码的人从没想过一个问题——**计算机是一台确定性的机器，给它同样的输入，它只会吐出同样的输出，那“不可预测”到底是从哪儿来的？**英国科普人 Tom Scott 在 2017 年走进 Cloudflare 旧金山总部，拍下了那条后来被反复引用的短纪录片：《The Lava Lamps That Help Keep The Internet Secure》——一面挂在大厅里的熔岩灯墙，正在给互联网加密提供随机种子。这条视频是“安全工程”最生动的一堂入门课：它用一个你看得懂的物理奇观，讲清了一个你看不见的基础设施问题。本文带你完整重走这条视频的论证路线，并补上它没讲的另一半：伪随机的百年谱系、几起真实发生的“随机数惨案”，以及这面墙在今天工程语境下的真实成色。

**数据说明**：本文写作时环境无法联网实时核验，以下热度数据为据频道页面的历史公开信息（量级表述），精确数字请以视频页实时显示为准。

## 一、视频基本信息

| 项目 | 内容 |
|------|------|
| 标题 | The Lava Lamps That Help Keep The Internet Secure（那些帮助守护互联网安全的熔岩灯） |
| 频道 | Tom Scott（@TomScottGo），数百万订阅量级（据频道页面） |
| 发布时间 | 2017 年（据频道页面） |
| 体量 | 约十分钟量级的实地短纪录片 |
| 热度 | 数百万级播放（据频道页面量级信息，未能实时核验）；长期被安全课程与博客引用为“随机性入门第一视频” |
| 拍摄地 | Cloudflare 旧金山总部大厅 |

说明一点：这不是一条蹭热点的新片。选它，是因为它符合“神课”的标准——十分钟、一面墙、一个问题，十年不过时。每当社交平台再度刷起“世界上最酷的机器”类话题，这条视频就会被重新翻出来转一圈；而只要你在写代码，它讨论的问题就每天从你指间流过。

## 二、核心主张拆解：十分钟里讲了哪五件事

### 要点一：先立真问题——“随机”是确定性机器最难的东西

视频没有从熔岩灯开始，而是从每个程序员的日常开始：程序里随手写下的 `random()`。Tom 指出一个被无数教程一笔带过的事实——**软件里的“随机数”绝大多数是伪随机（pseudo-random）**：它由一个确定性的算法产生，只要初始种子相同，产出的整条序列就一模一样。对你抽奖用的代码，这无所谓；但对密码学，这是致命的——攻击者同样知道算法，一旦猜到或复现了你的种子，你的“随机”密钥在他眼里就是一条可以重放的算术题。

于是真问题被精确地立起来：**在一台造不出意外、也不该出意外的机器上，如何找到连造机器的人都猜不到的东西？**这个提问方式是整条视频的第一处高明：先让你意识到自己每天都在“假装随机”，再带你去看有人怎么真的制造意外。

### 要点二：把物理混沌接进机房——那面熔岩灯墙

镜头随后切到 Cloudflare 旧金山总部的大厅：约一百盏熔岩灯（据视频画面与频道页介绍量级），蜡柱在灯管加热下不断隆起、断裂、合并，没有两秒钟是重样的。这个画面背后是流体力学里的经典现象——**瑞利-贝纳尔对流（Rayleigh–Bénard convection）**：底部受热、顶部冷却的流体中，浮力与黏滞力互相拉扯，形成不断变形的对流胞。它是混沌系统的标准教材案例：方程是确定的，但对初始条件极端敏感，任何一丝温度扰动、一次空气流动、一个走进大厅的人投下的影子，都会让整面墙的下一秒彻底改写。

视频的点睛之笔在于指出：这面墙在物理上**完全确定，在实践中完全不可预测**。这两句话同时成立，正是它区别于“掷骰子”式花招的地方——你不需要玄学，只需要一个复杂到没人算得动的确定性系统。

### 要点三：从图像到种子——噪声如何变成密钥材料

第三步是全片的技术内核：Cloudflare 用一台相机定期拍摄这面墙，把得到的数字图像送进哈希函数，压缩成一串均匀的比特，作为随机种子喂给密码学安全的随机数生成器（CSPRNG），再由后者产出用于加密会话的密钥材料。一张照片里藏着的噪声远比肉眼看到的多：蜡柱形状、灯泡闪烁的相位、镜头传感器的电噪声、大厅光线的细微变化——哪怕画面看起来一模一样，比特层面也几乎不可能重合。

这里有一个值得展开的工程常识（视频点到为止）：熔岩灯墙**不是**密钥本身，而是**种子**。种子喂给 CSPRNG 后，后者可以高速、稳定地产出海量“看似随机”的比特流。物理世界负责提供那宝贵的、一次性的“不可预测性”火种，数学负责把火种烧成日常使用的炉火。

### 要点四：这不是行为艺术——一条真实的工程谱系

视频顺带交代了这面墙的“血统”：上世纪九十年代，硅图公司（SGI）就做过一模一样的事，把摄像头对准熔岩灯为工作站生成随机数，还注册了专利（据公开专利记录，其名为 LavaRand，核心正是“用混沌系统的数字化图像给伪随机数生成器播种”）；Cloudflare 在 2017 年把这套思路搬进了自己的大厅，并直接借用了这个名字。据频道相关报道，Cloudflare 伦敦办公室还有一台双摆装置——双摆是比熔岩灯更“恶名昭著”的混沌系统——干的是同一件事。

这段谱系交代很重要：它把视频从“科技公司猎奇”拉回“工程传统”的语境。用物理噪声喂计算机，是一代代工程师反复验证过的正经手艺。

### 要点五：收尾给分寸——墙是输入之一，不是安全边界

全片最容易被忽略、也最见诚意的是结尾的分寸感：这面墙的产出会与操作系统的熵池、处理器内置的硬件随机数指令等其他熵源**混合**使用，它是“输入之一”，而不是唯一防线。Tom 在片中也坦率承认，这面墙带有展示性质——但它是一堂挂在公司门口的、每天都真实参与生产的公开课。

## 三、知识与理论溯源：随机数这件事的真历史

**“用算术造假随机”是老传统。**冯·诺依曼在 1940 年代末提出的“平方取中法”是最早的伪随机算法之一——他也正是最早警告“任何用算术方法产生随机数的人都处在罪孽中（Any one who considers arithmetical methods of producing random digits is, of course, in a state of sin）”的人。这句常被引用的话与本文主题严丝合缝：伪随机从诞生第一天起就被发明者本人打上了“将就”的标签。

**“不可预测”是数学共识。**1997 年松本真与西田拓史发表的梅森旋转算法（Mersenne Twister）至今仍是 Python、R 等语言默认的通用随机引擎，但它的输出序列在观察足够多的比特后可以被反推——这是教科书级的“通用随机”与“密码学安全随机”的分界线。密码学场景必须使用 CSPRNG（如基于 ChaCha20 的流式生成器），并由操作系统统一维护熵池：Linux 早在 1994 年就由 Theodore Ts'o 引入了 /dev/random 与 /dev/urandom 设备；2015 年 Python 通过 PEP 506 专门新增 `secrets` 模块，官方理由正是开发者长期误把通用 `random` 模块用于安全场景。

**“熵从哪来”是基础设施问题。**早期操作系统靠键盘中断间隔、磁盘寻道抖动等“世界的毛边”攒熵；2012 年起 Intel 在主流处理器中内置 RDRAND 一类硬件随机指令；2020 年 Linux 5.6 由 Jason Donenfeld 重写了随机子系统，系统完成初始化后 /dev/random 不再阻塞。工程界还留下过几座“反面纪念碑”：1995 年，伯克利的 Ian Goldberg 与 David Wagner 证明 Netscape 浏览器的 SSL 用当日时间加进程号做种子，随机数被当场破解；2008 年 Debian 一次代码清理误删了 OpenSSL 的熵源注入，导致全平台密钥只可能在 32768 个变体里猜（CVE-2008-0166）；2012 年 Lenstra 等人的研究在全网数百万把 RSA 公钥中发现了成对的共享素数，论文标题《Ron was wrong, Whit is right》一语成谶。

**“随机数写错=真金白银”也不断被验证。**2010 年 fail0verflow 团队利用索尼 PS3 签名时复用固定随机数 k 的漏洞，直接反推出签名私钥；2022 年，以太坊虚address生成工具 Profanity 因随机数实现缺陷被攻破，据多方报道，数百万美元资产在数日内被洗走。熔岩灯墙的对面，站着的就是这些墓碑。

## 四、批判性审查：哪些是真的，哪些要打折

**证据充分的部分。**熔岩灯墙真实存在且持续运行，机制描述与 Cloudflare 官方工程博客（如 2017 年的 LavaRand 技术文章）一致；“物理图像作熵源”有 SGI 专利与多年生产实践背书；“伪随机不可用于密码学”是安全行业的铁律，反面案例名单足够长。

**需要打折的部分。**“互联网的安全靠熔岩灯”是标题修辞——Cloudflare 自己也把墙描述为多个熵源之一，即便这台相机坏掉，TLS 会话照样能从操作系统与硬件熵源取得种子。把它理解成“没有这面墙互联网就会裸奔”，是对视频的过度引申。同样要打折的还有“熵饥饿”叙事：视频拍摄于 2017 年，而 2020 年后的现代操作系统与硬件上，系统级熵已不再稀缺——熔岩灯在今天更多是一道保险和一堂展示，而非刚需。

**存在争议的部分。**安全社区对这面墙的评价长期分裂：一派认为它本质是“安全剧场”（security theater）——固定机位拍固定场景，理论边际熵有限，真正的安全性来自多源混合与密码学工程；另一派则认为“剧场”恰恰是它的价值——把一个看不见的基础设施变成每个访客都能看懂的展品，教育意义与象征意义都是真产出。平心而论，两派都对：**从熵贡献看它是装饰，从工程文化看它是杰作。**

## 五、认知提升与实用启示

**第一，给代码立一条铁律：令牌、密钥、验证码，永远走系统级密码学随机源。**Python 用 `secrets` 而不是 `random`，Go 用 `crypto/rand` 而不是 `math/rand`，浏览器端用 `crypto.getRandomValues` 而不是 `Math.random`。写完代码后做一次专项自查：全局搜索所有随机调用，逐个问一句“这个输出的可预测性，有没有人能押注？”——答案暧昧的那些，就是潜在事故。

**第二，把“多源混合”当成通用设计哲学。**熔岩灯墙教会安全工程的那一课，可以平移到几乎所有系统设计里：单一关键输入，无论看起来多可靠，都值得配一条独立来源，混过哈希或表决再使用。熵源混合、多活机房、多供应商依赖，背后是同一个直觉——**让“全部失效”这件事在概率上变得荒谬。**

**第三，学一学这种“把基础设施做成展品”的表达。**工程师普遍会写文档、画架构图，但极少有人会把自己的核心依赖变成一个路过的人都能提问的实体。下次你要向非技术同事解释一个“看不见但很重要”的组件时，先别急着做 PPT——想想能不能给它一面墙。

## 六、一张图看懂：不可预测性的旅程

```mermaid
flowchart TD
    A["物理混沌：熔岩灯墙"] --> B["相机定期采样"]
    B --> C["数字图像：海量噪声"]
    C --> D["哈希压缩"]
    D --> E["物理熵：随机种子"]
    F["系统熵池"] --> G["多熵源混合"]
    H["CPU硬件随机指令"] --> G
    I["双摆装置：伦敦办公室"] --> G
    E --> G
    G --> J["密码学安全随机数生成器"]
    J --> K["会话密钥材料"]
    K --> L["每一次连接的密钥都不同"]
```

## 延伸阅读

1. Cloudflare 工程博客《LavaRand in Production: The Nitty Gritty Details Behind Cloudflare's Newest Entropy Source》（2017）——熔岩灯墙从图像到种子的完整技术细节，作者是把视频里一句话讲成一篇工程论文的人。
2. Wikipedia「LavaRand」词条——从 SGI 1990 年代原版到 Cloudflare 2017 年复刻的完整谱系，适合作为本文第二条时间线。

## 参考来源

1. [The Lava Lamps That Help Keep The Internet Secure | Tom Scott](https://www.youtube.com/watch?v=1cUUfMeOijg) — 本文解读的视频本体（据频道页面；亦可在 [Tom Scott 频道](https://www.youtube.com/@TomScottGo) 或 [站内搜索](https://www.youtube.com/results?search_query=Tom+Scott+The+Lava+Lamps+That+Help+Keep+The+Internet+Secure) 按标题检索）
2. [LavaRand — Wikipedia](https://en.wikipedia.org/wiki/Lavarand) — SGI 原版方案与 Cloudflare 复刻的历史脉络
3. [Cloudflare Blog: LavaRand in Production](https://blog.cloudflare.com/lavarand-in-production-the-nitty-gritty-details-behind-cloudflares-newest-entropy-source/) — 熵源采集与混合机制的官方工程说明
4. [/dev/random — Wikipedia](https://en.wikipedia.org/wiki//dev/random) — Linux 熵池三十年演进（1994 年引入、2020 年重写）
5. [Douglas Engelbart](https://en.wikipedia.org/wiki/Douglas_Engelbart) 相关条目外的对照阅读不适用于本文，此条替换为 [Mersenne Twister — Wikipedia](https://en.wikipedia.org/wiki/Mersenne_Twister) — 通用伪随机与密码学安全的分界线

---
> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护，聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。
> 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
