技术与系统的底层概念
信息熵、零知识证明、同态加密、多方安全计算、拜占庭将军、非线性跃迁——六个概念,两条主线:不信任的世界里怎么合作,以及系统为什么不是匀速前进的。
有些概念的漂亮之处在于,它把一个你以为无解的问题,变成了一个有解的问题。
这篇想聊六个这样的概念。它们分别属于信息论、密码学、分布式系统、物理、生物和复杂系统,看着八竿子打不着,但其实归成两组就清楚了:前半部分回答的是”在一个谁都不信谁的世界里,怎么合作”,后半部分回答的是”系统为什么不是匀速前进的”。
先从最底下那块地基说起。
信息熵:先搞清楚”信息”到底是什么
1948 年,香农(Claude Shannon)发表《通信的数学理论》,给了”信息”这个词一个数学定义。这篇论文基本上是凭空造出了一整个学科。
他的答案反直觉:信息的本质不是文字,不是声音,不是内容。信息是对”不确定性被消除了多少”的度量。
对比两句话就明白了。
有人告诉你”明天太阳从东边升起”。这句话的信息量是零。不是因为它没用,是因为你本来就百分之百确定,它没有消除任何不确定性——用信息论的话说,这句话的熵为零。
有人告诉你”明天中午某只股票会暴跌 50%“。这句话信息量炸裂,因为它把一个巨大的不确定性一把摁死了。
所以熵衡量的是”不确定性有多大”。熵越高,系统越混乱、越不可预测;获取信息的过程,本质上就是在跟无序对抗,把混乱度往下压。
这个定义有个非常实际的后果:一段信息的熵,决定了它最多能被压缩到多小。 ZIP、RAR 这类无损压缩,干的事就是把冗余(也就是可预测的部分)挤掉,理论极限就卡在香农熵这条线上。你没法把一个真正随机的文件压缩到一半,因为里面根本没有冗余可挤。
大语言模型也是同一个东西的另一面。模型训练时优化的交叉熵损失,说白了就是在问:给定前面这些 token,你对下一个 token 有多不确定?模型越强,这个不确定性越低。预测和压缩,在数学上是一回事。
记住”熵为零 = 没有透露任何信息”这个说法,下一节马上要用到。
一、不信任的世界里,怎么合作
接下来四个概念,解决的是同一类问题的四个侧面:我不信你,你也不信我,但我们必须一起把某件事办成。
零知识证明:证明我知道,但一个字都不告诉你
零知识证明(Zero-Knowledge Proof)要解决的矛盾是:我怎么向你证明我掌握某个秘密,同时不向你泄露关于这个秘密的任何信息?
听起来自相矛盾。举个最好懂的例子。
假设你有一个红球和一个绿球,两个球除了颜色完全一样。你朋友是红绿色盲,他坚持认为这俩球颜色是一模一样的。你想证明它们不一样,但又不想告诉他哪个是红的。
做法是:你把两个球交给他,他背过身去,自己决定要不要把两只手里的球对调,然后转回来问你:“我换了吗?“你一眼就能答出来。如果你在瞎猜,答对的概率是 50%。但这个流程重复二十次,你每次都答对——他瞎猜蒙对二十次的概率是一百万分之一。到这个时候,他有充分理由相信这两个球确实不一样,而整个过程中,他没有拿到任何关于”哪个球是红色”的信息。
一个合格的零知识证明要满足三条:是真的就能证出来(完备性)、是假的就骗不过去(可靠性)、验证方除了”这事是真的”以外什么都没学到(零知识性)。
第三条恰恰就是信息论意义上的零——验证者看完整个证明过程,获得的信息熵是零。这个名字不是修辞,是字面意思。
现实中它已经落地了。以太坊的 zk-Rollup 用它把几千笔交易压成一个证明扔回主链,主链不用重跑就能确认这批交易全部合法。Zcash 用它做匿名转账,能证明”这笔钱确实是我的且我没有花过两次”,但不暴露谁转给了谁、转了多少。还有一类正在推的应用是数字身份:向酒吧证明”我满 18 岁”,而不用把身份证上的出生日期、住址、证件号一股脑交出去。
最后这个场景,可能是普通人未来最能受益的方向。现在的验证逻辑全是”你把底牌全摊开,我从里面挑我需要的那一条”,这才是隐私泄露的真正源头。
同态加密:戴着手套隔箱操作
如果说零知识证明是”我不给你看数据,但能证明我是对的”,那同态加密(Homomorphic Encryption)就是”我把数据锁进盒子交给你,你看不见里面是什么,但你居然能隔着盒子对它做运算”。
打个比方。你有一块金条,想找工匠加工成项链,但怕他偷金子。于是你把金条锁进一个密闭的玻璃箱,箱子上带两只密封橡胶手套。工匠把手伸进手套,隔着玻璃完成全部加工,然后把箱子还给你。你用钥匙打开,项链已经做好了,金子一克没少,而工匠自始至终没碰到过金条本身。
数学上这件事成立,是因为某些加密方案满足这样的性质:密文上的运算,能对应到明文上的运算。 你在乱码上做加法,解密之后得到的正好是原始数据的和。
2009 年 Craig Gentry 在博士论文里给出了第一个”全同态”方案,也就是加法和乘法都能任意组合地做下去。这在密码学界是里程碑级的事件。
但这里必须泼一盆冷水,因为大部分科普文章会跳过这段。
全同态加密现在慢得离谱。 同样一个计算,在密文上跑比明文上跑慢几个数量级——这些年优化了很多,但量级依然吓人。所以”把医疗数据加密后丢给大模型,让它在乱码上推理”这种描述,目前只是愿景,不是产品。真正在用的是”半同态”这类受限方案:只支持有限的运算类型,性能勉强能接受,用在隐私求交、加密数据库检索这些具体场景里。
把它称作数据隐私的圣杯是准确的——圣杯的意思就是还没拿到。
多方安全计算:一群人一起算,谁都不摊牌
多方安全计算(MPC,Secure Multi-Party Computation)针对的是另一个场景:一群互相不信任的人想共同算出一个结果,但谁都不愿意公开自己的输入。
最著名的引子是姚期智 1982 年提出的百万富翁问题:两个富翁想比谁更有钱,但都不肯说出自己的具体身家。MPC 给出的解法是,通过在两人之间传递若干组经过伪装的数据,最后双方都能确信”A 比 B 多”或者反过来,但谁也无法从过程里逆推出对方的具体数字。
这不是理论玩具,它真的跑过。2008 年丹麦的甜菜合同拍卖就用了 MPC:几千个甜菜农户和加工厂要撮合出一个统一的成交价,但农户不愿意让厂方知道自己的成本底线,厂方也不想暴露自己的估值。三方各持一份密钥,联合算出了均衡价格,谁的报价都没有泄露。这是学界公认的第一个大规模实用案例。
在中国语境下更常被提起的是打破数据孤岛:三家互为竞对的医院各有一部分病例,法律和商业上都不可能直接共享,但通过 MPC 可以联合训练出一个更强的模型,过程中每家的原始数据都不出本地。
这里得区分一下,因为经常被混为一谈:联邦学习和 MPC 不是一个东西。 联邦学习是各方在本地训练、只交换模型梯度,它默认梯度本身是安全的——而事实上从梯度里反推原始数据是有攻击手段的。MPC 是给这个过程加上密码学保证的那一层。实际系统里两者经常叠着用,联邦学习负责工程架构,MPC 负责把交换环节的安全性焊死。
拜占庭将军问题:叛徒混在里面时,怎么统一行动
几支军队围住一座城,将军们相隔很远,只能靠传令兵送信。他们必须达成一致:要么明天九点一起进攻,要么一起撤退。如果有人上有人不上,就会被各个击破。
麻烦在于,将军里可能有叛徒,会对不同的人说不同的话;传令兵也可能被抓、信件可能被伪造。在这种情况下,忠诚的将军还能不能保证达成一致行动?
这就是 Lamport、Shostak 和 Pease 在 1982 年提出的拜占庭将军问题,分布式系统的奠基问题之一。计算机网络面对的是一模一样的困境:有的机器会宕机(传令兵迷路),有的机器会中毒后主动发假数据(叛徒将军)。
这里要纠正一个流传很广的说法:比特币不是第一个解决拜占庭问题的方案。 Lamport 那篇论文本身就给出了解法,结论是只要叛徒数量 f 满足总人数 n ≥ 3f+1,忠诚将军就一定能达成一致——也就是叛徒不能超过三分之一。1999 年的 PBFT 算法更是把它做到了实用性能。
但这些方案都有一个隐含前提:参与者名单是已知且固定的。 你得先知道场上有几位将军、分别是谁。
比特币解决的是一个更狠的变种:网络完全开放,谁都能随时加入,没有名单。这时候”三分之一”的约束直接失效了——因为一个人可以伪造一万个身份,这叫女巫攻击(Sybil Attack)。中本聪的思路是把投票权从”身份”改绑到”算力”上:你想多投一票,就得多烧一份电。伪造身份是免费的,伪造算力不是。作恶的成本被强行拉到了物理世界里。
代价也要说清楚。PoW 给出的不是确定性的最终一致,而是概率性的——一笔交易被埋得越深,被推翻的概率越低,但严格来说永远不等于零。等六个区块确认这个习惯,就是从这来的。用巨大的能源消耗换取开放网络里的共识,这是一笔交易,不是免费的午餐。
二、系统不是匀速前进的
换个话题。上面四个讲的是”怎么合作”,下面这组讲的是另一件事:系统在积累的时候看起来毫无动静,越过某条线之后突然结构性剧变。
人脑习惯的是线性因果:投入一分,收获一分。但真正决定大局的规律,基本都不是线性的。
相变:物理学的版本
最直观的例子。一锅水从 10°C 烧到 50°C、90°C、99°C,除了变烫,什么本质变化都没发生。再加 1°C 到 100°C,水开始沸腾,变成形态完全不同的水蒸气。
这一度之差,就是相变点。
但真正有意思的细节在这里:水到了 100°C 之后,你继续加热,温度不再上升了。 一公斤水从 99°C 升到 100°C 只需要大约 4.2 千焦,而把这一公斤水全部变成蒸汽,还得再往里灌大约 2257 千焦——相当于把它再”升温 540 度”的能量。这部分能量叫潜热,它没有变成温度,全部用在了拆散分子之间的结构上。
从外面看,这段时间温度计纹丝不动,好像什么都没发生。实际上系统内部正在被彻底重组。
映射到现实,很多社会变革、股市崩盘、文化现象的爆发都是这个形状:临界点之前,压力怎么积都风平浪静;一旦越线,整个结构在几天内坍塌或重组。而最容易被误读的,恰恰是那段”温度计不动”的潜热期。
间断平衡:生物学的版本
达尔文认为进化是缓慢、连续、匀速的。1972 年,Eldredge 和 Gould 提出了不一样的看法,叫间断平衡(Punctuated Equilibrium):化石记录里根本看不到那条平滑的斜线,看到的是”长期死寂 + 短暂爆发”。
一个物种可能几百万年形态基本不变,然后遇上环境剧变——小行星、冰期——在相对极短的几万年里迅速分化出一大批新物种。注意这个”短”是地质尺度上的短,几万年对我们来说依然长得没边。
职业生涯大概率也是这个形状。你可能在一个岗位上写了三五年代码,能力和收入都看不出台阶,这是平衡期;然后某天行业底层技术塌方式变化,或者你跳进一条全新的赛道,认知和位置在半年里完成了过去五年没完成的事。
涌现:复杂系统的版本
涌现(Emergence)这几年因为大模型火得一塌糊涂,一句话概括就是”整体大于部分之和”:单个个体聚到一定数量之后,群体突然表现出个体完全不具备的能力。
蚂蚁是自然界的例子。一只蚂蚁只有几条机械本能,没有全局视野,也没人指挥。但几十万只聚在一起,会自发建出通风、排水、恒温的地下宫殿,甚至种真菌搞农业。这个”设计”不存在于任何一只蚂蚁的脑子里,它是从简单规则的大量交互中长出来的。
大模型是技术界的例子。参数量小的时候,模型只会说车轱辘话;规模堆上去之后,突然出现了多步推理、少样本学习这类小模型完全做不到的能力。
不过这里要加一个重要的注脚,因为这是当前学界真正有争议的地方。
2023 年有一篇论文(Are Emergent Abilities of Large Language Models a Mirage?,后来拿了 NeurIPS 的最佳论文)提出了一个尖锐的反驳:所谓”能力突然涌现”,很大程度上可能是评测指标造成的错觉。如果你用的指标是”答案必须完全正确才算分”,那模型的能力其实是在连续平滑地提升,只是在跨过某个门槛之前,得分一直是零;换成连续型指标去衡量,那条曲线就变得相当平滑了。
也就是说,跳跃的可能不是模型,而是我们的尺子。
这不代表涌现是假概念——蚂蚁那种是实打实的。但”大模型在某个参数量突然开窍”这个流行叙事,目前证据没有大家以为的那么硬。写科普的时候把有争议的东西说成定论,是最容易被打脸的一类失误。
临界质量:核物理的版本
临界质量(Critical Mass)本来是核工程概念。铀-235 的体积太小时,裂变产生的中子还没撞上下一个原子核就跑到球体外面去了,链式反应无法自持。只有质量达到某个下限,中子的产出和逃逸才会打平,反应才能持续下去。一个裸露的铀-235 球,这个数大约是 52 公斤(加上中子反射层能显著降低)。
这个模型被搬到商业里,最典型的是网络效应。一个社交产品只有一千人用的时候几乎没有价值,随时会死;但只要用户量跨过那个门槛,用户自己开始拉人,增长就变成自持的链式反应。
这里也有个容易被忽略的点:临界不是只有一个方向。产品的用户量掉到某条线以下,反向的链式反应同样会启动——朋友都走了,你也没理由留下。很多产品的死亡是雪崩式的,原因就在这。
顺便说一句关于”积蓄能量”
写到这一般会有一个收尾:既然规律是非线性的,那么在你拼命努力却看不到结果的时候,你不是在原地踏步,只是在积蓄能量,等待属于自己的那次相变。
这话听着很暖,但它有个毛病:无法证伪。 真正在积蓄能量的人和真正在原地打转的人,从”看不到结果”这个表象上是完全一样的。用它安慰自己,可以无限期地续下去。
如果非要找一个能区分的判据,我觉得是有没有新的输入。相变要靠持续灌进去的能量,间断平衡要靠环境剧变,临界质量要靠不断加进去的铀。第三年重复第一年的工作,那不是潜热期,那就是恒温。
所以这句话应该反过来说:非线性规律不保证你会有那次跃迁,它只保证一件事——如果你真的在往里加东西,那么那段看不到反馈的日子,是这个过程本来就长的样子。
评论
评论加载中……