← 返回目录


关于看透与解构:黑客心态

钻研人类记忆,探索复习算法。改善教育公平,践行自由学习。

40 👍 / 1 💬

我将安全/黑客心态定义为极致的还原论:忽略系统表层的抽象和限制,仅仅将其视为一堆底层零件的来源,并将其操纵组装成一个截然不同的、具有不同(通常也是非预期)功能的系统。

摘要

为了在此做个类比并延伸一下 Dullien 在 2017 年的观点,我认为,那些出人意料的图灵完备系统和「怪异机器」与抢劫题材电影、千王骗局或舞台魔术都有着共通之处:它们都共享着一种特定的思维范式,我们或许可以称之为安全心态(security mindset)黑客心态(hacker mindset)
它们(包括黑客技术、游戏速通社会工程学等)的共同点在于,它们证明了那种被大肆吹捧的「黑客心态」,从根本上讲就是一种走向极致的还原论,在这种心态下,人们能够「看透」表层的抽象,直指可以被任意操纵的底层现实。 就像《黑客帝国》里的尼奥(Neo)一样——拿它来比喻黑客技术实在烂俗至极,但这烂俗恰恰是因为它深入人心——一个人通过看透物体的表面幻象而获得开悟,从而看清了构成整个母体(Matrix)的那一行行永无止境的绿色代码,反之亦然。(底层全都是相互映射的表象地图!)
在所有这些情况中,基本原则都是黑客在问自己:「现在我面前有一个系统 W,它伪装成是由几个 X 组成的;然而,它实际上是由许多 Y 组成的,这些 Y 在底层构成了一个完全不同的系统 Z;现在,我要把那些作为障眼法的 X 抛诸脑后,去弄清楚底层的 Z 究竟是怎么运作的,这样我就可以利用 Y,随心所欲地改变外在的 W 了。」

抽象至关重要,但就像许多有生命的东西一样,它也是危险的,因为「抽象泄露法则」告诉我们,抽象机制总会有漏洞。 (「年轻人,你确实很聪明,但这说到底就是还原论!」) 在某种意义上,这与数学家的思维恰恰相反:数学家总是试图「看透」一个复杂系统中那些非本质的偶然复杂性(accidental complexity),从而提炼出一个更简单、更抽象、也更接近真理的版本以便于理解和推导——但对于黑客来说,系统所有的复杂性都是必不可少的,他们反而试图去解构(unsee)那个简化的抽象系统,向下深挖到那个最复杂、最不抽象(但也最真实)的底层实现。[1](数学家可能会试图将一个程序层层向上转化成更抽象的数学表达,最终优雅地证明它在逻辑上是绝对正确的;而黑客则更喜欢把程序向下编译成最底层的机器码,通过暴力破解遍历所有的执行路径,找出一个漏洞来简单粗暴地证明它是错的。)

确认偏误

Milton Levine 叔叔的玩具公司自 1956 年起就开始向孩子们售卖蚂蚁工坊(ant farms)。我记得很多年前曾和一个朋友拆开过一盒。盒子里其实并没有真正的活体蚂蚁。取而代之的是一张卡片,你只需填好自己的收件地址,公司随后就会把蚂蚁邮寄给你。
我的朋友对居然可以通过邮寄收到活蚂蚁感到十分惊讶。我回答说:「真正有趣的是,这些人会按照你留的任何地址,把一管活体蚂蚁寄给任何你想寄的人。」
——布鲁斯·施奈尔 (Bruce Schneier)《安全心态》 (2008);亦可参考 关于 DNS 投毒,以及恶搞摩门教徒/耶和华见证人

普通用户只要求在他们日常的使用场景中,所有的 Y 都能正确地转换成 Z;他们却忘了去追问:是不是所有且只有正确的 Y 才会转换成正确的 Z?是不是只有正确的 Z 才能被反向构造回 Y? 哪怕只出现了一个看似微不足道的「异常」,都可能说明我们日常的心智模型不仅仅是有一点点瑕疵,而是存在根本性的错误。这就像牛顿的万有引力定律并不是只差了一点点,并不是简单打个补丁、加个修补因子就能解释水星的异常进动一样;这也像美国宇航局(NASA)管理层对 O 型密封圈的心智模型,并不是仅仅稍微增加一点橡胶垫圈的厚度就能解决的[2]。

原子

