第167章 第193步的崩塌(2 / 2)
他需要確保沟通的绝对清晰。
於是把转移表、错误接受路径和基於底层逻辑的根因说明,用精炼的语言压成了一页只有核心事实的覆核摘要。
九月四日,晚上七点四十六分。
门外传来一阵隨意的敲门声。
江临看了一眼时间,按下快捷键,內部证书草案、復现报告和带有项目標识的目录同时锁定。
隔离工作站上只留下公开decider代码、他自己构造的四状態测试机,以及一组去掉了所有来源环境信息,纯粹展现底层推演的运行结果。
確认屏幕上不再有任何敏感信息后,江临起身打开了门。
赵承宇站在最前面,手里拎著烤冷麵和小酥肉
顾明澈稍微靠后,手里提著一袋水珠未乾的紫黑葡萄。
林一舟则抱著一盒切好的冰镇西瓜。
赵承宇往上抬了抬手里的塑胶袋:“刚才在紫荆园碰上了,寻思著顺路过来看看你在不在。”
这是开学以来,三个人第一次真正踏进402室。
江临没有多说什么,转身从鞋柜里取出三双尚未拆封的塑料拖鞋撕开包装,又弯腰把摺叠凳和床铺边缘的软垫拉出来,腾出足够坐下的空间。
赵承宇很快占住床沿。
顾明澈坐到相对板正的摺叠凳上,把葡萄放到桌子中间。
林一舟拖过另一把靠背椅,坐下时,位置不由自主地离江临那台散发著微光的工作站稍近了一些。
烤冷麵浓郁的酱汁味、小酥肉的油炸香气,很快和西瓜清冷的甜味混杂在一起,充满了市井烟火气。
最初的十几分钟,几个人边吃边谈,话题自然而然地围绕著白天枯燥的军训打转。
哪个教官计时格外严格,哪支连队休息时多唱了两首歌,明天会不会下雨,紫荆园三楼的牛肉麵究竟值不值得排队。
江临坐回工作檯前,一边听他们说话,一边重新运行四状態测试机。
带有內部標识的材料仍处於锁定状態,屏幕上展示的只有公开原理和不对应任何真实未决机器的人造反例。
七点五十九分,林一舟先注意到终端里的三个目录。
【cyclers_reprodu】
【transted_cyclers_reprodu】
【backward_reasong_reprodu】
“bybeaver,繁忙海狸问题”林一舟推了一下眼镜,声音里带著一丝意外。
“嗯。”江临应了一声。
得到肯定答覆的林一舟拿西瓜的动作慢了半拍。
信息学竞赛国家集训队不会要求选手求出bb,那不现实,却足以让他知道这个名字的分量。
那是计算理论边界上最著名的难题之一。
由於不存在一套能够判断所有程序是否停机的万能方法,研究者只能把五状態机器分成一类又一类,再为每一类寻找可以覆核的排除证据。
屏幕上的三个reprodu目录,也就不再像普通开源项目的测试文件。
江临正在检查的,是数以百万计的判定结果凭什么能够被人相信。
顾明澈顺著林一舟的目光看过去,注意到了终端右侧不断滚动的纸带运行轨跡。
“你在判断这个小程序会不会停机”
“更准確地说,我在审查一份试图证明它永远不会停机的逻辑证书。”江临解释道。
赵承宇从烤冷麵的盒子里抬起头,远远看了一眼满屏的0、1、l、r,无语道:“能用人话说说吗,这堆零和一到底在干嘛”
江临伸出手,指向屏幕左侧那个正在解析配置文件的进程。
“有人交来一份形式化的证明,声称这台机器会像一枚滚动的印章一样,在纸带上永远向右侧复製相同的图案,永远不会触及停止状態。”
接著,他的手指平移,指向右侧那个正在疯狂增加步数的完整模擬界面。
“左边这个被隔离的小程序,负责用一套既定的规则去审查这份证明是否合法。而右边,是从一条绝对空白的纸带开始,不加任何假设,让这台机器真正地一步步往下运行。”
“所以,理论上两边应该得出完全相同的一个结论”赵承宇咽下食物,抓住了核心逻辑。
“对。”江临的回答乾脆利落。
解释到这个深度,对於非专业领域的听眾来说已经足够。
赵承宇继续吃烤冷麵,顾明澈翻看书院刚发下来的通知,林一舟偶尔抬头看一眼屏幕右侧那台机器依然在不断攀升的运行步数。
林一舟是姚班这一届的新生,同样也是信息学奥林匹克竞赛国家集训队出身。
他的知识储备足以让他一眼看懂转移表的结构和当前的测试框架。
在过去数年的信竞生涯中,他也曾无数次为了卡掉別人写错的算法,而绞尽脑汁构造各种极端的边界数据。
但transtedcycler这种涉及平移后的配置重复、窗口隔离条件证明的前沿理论,究竟需要建立何种严密的形式化边界条件,已经超出了他凭藉直觉就能直接判断的范畴。
他唯一能够確认的是,在那个终端界面上,测试机的每一次微小改动、甚至只是修改了一个状態的分支走向,都被严谨地打上了独立的版本號。
机器描述的哈希值、运行轨跡的內存快照、局部图案的二进位比对结果,甚至最终停机那一刻的內部状態、读写头位置和纸带內容,全都被分门別类地保存著。
这意味著任何一个看似偶然的结果,都可以隨时从那条代表著起点的空白纸带上,分毫不差地重新推演出来。
这是標准的、带有防御性质的工程验证级开发。
八点零七分。
安静运行的屏幕左侧,审查进程率先结束,亮起了一行显眼的绿色结果。
【certificatevalid】
然而,屏幕右侧的完整模擬並没有因此停止,依然在执拗地向前推进。
第190步,第191步,第192步,第193步。
右侧的终端突然卡顿了一下,隨后弹出鲜红的提示。
【halt】
赵承宇把正准备夹起最后一块小酥肉的筷子硬生生地停在打包盒上方,眼神在左右两个窗口间来回切换。
“等等,左边刚才不是说那份证明有效,这机器不会停吗,右边这怎么直接停机了”
“因为这份证书遗漏了一个致命的前置条件。”江临的声音没有丝毫起伏,像是在宣读一份物理实验的观测数据,“它只向核验器展示了读写头附近那段平移得很工整的图案,却无法用逻辑证明,那些被它拋弃在窗口外面的旧痕跡,以后永远不会重新挡住它的路。”
顾明澈放下手机,看著並排停住,结论却截然相反的两个终端界面,若有所思:“你的意思是,这台机器后来走回头路了”
“准確地说,是在第193步。”江临调出那一瞬间的纸带快照,“它越过了证书里信誓旦旦声称绝对不会回访的物理边界,碰到了早期运行时刻意留在外面的一颗地雷——一个孤立的数字1,整个平移结构瞬间崩溃。”
“那是原来的那个判定程序写错了”顾明澈追问。
“原始专用decider会重放有限运行段,並重新检查最大回退范围。”
江临指尖在键盘上划过,把去掉来源信息的两个运行结果和纸带快照並排放大。
“缺少这个安全条件的,是后来有人试图强行揉捏出来的一份统一证书草案。这台机器本该被拒绝,但新草案为了兼容性开了后门,被我构造的数据骗过了。原有的那些数学分类证明,暂时不受这个反例的影响。”
林一舟没有参与討论,他的视线正定在屏幕角落里的版本演进摘要上。
【itial_case:5states/haltat6841(初始案例:5状態/6841步停机)】
【pressed_case:4states/haltat193(压缩案例:4状態/193步停机)】
“你最初找到的那个漏洞模型,要一直跑到六千八百四十一步才暴露出错误”林一舟突然开口,声音有些低沉。
“对。”
“然后你把这个反例压缩到了只要193步就能暴露”
“只有把状態压减到四状態,两张a4纸就能列出完整转移表、关键纸带快照和错误接受路径。”江临看了一眼桌面上那两页纸,“排除了所有干扰项,別人在做人工覆核时才不会被多余的逻辑分支转移注意力。”
林一舟看了一眼桌边列印出来的四状態转移表。
在信息学竞赛里,找到一组让程序答错的数据並不算结束。
真正能够直接刺穿底层逻辑的反例,应当刪除所有无关结构,让错误只指向一个明確的边界条件。
而眼前这台被江临亲手捏造出来的机器,还要满足远比竞赛苛刻得多的理论要求。
它必须在极小的状態空间內,表现出完美的局部图案平移,必须能让机器哈希和运行段校验顺利通过核验器的审查,最后,还要极其精確地沿著那条被核验器遗漏的路径,在第193步重新碰到窗口外的旧符號,並沿新触发的转移进入停机状態。
在这个逼仄的四状態空间里,江临哪怕多刪一条转移规则,反例就会灰飞烟灭。
少刪一条,人工覆核的代码量就会成倍增加。
要在图灵机的確定性运行轨跡上,精准地找出这条狭窄到令人窒息的缝隙,並且始终维持著局部平移的偽装……
这不仅需要深厚的数学功底,更需要不带任何情绪的工程直觉。
林一舟没有再多问任何关於transtedcycler细节的问题。
因为他知道,眼前这台冰冷的四状態机器本身,就是最高效也最具压迫感的回答。
顾明澈看了看江临的背影,问:“所以,你这几天都在做这个”
江临点点头:“第一种循环已经復现完成,第二种的统一证书层被这个反例卡住了流程,至於第三种反向推理,环境还没搭建好,还没开始。”
顾明澈能够听懂的技术细节有限,却听懂了三个状態之间的重量。
一个已经完成独立復现,一个被江临用反例卡住,剩下一个仍在等待处理。对他们而言,繁忙海狸还是计算理论中一个遥远而著名的难题;到了江临手里,它已经被拆成能够编號、復现、否决和继续推进的具体工作项。
更让顾明澈在意的是,江临谈到那份错误证书时,语气里没有发现大漏洞后的兴奋。
他先划清原始decider不受影响,再说明出问题的只是统一证书层。
找到错误之后还能压住结论边界,这件事本身比屏幕上的【halt】更难。
赵承宇低头看了看面前还剩半盒的烤冷麵,又抬头看了看那台造价不菲的工作站屏幕上刺目的【halt】。
微妙的荒谬感涌上心头。
他们三个人今晚只是因为刚经歷了苦哈哈的军训,穷极无聊,带著水果和夜宵过来串个门,聊的都是哪个教官更严厉,食堂哪个窗口的大妈手抖得没那么厉害这种鸡毛蒜皮的閒天。
但是,就在距离他手里这个廉价塑料打包盒不到两米远的地方,一份试图在数学界统合三类复杂非停机证明的前沿技术路线,已经被屏幕上这台刚刚跑完一百九十三步的粗糙小程序,硬生生地截停在了半空中。
屏幕上代表有效和停机的矛盾结果,谁都能看得懂。
但至於这个矛盾在更深层次的形式化证明上为什么会成立,这个漏洞的影响范围应该划到多远,清华团队下一版的系统核验架构又该怎样重构,这依然不是他们三个才刚刚穿上迷彩服的大一新生能够接手探討的问题。
九点零七分,几个人意兴阑珊地开始收拾桌面。
吃空的纸盒被整齐地装回塑胶袋系好死结,剩下的葡萄和西瓜重新盖上保鲜膜放进冰箱,喝空的饮料瓶被统一放在门后的垃圾桶里。
赵承宇换回自己鞋子的时候,没忍住又回头看了一眼那个黑底白字的终端屏幕:“说真的,本来只是打算来串个门聊聊天,怎么吃顿烤冷麵的功夫,还撞上停机问题了”
“是非停机证明的安全核验问题。”林一舟在一旁严谨地纠正了他的说辞。
赵承宇摆了摆手,推开门:“行吧行吧,他今年都已经搞出了江氏砖,搞定了pfr猜想,再解决一个非停机证明的安全核验问题,也是非常符合逻辑的。”
三个人鱼贯而出,离开了402。
房门咔噠一声关上。
宿舍里重新恢復了寂静,只有小酥肉的油腻味和西瓜的甜香还残留在空气中,证明刚刚有几位年轻人带著大学生的鲜活气息来过。
江临重新坐回工作檯,按下解锁快捷键。
內部证书草案与那份长达数页的完整復现报告,重新在屏幕上铺展开来。
閒聊结束了。
现在,真正需要白纸黑字写进正式报告的技术边界,被重新冷酷地摊开在无影灯下。
cycler的证明逻辑极其简单,提交的只是两份完全相同的全局机器配置,以及连接这两份配置的確定性正向运行段。
transtedcycler的逻辑发生了跳跃,除了要证明局部图案发生平移,还必须用强有力的逻辑外壳,证明窗口外部的未知內容绝对不会像幽灵一样重新进入演化区域。
而尚未开始復现的backwardreasong(反向推理),其数学逻辑更加晦涩。
它提交的不再是正向的演化,而是通过回溯,去证明某个特定的状態集合是一个不可达的反向孤岛,或者提供一个能够证明这个孤岛完全闭合的有限见证。
三类证据可以共享机器描述、空白纸带初始条件和单步转移语义,也可以被装进同一个外层证书容器。
真正不能强行合併的,是各自特有的见证结构与核验规则。cycler需要重放完整配置之间的运行段;transtedcycler需要额外检查平移窗口与最大回退范围;backwardreasong则需要验证反向不可达集合的闭合条件。
当前草案的问题,正是把这些不同的证明义务压缩成了几项由证书生成端自行填写的布尔栏位。
江临在接口草案顶部划掉原目標。
【目標:统一三类非停机证书的数据结构。】
改为——
【目標:统一机器语义与可信核边界;允许不同证明规则提交各自的见证结构。】
公共部分暂时保留五项。
【机器描述哈希】
【空白纸带初始条件】
【单步转移语义】
【证书类型標籤与核验规则分派】
【核验结果、失败步骤与復现轨跡】
这个调整没有否定共享核验內核的可行性。需要停止的,是让当前统一证书草案直接承担最终裁决的路线。
如果继续沿用旧草案,即使后续所有测试样例都显示绿色,也无法排除核验器只是相信了证书生成端自行填写的错误声明。
十点二十四分,江临在键盘上敲下最后一个句號,完成了第一份针对草案的正式回传材料。
附件文件非常克制,只有四页。
【第1页:经过极限缩减后的四状態反例转移表】
【第2页:利用漏洞生成的偽平移证书原始数据】
【第3页:统一核验器因未执行方向检查而导致错误接受的底层调用路径追踪】
【第4页:底层架构修改建议与系统安全影响边界】
影响边界的部分,被他用粗体字单独標出。
【该反例仅针对统一草案的架构安全。它不影响普通cycler、transtedcycler与backwardreasong原始专用decider已经独立完成的机器的判定结果。】
【该反例只针对统一证书草案,不影响三类原始专用decider及其既有分类结果。】
【在窗口隔离见证、完整的数学支撑,或逻辑等价的替代条件被正式编写进可信核代码以前,严禁使用该草案生成任何具有约束力的形式化结论。】
江临没有在邮件末尾附上一套看似圆满的全新完整方案。
因为他是个纯粹的技术现实主义者。
第三项backwardreasong的反向不可达逻辑尚未开始復现,这套经过重构的统一可信核究竟能不能安全容纳那种诡异的反向证明结构,还没有经过任何脏数据的实战测试。
如果在缺乏验证闭环的此刻,贸然提交一个仅凭脑补设计出来的所谓新架构,那只不过是用一个未经验证的黑色盲盒,去替换掉另一个已经破底的黑色盲盒。
他只在文档的最后一页,用代码块画下了一个粗糙却边界清晰的下一阶段拓扑草图。
【sharedkernel】
├──【acheseantics】
├──【exactcyclerule】
├──【transtedcyclerule】
├──【backwardunreachabilityrule】
└──【fairetrace】
十点三十一分,这封带著反例的邮件通过研究支持单元,正式转发回清华。
九月五日,上午九点十七分,对方的团队在他们的伺服器上完成了对这份四状態反例的独立復现。
回復仍然先进入三楼的研究支持单元。
技术联络员快速核对了一遍附件和那四页刺眼的影响说明,立刻將邮件的优先级標红,打上【a-1/原问题直接反馈】的標籤,安静地放入江临的信箱,等待著今晚窗口期的开启。
晚上八点整,刚从操场上带著一身疲惫回来的江临,点开回信。
……
【反例已由我方独立沙箱復现成功。】
【测试记录显示,统一核验器在该恶意样例上发生严重错误接受,完整模擬实测於第193步发生停机。】
【根因完全確认:统一草案底层架构存在信任漏洞,错误信任了未受保护的isoted_dow栏位。原专用transtedcyclerdecider中核心的方向性边界检查算法,在整合过程中未被有效迁移。】
【处置方案:当前版本的统一草案已在內部仓库紧急撤回。三类原始decider的运行不受影响,既有的图灵机分类结果依然安全。】
在严谨的技术確认之后,邮件的末尾,多出了一项字斟句酌的新请求。
【经组內紧急討论,若您在后续日程中顺利完成对backwardreasong(反向推理)的復现与压力测试,希望能邀请您继续深度参与並审查我们依据您的建议所重构的共享机器语义、分离证明规则的可信核新方案。】
……
江临看完,把这封確认邮件归档入bb的本地项目日誌中。
右侧的状態看板隨之发生了一次重大的变动。
【cyclers_reprodu/pass】
【transted_cyclers_reprodu/certificate_yer_blocked】
【backward_reasong_reprodu/pendg】
【unified_certificate_schea/withdrawn】
【shared_verification_kernel/feasibility_retaed】
屏幕右上角,代表bb探索进度的总计数值没有发生变化。
资料库里也没有多出一台被重新归类的机器。
但在繁忙海狸问题中,进度从来不只意味著又排除了一台机器。
最终答案建立在一条漫长的排除链上。
每一台被判定为永不停机的机器,都必须有能够经受独立覆核的理由。
任何一个核验器只要错误接受过一份证书,它便失去了继续替其他结论担保的资格。此后经它放行的每一项结果,都必须重新接受审查。
江临构造的四状態反例,第一次运行只用了不到一秒。
它没有改变bb的已决数量,却让一份准备承担最终核验责任的统一草案从【候选】变成了【撤回】。
对方必须停止原有路线,重新划分可信核,把窗口隔离、最大回退范围和不同证明规则各自需要承担的义务,真正写进能够被独立检查的代码。
如果这个漏洞晚一些被发现,未来通过统一草案生成的形式化结果,都可能建立在一句未经验证的窗口已经隔离之上。
届时需要推倒重查的,將不再是一份四页报告,而可能是一整条已经延伸出去的证明链。
从这一晚开始,任何人想把一台机器送进已证明永不停机的集合,都不能再递上一句声明。
他必须带来证据。
可以说,江临虽然没有替bb增加一台已决机器,但他替那个最终答案,守住了必须是真的这道门。