这个学霸疑似巨额知识来源不明 - 第167章 第193步的崩塌
九月一日,晚上八点零六分。
江临结束军训,洗完澡回到402室时,研究支持单元转来的材料已经躺在固定窗口队列里。
邮件標题经过了重新编號。
【a-1/bb5/第一轮復现材料/仅供本地审查】
附件没有直接进入电脑。
附件中包含外部代码。
即使代码公开,也可能访问不该访问的文件,或者在异常输入下长期占用处理器和內存,因此必须放进断网、限权的隔离环境中復现。
江临先核对来源、文件清单、公开decider仓库的提交记录,以及內部证书草案的版本清单。
確认哈希校验无误后,他才把压缩包下载到一块专门负责外部代码审查的物理介质里。
联网电脑的网线隨即被拔除,无线模块物理断电,介质接入旁边的隔离工作站。
工作站的屏幕亮起,展露出核心材料的真容。
三份来自公开仓库的decider代码。
三套包含数千个边界情况的测试集。
三份由清华团队根据现有decider输出格式整理出来的未公开证书草案。
以及二十七个已经被原始工具验证通过,却在统一草案中暴露出栏位衝突、错误拒绝或兼容性问题的边缘样例。
目录和昨晚建立的三个空项目一一对应。
【cyclers_reproduction】
【translated_cyclers_reproduction】
【backward_reasoning_reproduction】
江临没有运行作者提供的一键脚本。
在不可信的环境中运行自动化脚本,无异於把系统底层的控制权交出去。
他新建虚擬机快照,固定了编译器版本、底层运行库和所有第三方依赖,將三个项目的网络权限从內核层面全部切断,又为原始代码目录设置了只读掛载。
每一次编译產生的中间文件、標准输出和异常退出记录,都被定向写入一个单独的復现日誌系统。
第一轮復现很快失败。
程序能够正常完成编译,首个证书的哈希却无法与原记录对齐。
cycler项目引用了一个用於证书持久化的序列化库。原作者环境中保留著旧版本,本地构建脚本却没有写明依赖上限。新版接口改变了栏位的默认编码顺序,同一个证书对象写入磁碟后,字节表示与原环境不再一致。
江临没有修改源码,也没有强行兼容新版编码,而是根据提交日期回退依赖版本,並在復现日誌中记录环境差异。
八点四十三分,第一组样例完成復现。
【写到这里我希望读者记一下我们域名 101 看书网超好用,.??????隨时看 】
屏幕上出现第一组机器编號和运行记录。
【machine_id: cy-rp-017】
【state_count: 5】
【symbol_count: 2】
【t1: 186】
【t2: 254】
【configuration_hash_match: true】
江临没有因为最后一行绿色的true就轻易接受结果。
他从空白纸带重新执行转移函数,在第186步和第254步分別导出完整有限支撑、读写头位置和內部状態,再逐项比较。
两次配置完全相同。
从第186步开始,机器落入了一个无可逃脱的陷阱。
之后六十八步形成了一个封闭的拓扑环。
图灵机再次回到与起点毫无二致的配置,它未来的全部演化,只能像推石头的西西弗斯一样,机械地重复这段轨跡,直到时间尽头。
cycler证书所需的见证对象很清楚。
一张確定的包含所有分支的机器转移表。
两个明確的整数时间点。
两份通过计算得到的,必须完全一致的机器配置。
以及从第一份配置执行到第二份配置的,可由独立程序覆核的確定性运行段。
江临把作者提供的四百二十七个普通cycler样例,送进自己的模擬器里全部重新跑了一遍。
四百二十七次测试,全数通过。
隨后,他开始进行破坏性测试。
他写了一个简易的变异脚本,隨机篡改证书中的时间点、把读写头位置偏移一格、扩大纸带验证边界,甚至仅仅是翻转了某个非活跃区间的单个符號,从而生成了一大批人为製造的偽造证书。
核验器如同无情的闸刀,將这些偽造品逐一拒绝,没有出现一次漏判。
十点五十一分,第一份復现记录撰写完成。
【cyclers_reproduction / pass】
【证书语义:精確配置重复】
【可信前提:核验器独立执行t1至t2之间的全部转移】
【异常测试:未发现错误接受漏洞】
江临保存虚擬机快照,物理切断隔离工作站的电源。
当天的固定技术窗口就此结束。
第二天清晨,他照常去操场。
军姿、队列、正步、休息、补水。
九月的阳光带著残存的暑气,在塑胶跑道上蒸腾。
白天的训练没有因为昨晚硬碟里那些复杂的拓扑结构发生任何变化。
关於图灵机的多维状態空间、停机与非停机的边界,全都被他严丝合缝地压在意识的后台,直到晚间窗口重新打开。
九月二日,晚上八点零九分。
江临开始復现translated cycler(平移循环)。
前一晚在审阅立项摘要时,为了让技术联络员快速理解,江临用了一个通俗的比喻,把translated cycler概括成了一枚不断向远处滚动的印章。
印章每翻滚一圈,就在纸带上留下一个相同的图案,只是位置更靠右了。
既然它永远在向右开拓新的未访问区域,自然永远不会停机。
但现在真正进入代码级別的復现,他需要检查的,恰恰是那段科普里最容易被一笔带过的附加条件。
印章確实可以不断向右滚动。
但它过去留下的那些旧痕跡,那些被遗忘在左侧遥远坐標上的零星符號,真的永远不会像幽灵一样,在某次未知的回溯中重新挡住它前进的去路吗?
作者提供的专用decider非常谨慎。
它不会在纸带上隨便挑选两个看起来相似的局部图案就草率判定。
只在读写头抵达此前从没到过的新位置时留下记录,等机器再次向同一方向开出新格子,再把两次记录中的读写头位置对齐。
两次记录之间,读写头向后退得最远有多少格,需要比较的窗口就至少覆盖多少格。
只有机器状態相同、窗口內的图案能够平移重合,而且窗口外的旧痕跡不会重新挡住去路,才能把它列为translated cycler候选。
前二十七个基础样例全部顺利通过。
但江临没有继续编写脚本扩大测试数量。
二十七个绿色的通过记录,只能证明本地復现环境与原作者的开发环境在依赖和编译器行为上达成了一致,却无法证明清华团队试图草擬的那套通用证书规则在数学逻辑上是可靠的。
他把目光投向了那些棘手的边缘数据。
不过他没有先处理那些被统一草案拒绝的样例,而是从已经被专用核验器和统一核验器同时接受的样例里,抽出了一台处在纸带边界附近的机器。
这台编號为 tc-edge-09 的机器,在第912步和第1074步,出现了两段形状完全相同的局部纸带图案。
內部状態一致,读写头的相对偏移量一致,第二段图案整体向右平移了十一格。
translated cycler原始判定程序將它判定为非停机。
清华团队为这类证书编写的专用核验器接受了它。
试图统合所有规则的统一核验器也返回了通过。
一切看起来都很顺利。
江临敲击键盘,调用可视化工具,把两次机器配置从局部窗口,直接展开到了整条纸带的全局视野。
第912步,在被標记为有效的窗口左侧,距离三十七格的地方,安静地躺著一个孤立的数字1。
那是机器在极早期的运行阶段,向左侧无序游荡时留下的废弃物。
在此后的七百多步里,读写头一路向右狂奔,再也没有回头访问过这个坐標。
到了第1074步,那个孤立的1依然停留在原先的绝对坐標上。主体图案向右平移了十一格,窗口內部的0和1完全一致,整条纸带却没有发生严格的整体平移。
这台机器仍然可以被正確判定为translated cycler。
原始专用decider並不需要预测机器的无限未来。它只在读写头抵达此前从未访问过的最右位置时留下记录,然后等待机器再次向右开出新格子。
两次记录之间,读写头向左退得最远有多少格,专用decider就把比较窗口至少向左扩展多少格。隨后,它將两次记录中的读写头位置对齐,检查机器状態是否相同、窗口內的图案能否在平移后完全重合。
如果这些条件全部成立,確定性的转移规则就会让下一段运行按照同样的方式整体向右平移。不断重复这一结论,便能证明机器只会继续开闢新的格子,不会重新退回窗口之外的孤立符號。
专用核验器之所以接受这台机器,是因为它会独立重放两次记录之间的运行段,重新计算最大回退距离,並检查比较窗口是否真正覆盖了所有可能重新参与演化的內容。
但在试图追求通用性的统一核验器代码里,江临没有找到这段防御性的检查逻辑。
为了让普通的cycler和复杂的translated cycler能够共享同一套精简的数据结构,草案的设计者做了一个大胆的架构妥协。
他们把窗口之外的旧痕跡以后绝对不会重新参与演化这个极其复杂的动態验证过程,强行压缩成了一个由证书生成端自己填写的布尔类型栏位。
【isolated_window: true】
对於眼前的这台 tc-edge-09 机器来说,这个布尔值在物理事实上恰好是真的。
它確实不会回头。
统一核验器虽然放弃了亲自验证,但因为它碰巧读到了一个诚实的声明,所以碰巧得到了正確的结果。
江临的眼神冷了下来。
一个被设计用来进行最终形式化裁决的核验系统,它的权威性不能建立在证书生成端碰巧说实话的脆弱基础上。
如果在法庭上,法官只凭嫌疑人自己出具的一纸无罪声明就直接落槌,那这套审判系统本身就是最大的安全漏洞。
江临在復现日誌的顶端,敲下第一条被標红的阻塞项声明。
【blocker-01:translated cycler证书缺少可独立核验的窗口隔离见证。】
【技术细节:专用核验器会独立重放两次记录之间的运行段,並校验最大回退范围;统一核验器则只读取isolated_window栏位。】
【结论:当前边缘样例虽判定正確,但该流程存在根本性逻辑断裂,无法证明统一核验系统具备抗偽造能力。】
写完阻塞项,他隨后复製了那份边缘样例,准备进行一项在系统验证领域极具攻击性的操作——构造恶意的逻辑炸弹。
原始的图灵机规则、原始的生成证书、原始的通过判定全部保留,作为比对的基准对照组。
在复製出来的新沙盒里,江临像个精密的外科医生,拆开机器的转移函数表。
改写了其中一条罕见触发的分支规则,强行修改了读写头的转向。
这台被改造过的机器,依然会在早期运行中把一个1拋弃在有效窗口之外数十格的地方,也依然会规规矩矩地完成两次相隔上百步的局部图案平移,生成一份看似无懈可击的平移证明。
但是,在这两次平移完成、骗过比对逻辑之后,江临植入的暗门被触发了。
机器的状態陷入了一个冗长的折返循环,读写头开始缓慢而坚决地向左侧倒退。
对应的恶意证书依然只提交那段表现良好的局部快照,並在隔离声明栏位里,堂而皇之地填上了代表安全的真值。
【isolated_window: true】
机器的静態描述哈希、窗口內部的运行轨跡追踪、以及局部的配置快照哈希,全都顺利通过了统一核验器的重重重算。
唯一没有被核验器独立沙箱验证的,依然是那个问题。
窗口之外的符號,到底能不能重新侵入读写头的路径?
原版专用核验器重新执行证书对应的运行段,发现读写头的最大回退范围越过了证书声明的隔离边界,因此拒绝了这份证书。
然而,清华团队主推的现有统一核验器,毫无防备地读取了那个虚假的布尔值,跳过了边界检查。
屏幕上,一行刺眼的绿色字符跳了出来。
【certificate valid(证书有效)】
江临盯著这行违和的绿色字体看了一会儿,调出自己编写的底层模擬器,將这台被篡改的机器置於空白纸带上,让它在没有环境干预的情况下自然演化。
时间流逝。
终端上的步数计数器疯狂跳动。
第6841步,向左折返的读写头越过证书声称不会回访的边界,碰到了窗口之外那个孤立的1。
局部平移结构隨即被破坏。机器沿著新触发的转移继续执行,进入停机状態。
而就在几分钟前,代表著最高审查標准的统一核验器,刚刚庄严地接受了一份证明这台机器永远不会停机的法定证书。
江临面无表情地敲击回车,把测试环境完全重置,清空所有缓存,再次运行整个流程。
结果没有任何改变。
绿色的有效声明,与最终的停机事实,构成了极其讽刺的对比。
这次漏洞,错误不在挖掘出这台机器的原始decider,也不在於那个勤勤恳恳做边界检查的translated cycler专用核验器。
它完全且只存在於那份雄心勃勃,试图用一套简洁结构容纳三类复杂数学证明的统一草案之中。
原样例里的隔离声明確实是真的,偽造证书里的同一声明却是彻头彻尾的谎言。
统一核验器读取了这个决定生死的栏位,却主动切断了分辨真偽的神经。
一个试图用形式化工具缩小可信边界、消除人类干预的系统,在最底层的架构设计上,反而把最核心的判断权,原封不动地交回了根本不受信任的证书生成端。
晚上十点五十六分。
江临没有继续去修改草案的验证代码。
在確认了架构上的逻辑断裂后,修补几行代码没有任何意义。
他保存了那份恶意偽造的失败证书,长达6841步的完整运行轨跡,统一核验器被欺骗后的接受日誌,以及最终停机配置、完整纸带快照与运行轨跡,生成了一个独立的隔离復现包。
【tc_false_accept_case_01】
但这还远远称不上是一个优雅的最小反例。
当前的测试对象依然保留了太多原始机器复杂的转移结构,需要运行足足六千多步,状態空间膨胀到难以肉眼追踪,才会暴露出核心衝突。
这种庞大且混乱的用例,对於需要进行人工逻辑覆核的研究员来说,无异於在垃圾堆里找线索,说服力大打折扣。
江临移动滑鼠,把任务看板上的状態从【漏洞確认】改成了【反例压缩】。
十一点,固定窗口关闭。
江临保存所有进度,安静地合上电脑。
第三天晚上,江临依然没有去碰第三个项目 backward reasoning(反向推理)。
他调出了昨晚那台错误接受的测试对象,开始进行枯燥却需要逻辑直觉的剪枝工作。
他要在不破坏底层漏洞逻辑的前提下,逐项刪除机器多余的状態节点和转移路径。
首先,他尝试將五个状態节点压缩成四个。
刪去一个辅助跳转状態,重新路由相关的转移指令。
重新运行统一核验器,依然被欺骗接受。
运行模擬器,机器依然在数千步后停机。
错误路径存活。
接著,他盯上了转移表里一条只有在机器刚启动,向左游荡那几十步里才会被触发的冗余支路。
手起刀落,將分支抹平。
重新测试,错误仍然存在。
隨后,他开始挑战物理空间的极限。
那台机器把炸弹符號扔在了距离主体图案三十七格远的地方。
这太远了。
江临调整了写入逻辑,让机器刚走出去九格,就把那个1留在原地,然后立刻掉头开始构筑偽造的平移结构。
统一核验器依然对九格之外的隱患视而不见,盲目接受。
而原本要熬到第6841步才会暴露的衝突,因为物理距离的缩短,被极大地提前到了第193步。
江临看著转移表,试图进行最后一次极限压缩。
他试图再刪掉一个状態节点,让机器变成三状態。
但这一次,数学的刚性显现了。
在当前构造中,再刪一个状態便无法同时保留局部平移和延迟回访。
江临毫不犹豫地撤销更改,退回到上一个四状態版本。
压缩后的样例只保留四个状態、七条有效转移、一个位於窗口外九格的符號,以及两次相隔26步的偽平移配置。
统一核验器在不到一秒內接受了证书。完整模擬运行到第193步时,读写头重新碰到窗口外的符號,机器隨即停机。
而將其放入底层模擬器,仅仅在运行到第193步时,读写头便撞上了那个遗留的符號,机器宣告停机。
【tc_false_accept_case_01 / compressed】
【verifier_result: accept】
【ground_truth: halt_at_193】
【root_cause: unverified_isolation_claim(未核验的隔离声明)】
江临连接了宿舍里的小型印表机,伴隨著轻微的机械运作声,把这份浓缩了整个验证漏洞的完整反例列印到了两张a4纸上。
第一张,是清清爽爽的四状態转移表,以及前两百步纸带演化的关键帧图解。
第二张,是统一核验器从读取恶意证书、跳过边界检查,一路狂奔到返回接受结果的底层系统调用路径。
这晚,江临並没有急於把这份足以推翻现有草案的反例发出去。
他需要確保沟通的绝对清晰。
於是把转移表、错误接受路径和基於底层逻辑的根因说明,用精炼的语言压成了一页只有核心事实的覆核摘要。
九月四日,晚上七点四十六分。
门外传来一阵隨意的敲门声。
江临看了一眼时间,按下快捷键,內部证书草案、復现报告和带有项目標识的目录同时锁定。
隔离工作站上只留下公开decider代码、他自己构造的四状態测试机,以及一组去掉了所有来源环境信息,纯粹展现底层推演的运行结果。
確认屏幕上不再有任何敏感信息后,江临起身打开了门。
赵承宇站在最前面,手里拎著烤冷麵和小酥肉
顾明澈稍微靠后,手里提著一袋水珠未乾的紫黑葡萄。
林一舟则抱著一盒切好的冰镇西瓜。
赵承宇往上抬了抬手里的塑胶袋:“刚才在紫荆园碰上了,寻思著顺路过来看看你在不在。”
这是开学以来,三个人第一次真正踏进402室。
江临没有多说什么,转身从鞋柜里取出三双尚未拆封的塑料拖鞋撕开包装,又弯腰把摺叠凳和床铺边缘的软垫拉出来,腾出足够坐下的空间。
赵承宇很快占住床沿。
顾明澈坐到相对板正的摺叠凳上,把葡萄放到桌子中间。
林一舟拖过另一把靠背椅,坐下时,位置不由自主地离江临那台散发著微光的工作站稍近了一些。
烤冷麵浓郁的酱汁味、小酥肉的油炸香气,很快和西瓜清冷的甜味混杂在一起,充满了市井烟火气。
最初的十几分钟,几个人边吃边谈,话题自然而然地围绕著白天枯燥的军训打转。
哪个教官计时格外严格,哪支连队休息时多唱了两首歌,明天会不会下雨,紫荆园三楼的牛肉麵究竟值不值得排队。
江临坐回工作檯前,一边听他们说话,一边重新运行四状態测试机。
带有內部標识的材料仍处於锁定状態,屏幕上展示的只有公开原理和不对应任何真实未决机器的人造反例。
七点五十九分,林一舟先注意到终端里的三个目录。
【cyclers_reproduction】
【translated_cyclers_reproduction】
【backward_reasoning_reproduction】
“busy beaver,繁忙海狸问题?”林一舟推了一下眼镜,声音里带著一丝意外。
“嗯。”江临应了一声。
得到肯定答覆的林一舟拿西瓜的动作慢了半拍。
信息学竞赛国家集训队不会要求选手求出bb(5),那不现实,却足以让他知道这个名字的分量。
那是计算理论边界上最著名的难题之一。
由於不存在一套能够判断所有程序是否停机的万能方法,研究者只能把五状態机器分成一类又一类,再为每一类寻找可以覆核的排除证据。
屏幕上的三个reproduction目录,也就不再像普通开源项目的测试文件。
江临正在检查的,是数以百万计的判定结果凭什么能够被人相信。
顾明澈顺著林一舟的目光看过去,注意到了终端右侧不断滚动的纸带运行轨跡。
“你在判断这个小程序会不会停机?”
“更准確地说,我在审查一份试图证明它永远不会停机的逻辑证书。”江临解释道。
赵承宇从烤冷麵的盒子里抬起头,远远看了一眼满屏的0、1、l、r,无语道:“能用人话说说吗,这堆零和一到底在干嘛?”
江临伸出手,指向屏幕左侧那个正在解析配置文件的进程。
“有人交来一份形式化的证明,声称这台机器会像一枚滚动的印章一样,在纸带上永远向右侧复製相同的图案,永远不会触及停止状態。”
接著,他的手指平移,指向右侧那个正在疯狂增加步数的完整模擬界面。
“左边这个被隔离的小程序,负责用一套既定的规则去审查这份证明是否合法。而右边,是从一条绝对空白的纸带开始,不加任何假设,让这台机器真正地一步步往下运行。”
“所以,理论上两边应该得出完全相同的一个结论?”赵承宇咽下食物,抓住了核心逻辑。
“对。”江临的回答乾脆利落。
解释到这个深度,对於非专业领域的听眾来说已经足够。
赵承宇继续吃烤冷麵,顾明澈翻看书院刚发下来的通知,林一舟偶尔抬头看一眼屏幕右侧那台机器依然在不断攀升的运行步数。
林一舟是姚班这一届的新生,同样也是信息学奥林匹克竞赛国家集训队出身。
他的知识储备足以让他一眼看懂转移表的结构和当前的测试框架。
在过去数年的信竞生涯中,他也曾无数次为了卡掉別人写错的算法,而绞尽脑汁构造各种极端的边界数据。
但translated cycler这种涉及平移后的配置重复、窗口隔离条件证明的前沿理论,究竟需要建立何种严密的形式化边界条件,已经超出了他凭藉直觉就能直接判断的范畴。
他唯一能够確认的是,在那个终端界面上,测试机的每一次微小改动、甚至只是修改了一个状態的分支走向,都被严谨地打上了独立的版本號。
机器描述的哈希值、运行轨跡的內存快照、局部图案的二进位比对结果,甚至最终停机那一刻的內部状態、读写头位置和纸带內容,全都被分门別类地保存著。
这意味著任何一个看似偶然的结果,都可以隨时从那条代表著起点的空白纸带上,分毫不差地重新推演出来。
这是標准的、带有防御性质的工程验证级开发。
八点零七分。
安静运行的屏幕左侧,审查进程率先结束,亮起了一行显眼的绿色结果。
【certificate valid】
然而,屏幕右侧的完整模擬並没有因此停止,依然在执拗地向前推进。
第190步,第191步,第192步,第193步。
右侧的终端突然卡顿了一下,隨后弹出鲜红的提示。
【halt】
赵承宇把正准备夹起最后一块小酥肉的筷子硬生生地停在打包盒上方,眼神在左右两个窗口间来回切换。
“等等,左边刚才不是说那份证明有效,这机器不会停吗,右边这怎么直接停机了?”
“因为这份证书遗漏了一个致命的前置条件。”江临的声音没有丝毫起伏,像是在宣读一份物理实验的观测数据,“它只向核验器展示了读写头附近那段平移得很工整的图案,却无法用逻辑证明,那些被它拋弃在窗口外面的旧痕跡,以后永远不会重新挡住它的路。”
顾明澈放下手机,看著並排停住,结论却截然相反的两个终端界面,若有所思:“你的意思是,这台机器后来走回头路了?”
“准確地说,是在第193步。”江临调出那一瞬间的纸带快照,“它越过了证书里信誓旦旦声称绝对不会回访的物理边界,碰到了早期运行时刻意留在外面的一颗地雷——一个孤立的数字1,整个平移结构瞬间崩溃。”
“那是原来的那个判定程序写错了?”顾明澈追问。
“原始专用decider会重放有限运行段,並重新检查最大回退范围。”
江临指尖在键盘上划过,把去掉来源信息的两个运行结果和纸带快照並排放大。
“缺少这个安全条件的,是后来有人试图强行揉捏出来的一份统一证书草案。这台机器本该被拒绝,但新草案为了兼容性开了后门,被我构造的数据骗过了。原有的那些数学分类证明,暂时不受这个反例的影响。”
林一舟没有参与討论,他的视线正定在屏幕角落里的版本演进摘要上。
【initial_case:5 states/halt at 6841(初始案例:5状態 / 6841步停机)】
【compressed_case:4 states/halt at 193(压缩案例:4状態 / 193步停机)】
“你最初找到的那个漏洞模型,要一直跑到六千八百四十一步才暴露出错误?”林一舟突然开口,声音有些低沉。
“对。”
“然后你把这个反例压缩到了只要193步就能暴露?”
“只有把状態压减到四状態,两张a4纸就能列出完整转移表、关键纸带快照和错误接受路径。”江临看了一眼桌面上那两页纸,“排除了所有干扰项,別人在做人工覆核时才不会被多余的逻辑分支转移注意力。”
林一舟看了一眼桌边列印出来的四状態转移表。
在信息学竞赛里,找到一组让程序答错的数据並不算结束。
真正能够直接刺穿底层逻辑的反例,应当刪除所有无关结构,让错误只指向一个明確的边界条件。
而眼前这台被江临亲手捏造出来的机器,还要满足远比竞赛苛刻得多的理论要求。
它必须在极小的状態空间內,表现出完美的局部图案平移,必须能让机器哈希和运行段校验顺利通过核验器的审查,最后,还要极其精確地沿著那条被核验器遗漏的路径,在第193步重新碰到窗口外的旧符號,並沿新触发的转移进入停机状態。
在这个逼仄的四状態空间里,江临哪怕多刪一条转移规则,反例就会灰飞烟灭。
少刪一条,人工覆核的代码量就会成倍增加。
要在图灵机的確定性运行轨跡上,精准地找出这条狭窄到令人窒息的缝隙,並且始终维持著局部平移的偽装……
这不仅需要深厚的数学功底,更需要不带任何情绪的工程直觉。
林一舟没有再多问任何关於translated cycler细节的问题。
因为他知道,眼前这台冰冷的四状態机器本身,就是最高效也最具压迫感的回答。
顾明澈看了看江临的背影,问:“所以,你这几天都在做这个?”
江临点点头:“第一种循环已经復现完成,第二种的统一证书层被这个反例卡住了流程,至於第三种反向推理,环境还没搭建好,还没开始。”
顾明澈能够听懂的技术细节有限,却听懂了三个状態之间的重量。
一个已经完成独立復现,一个被江临用反例卡住,剩下一个仍在等待处理。对他们而言,繁忙海狸还是计算理论中一个遥远而著名的难题;到了江临手里,它已经被拆成能够编號、復现、否决和继续推进的具体工作项。
更让顾明澈在意的是,江临谈到那份错误证书时,语气里没有发现大漏洞后的兴奋。
他先划清原始decider不受影响,再说明出问题的只是统一证书层。
找到错误之后还能压住结论边界,这件事本身比屏幕上的【halt】更难。
赵承宇低头看了看面前还剩半盒的烤冷麵,又抬头看了看那台造价不菲的工作站屏幕上刺目的【halt】。
微妙的荒谬感涌上心头。
他们三个人今晚只是因为刚经歷了苦哈哈的军训,穷极无聊,带著水果和夜宵过来串个门,聊的都是哪个教官更严厉,食堂哪个窗口的大妈手抖得没那么厉害这种鸡毛蒜皮的閒天。
但是,就在距离他手里这个廉价塑料打包盒不到两米远的地方,一份试图在数学界统合三类复杂非停机证明的前沿技术路线,已经被屏幕上这台刚刚跑完一百九十三步的粗糙小程序,硬生生地截停在了半空中。
屏幕上代表有效和停机的矛盾结果,谁都能看得懂。
但至於这个矛盾在更深层次的形式化证明上为什么会成立,这个漏洞的影响范围应该划到多远,清华团队下一版的系统核验架构又该怎样重构,这依然不是他们三个才刚刚穿上迷彩服的大一新生能够接手探討的问题。
九点零七分,几个人意兴阑珊地开始收拾桌面。
吃空的纸盒被整齐地装回塑胶袋系好死结,剩下的葡萄和西瓜重新盖上保鲜膜放进冰箱,喝空的饮料瓶被统一放在门后的垃圾桶里。
赵承宇换回自己鞋子的时候,没忍住又回头看了一眼那个黑底白字的终端屏幕:“说真的,本来只是打算来串个门聊聊天,怎么吃顿烤冷麵的功夫,还撞上停机问题了?”
“是非停机证明的安全核验问题。”林一舟在一旁严谨地纠正了他的说辞。
赵承宇摆了摆手,推开门:“行吧行吧,他今年都已经搞出了江氏砖,搞定了pfr猜想,再解决一个非停机证明的安全核验问题,也是非常符合逻辑的。”
三个人鱼贯而出,离开了402。
房门咔噠一声关上。
宿舍里重新恢復了寂静,只有小酥肉的油腻味和西瓜的甜香还残留在空气中,证明刚刚有几位年轻人带著大学生的鲜活气息来过。
江临重新坐回工作檯,按下解锁快捷键。
內部证书草案与那份长达数页的完整復现报告,重新在屏幕上铺展开来。
閒聊结束了。
现在,真正需要白纸黑字写进正式报告的技术边界,被重新冷酷地摊开在无影灯下。
cycler的证明逻辑极其简单,提交的只是两份完全相同的全局机器配置,以及连接这两份配置的確定性正向运行段。
translated cycler的逻辑发生了跳跃,除了要证明局部图案发生平移,还必须用强有力的逻辑外壳,证明窗口外部的未知內容绝对不会像幽灵一样重新进入演化区域。
而尚未开始復现的backward reasoning(反向推理),其数学逻辑更加晦涩。
它提交的不再是正向的演化,而是通过回溯,去证明某个特定的状態集合是一个不可达的反向孤岛,或者提供一个能够证明这个孤岛完全闭合的有限见证。
三类证据可以共享机器描述、空白纸带初始条件和单步转移语义,也可以被装进同一个外层证书容器。
真正不能强行合併的,是各自特有的见证结构与核验规则。cycler需要重放完整配置之间的运行段;translated cycler需要额外检查平移窗口与最大回退范围;backward reasoning则需要验证反向不可达集合的闭合条件。
当前草案的问题,正是把这些不同的证明义务压缩成了几项由证书生成端自行填写的布尔栏位。
江临在接口草案顶部划掉原目標。
【目標:统一三类非停机证书的数据结构。】
改为——
【目標:统一机器语义与可信核边界;允许不同证明规则提交各自的见证结构。】
公共部分暂时保留五项。
【机器描述哈希】
【空白纸带初始条件】
【单步转移语义】
【证书类型標籤与核验规则分派】
【核验结果、失败步骤与復现轨跡】
这个调整没有否定共享核验內核的可行性。需要停止的,是让当前统一证书草案直接承担最终裁决的路线。
如果继续沿用旧草案,即使后续所有测试样例都显示绿色,也无法排除核验器只是相信了证书生成端自行填写的错误声明。
十点二十四分,江临在键盘上敲下最后一个句號,完成了第一份针对草案的正式回传材料。
附件文件非常克制,只有四页。
【第1页:经过极限缩减后的四状態反例转移表】
【第2页:利用漏洞生成的偽平移证书原始数据】
【第3页:统一核验器因未执行方向检查而导致错误接受的底层调用路径追踪】
【第4页:底层架构修改建议与系统安全影响边界】
影响边界的部分,被他用粗体字单独標出。
【该反例仅针对统一草案的架构安全。它不影响普通cycler、translated cycler与backward reasoning原始专用decider已经独立完成的机器的判定结果。】
【该反例只针对统一证书草案,不影响三类原始专用decider及其既有分类结果。】
【在窗口隔离见证、完整的数学支撑,或逻辑等价的替代条件被正式编写进可信核代码以前,严禁使用该草案生成任何具有约束力的形式化结论。】
江临没有在邮件末尾附上一套看似圆满的全新完整方案。
因为他是个纯粹的技术现实主义者。
第三项backward reasoning的反向不可达逻辑尚未开始復现,这套经过重构的统一可信核究竟能不能安全容纳那种诡异的反向证明结构,还没有经过任何脏数据的实战测试。
如果在缺乏验证闭环的此刻,贸然提交一个仅凭脑补设计出来的所谓新架构,那只不过是用一个未经验证的黑色盲盒,去替换掉另一个已经破底的黑色盲盒。
他只在文档的最后一页,用代码块画下了一个粗糙却边界清晰的下一阶段拓扑草图。
【shared kernel(共享可信核)】
├── 【machine semantics(底层机器语义)】
├── 【exact cycle rule(精確循环核验规则)】
├── 【translated cycle rule(平移循环核验规则 - 需补充隔离验证)】
├── 【backward unreachability rule(反向不可达核验规则 - 待定)】
└── 【failure trace(异常回溯记录)】
十点三十一分,这封带著反例的邮件通过研究支持单元,正式转发回清华。
九月五日,上午九点十七分,对方的团队在他们的伺服器上完成了对这份四状態反例的独立復现。
回復仍然先进入三楼的研究支持单元。
技术联络员快速核对了一遍附件和那四页刺眼的影响说明,立刻將邮件的优先级標红,打上【a-1/原问题直接反馈】的標籤,安静地放入江临的信箱,等待著今晚窗口期的开启。
晚上八点整,刚从操场上带著一身疲惫回来的江临,点开回信。
……
【反例已由我方独立沙箱復现成功。】
【测试记录显示,统一核验器在该恶意样例上发生严重错误接受,完整模擬实测於第193步发生停机。】
【根因完全確认:统一草案底层架构存在信任漏洞,错误信任了未受保护的 isolated_window 栏位。原专用 translated cycler decider 中核心的方向性边界检查算法,在整合过程中未被有效迁移。】
【处置方案:当前版本的统一草案已在內部仓库紧急撤回。三类原始decider的运行不受影响,既有的图灵机分类结果依然安全。】
在严谨的技术確认之后,邮件的末尾,多出了一项字斟句酌的新请求。
【经组內紧急討论,若您在后续日程中顺利完成对backward reasoning(反向推理)的復现与压力测试,希望能邀请您继续深度参与並审查我们依据您的建议所重构的共享机器语义、分离证明规则的可信核新方案。】
……
江临看完,把这封確认邮件归档入bb(5)的本地项目日誌中。
右侧的状態看板隨之发生了一次重大的变动。
【cyclers_reproduction / pass】
【translated_cyclers_reproduction/certificate_layer_blocked(证书层受阻)】
【backward_reasoning_reproduction/pending(待处理)】
【unified_certificate_schema/withdrawn(统一草案/已撤回)】
【shared_verification_kernel/feasibility_retained(共享核/保留可行性)】
屏幕右上角,代表bb(5)探索进度的总计数值没有发生变化。
资料库里也没有多出一台被重新归类的机器。
但在繁忙海狸问题中,进度从来不只意味著又排除了一台机器。
最终答案建立在一条漫长的排除链上。
每一台被判定为永不停机的机器,都必须有能够经受独立覆核的理由。
任何一个核验器只要错误接受过一份证书,它便失去了继续替其他结论担保的资格。此后经它放行的每一项结果,都必须重新接受审查。
江临构造的四状態反例,第一次运行只用了不到一秒。
它没有改变bb(5)的已决数量,却让一份准备承担最终核验责任的统一草案从【候选】变成了【撤回】。
对方必须停止原有路线,重新划分可信核,把窗口隔离、最大回退范围和不同证明规则各自需要承担的义务,真正写进能够被独立检查的代码。
如果这个漏洞晚一些被发现,未来通过统一草案生成的形式化结果,都可能建立在一句未经验证的窗口已经隔离之上。
届时需要推倒重查的,將不再是一份四页报告,而可能是一整条已经延伸出去的证明链。
从这一晚开始,任何人想把一台机器送进已证明永不停机的集合,都不能再递上一句声明。
他必须带来证据。
可以说,江临虽然没有替bb(5)增加一台已决机器,但他替那个最终答案,守住了必须是真的这道门。
添加书签
搜索的提交是按输入法界面上的确定/提交/前进键的