每一滴鲜血中都蕴含着伟大的天赋;最原始的细胞在所有动物体内似乎都是别无二致的,只是在生长过程中,因为环境的变迁,它时而开启长成这类细胞的开关,时而开启长成那类细胞的开关,从而在久远之后显现出不同的结果:或生角,或长翼,或生鳞,或长毛;同样的,在数字层面上,一个微小的原子,似乎既随时准备好去构成人类的眼睛或大脑,也随时准备好去构成老虎的利爪……真正洞察生活本质的人都明白,哪怕表面上看起来并非如此,每一个错误都有补救的方法,每一堵墙同时也都是一扇门。
——拉尔夫·沃尔多·爱默生 (Ralph Waldo Emerson),《自然心智史》,1893 [3]

这一切的核心就是「原子与虚空」[4]:

诸如此类,不胜枚举。 这类事情可能会让人觉得不可思议(「这怎么可能‽」)、令人震惊(「可是——可是——可是你这是作弊!」那些并非为了而玩游戏的「菜鸟」总是会这么说),或者让人觉得滑稽可笑(这契合了幽默理论中的「预期被打破随后恍然大悟」的观点);这是因为我们对抽象系统 W 和我们的语言表达规则实在太熟悉、太依赖了,以至于我们很快就作茧自缚,深陷在这些抽象构筑的幻梦中,忘记了「地图不等于疆域」的道理;而不可避免的是,这层抽象地图做了粗暴的简化,并且根本没有去记录从 A 点到 B 点之间那些我们不希望存在的隐秘小径。

事实上,除非在工程上小心翼翼地加以剔除,否则这些「后门」必然存在,因为我们所依赖的高级属性在系统的底层世界中根本就没有对应的实体。 如果我们用一串串数字比特流来解释「权限许可」,那么在不断向下探究的过程中,我们终究会触及到一个层级,在那里比特位不再包含任何关于「权限」的含义;这就好比,如果我们用原子来解释「颜色」或「气味」,我们最终只能去描述那些本身既没有颜色也没有气味的基本微粒;在某个临界点上,这些上层建筑的属性必须解体(disintegrate)成冷酷无情的基本事实,比如电流在电路里仅仅是朝这个方向流了,而不是朝那个方向。[11]

知识的诅咒

「问题在于,」爱丽丝说,「你是否让词语代表那么多不同的意思。」
「问题在于,」矮胖子说,「究竟是谁说了算——仅此而已。」
——刘易斯·卡罗尔 (Lewis Carroll),《爱丽丝镜中奇遇记》 (1872)。[12]

诡异的是,你受的教育程度越高,你对那张人类绘制的「地图」了解得越透彻,这种束缚效应就可能越糟糕,因为你需要去解构的东西就越多(例如,在虚构作品的鉴赏中)。 一个人必须始终保持对所谓「词语」「幽灵」(那些在思想上统治人类的虚妄概念)的某种轻蔑。

傻瓜能直接大摇大摆地走进去,只是因为他太无知了,根本不知道那事儿「不可能」。 这就是为什么那些毫无理论支撑的优化过程——比如动物(例如,猫在键盘上乱踩引发的模糊测试),或者 SMT 约束求解器,又或者是演化人工智能——在一开始看起来是如此的愚蠢,但从长远来看,它们却能如此擅长让我们大跌眼镜,常常能找到那些「极其不讲理」的输入或者利用奖励机制的漏洞(这就好比机器学习中的偏差-方差权衡):既然无法理解人类思维构建的那层「地图」,它们自然不能像我们那样利用捷径获益,但同样,它们也绝不会陷入对地图的迷信;为了得到它们想要的东西,它们被迫去直接探索那个未经任何修饰的粗糙疆域,从而发现了前所未见的新事物。

学会看破与解构

我甚至都已经看不到代码了。我满眼看到的只有金发女郎、黑发女郎、红发女郎。
——塞弗 (Cypher),《黑客帝国》

哇哦。
——尼奥 (Neo)

为了从我们的语义错觉中挣脱出来,可能需要下定极大的决心去反向透视(unsee)它们,并运用各种技巧来对事物进行「陌生化」处理。

例如,如果你不费九牛二虎之力,通常是很难在自己刚写完的文章中找出错别字的,因为你脑子里已经预设了它应该写的是什么;因此,文字编辑给出的建议通常是「大声朗读出来」、「打印在纸上读」、「等一个星期再读」、反复默念直到失去语义感(语义饱和),甚至是「倒着读」(这远比听起来要容易)。 做这些事情,就是为了强迫你去阅读你实际上写下的白纸黑字,而不是你以为你写下的东西。 在学习素描时也会用到类似的技巧:人脸的结构对我们来说太熟悉了(容易画成简笔画概念),所以你可以把它放在镜子里翻转过来,然后再尝试去临摹它。

