第168章 架构落定,不可逾越的边界(1 / 2)
九月六日,晚上七点五十八分。
江临坐到电脑面前的时候,固定窗口里,多了一项十五分钟的闭门会议提示。
【会议通知】
主题:a-1/bb5/统一草案撤回后的边界校准
议题一:现有工作保留范围
议题二:backwardreasong復现计划
议题三:共享可信核的下一版结构
桌面上,昨晚那封確认邮件已经完成处置。
在那封邮件里,第193步反例復现成功,旧统一草案被正式宣告破產。
四状態图灵机在无垠的空白纸带上留下了它的痕跡。
项目的三类原始decider及既有分类结果继续保留。
今晚,无须再討论那台四状態机器为什么会在第193步停机。
数学和逻辑的法庭上,反例一旦成立,爭论便隨之终止。
真正需要確定的,是那份被截停的草案究竟要拆到哪一层,以及在这场浩大的解构之后,还能在废墟中留下什么。
……
【写到这里我希望读者记一下我们域名101看书网伴你閒,101.超方便】
事实上,在会议接通前的半小时,清华大学项目组的办公室里,周述还在疯狂修改著第三套方案的草稿。
过去的一天一夜,他几乎没有合眼。
他尝试了十七种不同的接口重构,试图把backwardreasong庞大的搜索树压进一个標准格式里。
但每一次,只要他不把那个臃肿的搜索算法带进去,核验器就无法確认结果。
“根本拆不开。”周述烦躁地揉著眉心,对一旁的叶寧说,“要想向一个毫无智能的程序证明反向没有路,除非让它自己再去把路搜一遍。我们之前的设计之所以要让证书自己声明,就是因为工程上不可能把搜索过程交给核验器去验收,那会把核验器撑爆的。”
带著这种这是一个工程死结的深切无力感,周述进入了八点整的会议。
……
八点整。
屏幕上的倒计时归零,会议准时接通。
屏幕被分割成五个大小不一的窗口,连同江临在內,五个人处於各自不同的物理空间,却被同一条逻辑链条拴在了一起。
主持会议的是位於正上方窗口的乔闻鐸。
他背后的书架上堆满了厚重的理论计算书籍和歷年项目的归档卷宗。
作为清华计算机系教授、博士生导师,同时也是这个bb5项目的架构负责人,乔闻鐸有著十余年程序语义与形式化验证的经验,曾主持过验证编译器和安全关键软体的可信核审查。
在他的研究组里,有一种近乎残酷的共识:作者亲手跑出的绿色结果,充其量只能算作內部实验记录。
换一批人、换一种完全不同的语言实现、只凭公开的规格说明书重新得到同一结论,这个结果才有资格被写入正式的证明链中。
乔闻鐸是一个极少在技术意见里使用带情绪形容词的人。
然而,在昨晚的处置纪要里,他连续写了两次严重。
对於形式化验证而言,一个能够被绕过的核验器,比一个完全不工作的核验器更加危险。
左侧窗口是叶寧,组里的助理研究员。
她负责decider结果復现与transtedcycler的专用核验,有著多年和底层代码搏斗留下的沉稳。
既能阅读高视角的计算理论证明,也能一路追潜到模擬器最底层的单步转移函数。
项目早期,她曾用另一套实现独立重放了百万级机器的分类过程。
原工具与復现结果出现的几处微小边界差异,都是她从海量的纸带快照里,一格一格用肉眼和脚本找出来的。
昨晚,第193步反例送达后,也是她带著两名研究生从空白纸带重新跑完全部轨跡,確认问题確实停在统一草案的验收层,没有越过原始decider的边界。
右下角窗口里,戴著黑框眼镜的青年研究员周述显得有些憔悴。
他是姚班本科毕业后留校直博的尖子生,研究方向正是携带证明的代码与最小可信计算基(tcb)。
那份被宣告破產的旧统一草案,正是由他主笔。
过去三个月里,二十七个模块、四百多项接口测试和两轮繁复的证书格式迁移,大半经过他的手。
他设计这套草案的初衷无比正確:把最终需要信任的代码压缩到儘可能小。
然而,问题恰恰出在这次过度的压缩上:一项本该由核验器亲自下场完成的证明义务,为了统一接口,被缩减成了证书生成端填写的一个布尔值true。
最后一个窗口没有开启摄像头,那是研究支持单元的技术联络员。
负责会议纪要的实时录入、版本封存和材料隔离,从不参与任何证明判断。
他的麦克风传出细微的纸张翻动声,他的面前摊著一份列印稿,第一页右上角已经盖上了刺眼的红色印章:【withdrawn】。
没有人寒暄。
会议接通的瞬间,周述便直接共享了过去二十四小时的紧急审计表。
数据在屏幕上展开,严谨而清晰。
【可原样保留】:19项(包括基础状態定义、纸带读写头逻辑等)
【需拆回专用规则】:5项
【涉及未核验信任声明,直接废止】:3项
页面下方,列著三套经过整日爭吵后得出的备选方案。
【方案一:共享核回调原专用decider】
优点:恢復最快,代码改动最少。
代价:搜索程序重新进入可信边界。
【方案二:將三种decider全部纳入可信核】
优点:外部接口最少。
代价:可信核膨胀成三套decider的总和,失去小而可审的意义。
【方案三:共享机器语义,分离三套核验规则】
优点:可信边界清晰,每套规则只验收有限见证。
代价:需要重新设计见证结构,backwardreasong尤其困难。
叶寧率先打破沉默,她的声音透过网络传输略显失真,但逻辑依然锋利:“第一套方案能最快恢復进度,但这意味著裁判又要重新相信寻找证据的搜索程序。第二套方案最省接口,但可信核的体积会膨胀成三套decider的总和。这违背了我们建立可信计算基的初衷。”
“我们组內经过討论,倾向於第三套方案。”周述接过话头,他的嗓音有些沙哑,显然熬了一个通宵,“可第三套还是有一个问题,三套规则进入可信核以后,怎样保证我们只是拆开了证明义务,而非换个名字重造三套decider”
他將屏幕上的架构图放大,红色的高亮標记圈出了几个关键模块。
decider之所以难以被形式化信任,恰恰因为它的本质是探索。
它会使用启发式算法去搜索、去猜测未知的状態。
它会为了效率进行大幅度的剪枝、合併状態空间,並使用各种优化策略。
如果所谓的分离规则仍然在底层把这些探索性的工作全做一遍,那么可信边界根本没有被缩小,它只是从一个巨大的黑箱,变成了三个稍微小一点的黑箱。
江临移动光標,打开昨晚自己归档的一份手绘架构草图,將屏幕共享权切了过来。
在图表上的搜索程序与核验规则之间,用红色的线条划下了一道不可逾越的鸿沟。
“decider负责在黑暗里找证据,核验规则只负责在灯光下验收证据。”
江临的声音平静,却带著不容置疑的確定性。
“搜索端可以扩展大量局部配置,反覆进行前驱生成、去重与剪枝;核验端只检查证书提交的有限对象。它不搜索新节点,也不依赖任何决定结论的启发式优化。”
江临將光標停在那条红线上。
“它只回答两个最简单的问题:第一,证书里列出的事实,能不能由机器的最底层转移表重新推算出来第二,证书声称覆盖的证明义务,在数学上有没有逻辑缺口”
周述注视著屏幕上那条涇渭分明的分界线,镜片后的眼睛微微眯起,沉默了几秒钟,说道:“也就是说,搜索端可以继续保持聪明、狡猾甚至激进,但裁判端必须足够笨。”
“越笨越好。”江临毫不迟疑地回答,“笨到任何一行代码都能被人工一眼看穿。”
叶寧將第三套方案移到了页面的最上方,快速评估了可行性,说道:“transtedcycler这边可以做到,专用的decider继续在外面负责寻找平移段,规则层只负责重放这一段有限的运行轨跡,然后再检查最大回退范围。所有的搜索和探测策略,全部留在边界外面。”
周述揉了揉眉心,提出了最棘手的问题:“普通的exactcycle循环也可以直接拆。真正卡住我们的,还是backwardreasong。它交来的结果如果仍然是一整棵庞大的反向搜索树,小核验器照样要陪著它重新遍歷一遍。这又绕回了原点。”
江临切换了终端页面,敲击了几下键盘,调出了一个全新的目录。
【backward_reasong_reprodu/pendg】
“所以,第三类程序现在还不能直接接入。我今晚会进行復现和重构。它最终需要交出来的,应该是一张已经穷尽所有可能的『有限地图』,而不是冗长的搜索过程。”
一直静静倾听的乔闻鐸此时终於开口:“一张地图,怎样在不藉助外部搜索的前提下,向一个毫无智能的核验器证明自己没有漏掉任何一条路”
“让核验器根据机器的单步转移表,自己去倒推地图上每一个节点的合法前驱。”江临给出了答案,“核验器绝不往外做任何探索。它只做一件事:核对根据规则计算出的所有合法前驱,是否都已经存在於这张地图的边界之內。”
乔闻鐸深深地看了屏幕里的江临一眼,转头看向周述。
“把江临刚才说的这句话,一字不差地写进第三套方案的设计约束里。”
周述的手指在键盘上飞快敲击,纪要系统里立刻多了一行加粗的红字。
【系统设计铁律:搜索与推断能力不得进入可信核;可信核只验证有限见证及其逻辑闭合义务。】
隨后,周述拿起手边那份盖有撤回標记的第一页列印稿,將其翻了过去,露出
“如果backwardreasong也能按照这条边界清晰地拆开,那么过去三个月的工作,就真的只废掉了最上面的那三项统包接口。”周述长舒了一口气,“新规范出来以后,其中一套独立实现,由我来写。”
八点十五分,十五分钟的议程结束,会议通道关闭。
江临回到隔离工作站的界面前。
前两个復现目录【cyclers_reprodu】和【transted_cyclers_reprodu】保持著加密封存状態。
他移动滑鼠,只双击打开第三个目录。
【backward_reasong_reprodu】
这个目录此前只有一个空壳和几份基础材料,连復现环境都尚未搭建。
江临从九月一日保存的绝对乾净的空白虚擬机基线中,复製出了一份新的系统快照。
接著严格按照项目版本清单,逐一载入编译器、依赖库和基础运行环境。
隨后將源码目录的权限硬性修改为只读。
所有的测试材料均採用六月修订后的公开哈希版本,旧的git提交记录与旧的日誌输出被打包隔离在独立的歷史目录中,確保它们绝不干涉本轮的復现结果。
八点三十一分。
所有的准备工作完毕。
提交號、依赖版本和测试集哈希全部被封存。
backwardreasong(反向推理)程序,在这个与世隔绝的独立环境中正式启动。
与前两种试图预测未来的方法完全相反,backwardreasong的运行逻辑是反直觉的。
它不跟著图灵机的读写头从空白纸带的起始状態出发,去一步步追问未来会发生什么。
它选择站在图灵机停机的终点站,转过身,往回看。
为了在脑海中具象化这个过程,可以想像一座道路错综复杂,庞大到看不见边界的超级城市。
这台图灵机就是一个在城市中游荡的机器人。
机器人从一间全白的初始屋子出发,停机则是一扇写著下班的终点之门。
传统的正向模擬,相当於一个人跟在机器人身后,看著它今天向左拐,明天向右转,默默记录,等待它自己某一天凑巧走到那扇门前。
如果这个机器人陷入了某种死循环,或者在无尽的荒野中向著远离门的方向一直乱走,跟在后面的人就只能在绝望中无止境地等下去,直到宇宙热寂。
反向推理则採取了截然不同的哲学。
它先派人直接站到那扇下班门前,不问来路,先找出所有能够一步跨进门里的位置。
假设有三个这样的位置,就把它们標记为距离终点一步。
接著,再从这三个位置继续往回找,標记出所有能够通过两步到达门口的位置,然后是三步、四步、更多步。
如果经过一段时间的疯狂扩张,寻找前驱的过程突然停止了,不再有新的位置被加入进来。
最终,反向推理程序绘製出了一张边界清晰的有限地图。
这意味著,所有理论上能够通向终点门的道路,哪怕是迂迴曲折的,都已经全部被圈入这张地图之中。
地图的边缘,再也找不到任何一个可以进入內部的隱秘入口。
此时,只要检查最后一件事情:机器人最初所在的那个全白屋子,在不在地图上
如果不在,结论便確凿无疑。
因为通往终点的路已经被穷尽,而起点不在这些路上,所以机器人永远无法走到终点。
这就是backwardreasong证明图灵机不停机的核心数学思想。
然而,这套思想在工程实现上的巨大麻烦,深深隱藏在穷尽所有道路和没有任何遗漏这几个字里。
一个庞大的搜索程序,可以自信地列印出一行日誌,声称自己已经把路找完。
但最终的可信核验器,绝不能因为这句毫无根据的声明就盖章放行。
第193步的致命反例刚刚用血淋淋的事实证明,把关键的闭环结论交给证书生成端去自说自话,只会让可信核重新长出同一处溃疡。
江临敲击回车,运行了第一组公开的测试样例。
终端很快给出结果。
【backward_depth:300】
【decision:non_haltg】
与结论一同留下的,还有数量庞大的节点扩展、前驱生成与重复配置合併记录。
这些记录能够说明原decider怎样得到答案,却无法成为一份轻量证据。
另一套程序若想沿著日誌確认结论,几乎等於重新执行一次反向搜索。
这样一来,复杂的搜索程序仍然留在可信边界之內。
江临面无表情地关闭日誌窗口。
他不需要这些冗长的证明过程,也不需要知道程序是如何在黑暗中摸索的。
所以只抽取最后留下的那张结果地图。
地图上的每一个节点,代表著图灵机在某一刻可能处於的局部快照:当前內部状態、读写头脚下的符號,以及读写头周围一小段已经確定的纸带內容。
最关键的是,窗口以外的区域不默认全是0,而是明確標记为未知。
因此,一个节点代表的不是一张具体的完整纸带,而是一个集合,所有可能从这段局部已知图案向外延伸出去的,无数种纸带情况的总和。
江临开始重构代码。
將小核验器需要做的事情,暴力压缩成了三项绝对客观的检查。
第一重验证:检查所有能够直接触发停机状態的纸带入口,是否都已经一字不落地包含在这张地图中。
第二重验证:针对地图里的每一个已知节点,根据图灵机的规则,逐条倒推它所有合法的上一步。核对这些前驱是否必然落在地图的现有节点集合內。绝不能有一条合法的路径,从地图的虚无边缘悄悄漏进来。
第三重验证:检查全白纸带上的初始状態快照,绝对不能出现在这张地图里。任何试图通过坐標系平移、或者局部窗口裁剪来隱藏起点的欺骗手段,都必须被识別。
只要这三项检查通过,无论原先的搜索过程是聪慧还是愚笨,是耗时一秒还是一年,都可以从裁判席上光荣退役。
证书只负责提交这张有限的静態地图。小巧的核验器自己负责检查地图的边界是否完全封闭。
九点四十一分。
第一份符合新规范的反向不可达见证在江临的指尖生成。
他毫不犹豫终止原decider进程,清除它留下的临时文件,只保留机器描述与见证文件。
隨后启动刚刚编译好的独立核验器。
屏幕上没有重新渲染几百层的反向搜索树。
核验器如同一个没有感情的齿轮,逐个读取地图节点,死板地按照机器的单步转移表,重新计算所有的前驱。
四秒钟后,屏幕刷新,四行代表通过的绿色字符依次跃出。
【haltg_entrances/vered】
【predecessor_set/closed】
【bnk_itial_nfiguration/absent】
【witness/valid】
一份原本依赖程序发誓它不会停的复杂结论,在这一刻,第一次变成了一张可以完全脱离原程序,由任何第三方工具独立验收的有限路线图。
江临並没有在这一串令人心安的绿色结果前停下脚步。
对於一个旨在无懈可击的安全架构来说,能验证正確的结果只是及格,能防住精心构造的恶意欺骗才是核心。
他复製了刚才那份有效的见证文件,打开了十六进位编辑器,开始手动捏造三份用於攻击的恶意样例。
第一份攻击样例:他在地图中间,人为地刪掉了一个合法前驱节点。这相当於在原本封闭的城墙上,硬生生砸出了一个缺口,抹去了一条確实存在的进路,试图欺骗核验器这张地图已经封闭。
运行核验器。
【reject/issg_predecessor】
红灯亮起。
核验器在倒推时,发现了一个算出来的前驱不在名单上,当场拒收。