好消息是,「一旦被看破,就再也回不去了」。一旦一个人受到了启蒙,成功地看破并解构了某个系统,他似乎就很难再重新跌回最初的幻觉之中。 哪怕只是具备了一丁点这种「解构表象」的能力,也能像疫苗一样,保护你免受那些有害错觉的蒙蔽。

外部链接

脚注

[1] 所谓的「跳出框框思考」有时指的就是这个,但往往并非如此。这是一种特有的还原论模式,许多「跳出框框思考」的案例其实是运用了其他模式,比如在外面再套一层抽象,或者干脆彻底抛弃有问题的系统。

[2]摘自理查德·费曼的调查报告附件:

管理层接受那些在以往飞行中已经出现过侵蚀和烧穿(blow-by)现象的密封圈继续服役,这是一种非常清晰的现象。挑战者号的发射就是一个绝佳的反面教材。他们反复提及过往的飞行记录;这些飞行的被接受以及表面上的「成功」,被当成了安全的证据。但侵蚀和烧穿根本不是设计预期内的情况。它们是系统出了问题的明确警告。设备没有按预期运行,这意味着存在巨大的危险:它可能会在下一次以一种我们完全未曾预料且未彻底理解的方式,出现更严重的偏差。这种危险在以前没有引发灾难,绝不意味着下一次也不会,除非你已经彻底摸透了它的机理。这就像在玩俄罗斯轮盘赌,第一枪有惊无险,对你扣下第二枪时的命运毫无安慰可言。当时他们既不了解侵蚀和烧穿的根源,也不清楚其后果。而且这种现象并非在所有的飞行任务和所有接头处均匀发生;有时严重,有时轻微。那么,为什么不能在未来的某一天,当所有决定这一现象的条件都恰好凑齐时,出现更严重的烧穿并最终导致一场大灾难呢?
尽管每次发射的烧穿情况都不尽相同,但官员们却表现得仿佛自己成竹在胸,他们用看似严密的逻辑互相说服,而这些逻辑往往仅仅建立在以往发射的「成功」之上……

[3] 第 441-442 页,《爱默生全集:自然心智史及其他文章》,第 12 卷

[4]「习惯上人们认为,甜就是甜,苦就是苦,热就是热,冷就是冷,颜色就是颜色;但在本质上,这世间只有原子和虚空。」顺便提一句,德谟克利特关于原子论的另一句名言其实是个双关语:「因为『悲剧』[τραγωδία]和『喜剧』[τρυγωδία]的拼写,不也是由几乎完全相同的字母拼凑而成的吗。」这出自亚里士多德在《论生成与毁灭》第一卷中的引用/转述;关于这不仅仅是对字母书写的泛泛而谈,而确实是在玩文字游戏的考证,详见 West 1969

[5] 《安德的游戏》 中有一个非常值得玩味的虚构例子:如果在战斗学校里,「胜利」的规则被硬编码定义为「四名士兵把守住敌方大门的角落,并有己方人员穿过大门」,那么为什么不直接无视所有战斗,径直冲向大门呢?——这简直有当年 Eurisko 寻找游戏规则漏洞的影子。

[6]摘自 Geoff Manaugh 2016 年著作《小偷的城市指南》第 356 页:

游戏设计师 Schatz 强烈呼吁玩家们在行动时要对抗建筑原本的逻辑,而不是顺着它的引导走,以此来发掘场景中潜藏的犯罪可行性——这番见解不仅仅在游戏世界里受用。无视建筑师精心规划好的既定动线,甚至从内部直接对空间结构进行暴力重塑,正是窃贼们最基本、也是最拿手的「滥用建筑环境」的方式……在珠宝大盗 Bill Mason回忆录中,最令人拍案叫绝的时刻之一,就是当他顿悟到:建筑是死物,完全可以被强迫去执行他想要的意志;读到这里,简直就像是在看着《星球大战》里的某个角色第一次觉醒并学会使用原力一样。
……他解释说,他盯上的猎物被锁在一个守卫极其森严的房间里,他根本不可能从大门溜进去。但紧接着,他忽然意识到了一个极其明显却一直被忽略的事实:他之前一直都在顺着酒店希望他思考的方式在思考——顺着建筑师期望他表现出的行为模式在行动——他一直在苦苦寻找门和走廊;但他明明可以直接在他想要的地方,硬生生开辟出一条全新的路线啊!这种突如其来的顿悟让他欣喜若狂。「一想到我可以在我最需要的地方,亲手『切』出一扇属于自己的门,我就兴奋得不能自已,」他写道。于是,Mason 简单粗暴地闯入了紧挨着主办公室的那间酒店套房。在那里,他一把拉开衣橱门,推开所有衣架,然后掏出一把切石膏板的小刀,硬生生地从一间房的墙壁上挖了个洞,直接切穿到了另一间房里。没花多大功夫,他就切通了这扇直达经理办公室的「专属大门」;在里面洗劫一空后,他又顺着原路,从他自己造的这扇「门」大摇大摆地离开了。这简直就是一场纯粹而完美的外科建筑手术。
在后来的记述中,Mason 毫不留情地嘲讽了那些认为人们只能乖乖走门的刻板观念,狠狠地取笑了那些居然指望窃贼会老老实实遵守建筑限制的天真想法。「真要是有人打算来抢劫这地方,」他用全斜体字写道,字里行间长满了讽刺的倒刺,「他们肯定会像体面人一样,从专门为此准备的大门走进来。也许这就是为什么人们会在一扇旁边紧挨着玻璃窗的实心橡木门上,丧心病狂地装上 4 把重型大锁的原因吧。」普通人似乎脑子里少了一根筋,他们觉得要想突破阻碍,就必须去苦练开锁技巧,或者对着那扇实心大门死命猛踹;却死活想不到,其实只需要去五金店花 10 块钱(按 2016 年物价)买把石膏板刀,就能在这个世界上凭空切出全新的走廊。这些人不过是建筑学的奴隶,是活在别人为他们设计的空间牢笼里的囚徒。
这种思维视角的反转,甚至闪耀着一种令人不安的才华:仿佛这么多年来,一直在「误用」建筑环境的,其实是那些不偷东西的守法公民;仿佛是这些守法公民不敢去质疑这个世界最基础的空间假设,被建筑学长久以来所强制设定的行为规范吓破了胆,以至于思维陷入了僵化……因为门通常是你面前这堵墙上最坚固、防御最森严的部分,所以,它们本质上就是一个转移注意力的陷阱。相比之下,墙本身往往脆弱得就像面巾纸,里面除了两块石膏板和几根 2×4 的承重木条外,连半把锁、半根铁链的影子都见不到。就像天上的云朵一样,公寓的墙壁里大部分其实都是空气;而在窃贼的眼里,它们根本就不存在。随便在墙上挖个洞,几秒钟后,你就已经站在隔壁房间里了。

[7] 尤其是在办公大楼里,「天花板」往往只是一种视觉上的遮挡而非物理隔断;而在像数据中心这样的建筑里,地板也是如此


[8] Penn & Teller 组合中的舞台魔术师 Teller 在接受采访时曾非常透彻地阐述过这一点:真正让舞台魔术大放异彩的,其实是背后极其笨重、艰辛的死功夫(hard work)

所谓的「魔术」,就是去付出任何一个正常人都不屑于去付出的巨大努力。(因此,所有魔术的成功,都仰赖于魔术师扮演了一个毫无理智可言的「疯子」。)

摘自 Teller 在 2012 年的文章 《Teller 揭秘:魔术师双人组 Penn & Teller 中那个较矮、较安静的一半,向你讲述魔术师是如何操纵人类心智的》

如果我教你几个魔术师用来扭曲你感知的基本原则,我想你就会明白我的意思了……诀窍就是:让魔术背后的秘密,显得比这个戏法本身所能带来的价值麻烦得多。如果一个戏法背后所耗费的时间、金钱和练习,远远超过了你(或任何一个正常旁观者)认为值得投入的极限,那你就会被它狠狠地骗过。我和我的搭档 Penn 曾经在脱口秀主持人大卫·莱特曼的办公桌上,从一顶大礼帽里变出了 500 只活生生的马达加斯加发声蟑螂。为了准备这个节目,我们花了整整好几个星期。我们专门高薪聘请了一位昆虫学家,由他负责提供行动迟缓、且在镜头前表现「友好」的蟑螂(你家厨房炉子底下的那种普通蟑螂可不会乖乖待在原地让你拍特写),他还得手把手地教我们如何徒手抓起这些虫子,而不至于像青春期小女孩那样吓得尖叫。接着,我们用泡沫板(这是少数几种表面光滑到连蟑螂都爬不上的材料之一)做了一个绝密的夹层,并设计了一套极其狡猾、复杂的流程,才得以将这个夹层神不知鬼不觉地塞进礼帽里。为了这么个几秒钟的戏法费这么大劲,值得吗?对你来说,大概不值。但对魔术师来说,绝对值。

或者可以看看他在 2015 年接受 Huttson 采访时的原话:

Matt:那你为什么不干脆把你们所有的戏法都揭秘了呢? Teller:因为那些简短的揭秘——也就是你在剧院或电视节目里为了时长必须做出的那种精简版解释——通常是非常枯燥且毫无乐趣可言的。制造一个能成功骗过所有人的魔术,其最大的秘密就在于:你是用你能想到的最笨拙、最难看的手段去完成它的。这个过程极其繁琐复杂,毫无浪漫色彩可言,甚至透着一种令人发指的愚蠢。 因为魔术界压根就没有什么惊天动地的大秘密。这世上根本不存在一个装满了所有魔法奥秘的大保险箱。Jim Steinmeyer 曾说过,他觉得大部分公众都笃信存在那么一个装满了魔术终极奥义的巨大保险箱。他说,魔术师面临的最大挑战,恰恰是要想尽一切办法掩盖那个保险箱其实空空如也的残酷真相。因为每一个魔术的「秘密」,说白了,都仅仅是对你日常生活中早已司空见惯的某个常识做了微小的物理变动而已。 就拿「用一根隐形线悬浮物体」为例。每个人在试图把线穿过针眼的时候,肯定都经历过那种死活看不清线头在哪的抓狂瞬间。让你找不到线的原因其实只有两个:光线和背景。如果一个魔术师要在舞台上用一根线,比如说,悬浮起一个球,那他必须煞费苦心地布置灯光和背景来将这根线完美隐形。这里面没有任何晦涩难懂的惊天秘密。你小时候在奶奶的针线盒里瞎鼓捣的时候,就已经学会这个原理了。 所以,每一个魔术的「秘密」其实都大摇大摆地隐藏在日常世界的光天化日之下。它既不是什么新鲜事,而且枯燥乏味到了极点。

[9] 胡迪尼当年戏耍阿瑟·柯南·道尔爵士的经典魔术,就是这些策略的完美体现。

没有任何一个讲理的正常人会料到,胡迪尼竟然会仅仅为了一个让粉笔自己写字的戏法,就不惜血本地翻新了整间屋子;或者专门去学一套晦涩的隐写术 (steganographic) 暗号,以便能在柯南·道尔眼皮子底下神不知鬼不觉地把写在纸条上的句子传达给助手;又或者让助手在墙后用磁铁精确操纵悬挂在半空的小石板后面隐藏的金属块,并且在走位时把这一切极其精准地隐藏在观众的视觉盲区里,从而制造出粉笔正悬浮在半空中自行书写的完美错觉。没有哪个正常人会为了忽悠你而下如此丧心病狂的血本。因此,正常人被胡迪尼的戏法骗得团团转也就不足为奇了。

柯南·道尔作为一个再正常不过的体面人,根本没有预料到这背后有这么多丧心病狂的门道;因此,他坚决不相信胡迪尼所说的「这仅仅是个戏法」。但柯南·道尔其实应该牢记大哲学家休谟 (Hume) 的那句名言:到底哪种情况更有可能发生——是你真的见证了超自然现象,还是说,在这个广阔世界的某个角落里,真的存在一个像胡迪尼这样狡黠如狐、谨慎到变态、且有着重度强迫症的人?显然是后者!

Olson 和 Raz 在 2020 年的论文中给出了更多详实的例子,并展示了如何将这种源自魔术的欺骗艺术有效地应用于心理学实验设计中。

[10] 说到「社会工程学」,为什么当年 Facebook 仅仅通过提供极其肤浅的社交网络功能,就能成功地从一小撮大学生的圈子里席卷全球,这让许多人感到大惑不解?也许它的成功本身就在暗示我们:人类社交互动底层的逻辑,远比我们愿意相信的要简单、要更容易被抽象化,而根本没有我们自以为的那么丰富和微妙。

[11] 海森堡(摘自 Hanson 1962 的论文中的引用):

解释……物质的性质是不可能的,除非我们将这些性质追溯到那些自身已经不再具备这些性质的实体的行为上。如果原子真的能够解释可见物质的颜色和气味是如何产生的,那么它们自身就绝不能拥有颜色和气味这样的属性……因此,原子理论始终否认原子具备任何此类可被感知的属性。

侯世达 (Douglas Hofstadter) 将其精辟地总结为:「绿色(这种属性)解体了。」

[12] 「第 48 条,给外行看的最好的编程启蒙书是《爱丽丝梦游仙境》;但那是因为它本身就是给外行看的、关于任何事物的最好的书。」——《编程警句》,Perlis 1982。


Thoughts Memo 汉化组译制
感谢主要译者 gemini-3.1-pro,校对 Jarrett Ye
原文:On Seeing Through and Unseeing: The Hacker Mindset · Gwern.net
首次发布于 2012-12-09;最后更新于 2021-05-04;状态:已完成;置信度:极高;重要性:6/10。

专栏:Gwern Branwen


← 返回目录