一条路?”

    “让核验器根据机器的单步转移表,自己去倒推地图上每一个节点的合法前驱。”江临给出了答案,“核验器绝不往外做任何探索。它只做一件事:核对根据规则计算出的所有合法前驱,是否都已经存在于这张地图的边界之内。”

    乔闻铎深深地看了屏幕里的江临一眼,转头看向周述。

    “把江临刚才说的这句话,一字不差地写进第三套方案的设计约束里。”

    周述的手指在键盘上飞快敲击,纪要系统里立刻多了一行加粗的红字。

    【系统设计铁律:搜索与推断能力不得进入可信核;可信核只验证有限见证及其逻辑闭合义务。】

    随后,周述拿起手边那份盖有撤回标记的第一页打印稿,将其翻了过去,露出下面密密麻麻的底层代码。

    “如果backward Reasoning也能按照这条边界清晰地拆开,那么过去三个月的工作,就真的只废掉了最上面的那三项统包接口。”周述长舒了一口气,“新规范出来以后,其中一套独立实现,由我来写。”

    八点十五分,十五分钟的议程结束,会议通道关闭。

    江临回到隔离工作站的界面前。

    前两个复现目录【cyclers_Reproduction】和【translated_cyclers_Reproduction】保持着加密封存状态。

    他移动鼠标,只双击打开第三个目录。

    【backward_Reasoning_Reproduction】

    这个目录此前只有一个空壳和几份基础材料,连复现环境都尚未搭建。

    江临从九月一日保存的绝对干净的空白虚拟机基线中,复制出了一份新的系统快照。

    接着严格按照项目版本清单,逐一载入编译器、依赖库和基础运行环境。

    随后将源码目录的权限硬性修改为只读。

    所有的测试材料均采用六月修订后的公开哈希版本,旧的Git提交记录与旧的日志输出被打包隔离在独立的历史目录中,确保它们绝不干涉本轮的复现结果。

    八点三十一分。

    所有的准备工作完毕。

    提交号、依赖版本和测试集哈希全部被封存。

    backward Reasoning(反向推理)程序,在这个与世隔绝的独立环境中正式启动。

    与前两种试图预测未来的方法完全相反,backward Reasoning 的运行逻辑是反直觉的。

    它不跟着图灵机的读写头从空白纸带的起始状态出发,去一步步追问未来会发生什么。

    它选择站在图灵机停机的终点站,转过身,往回看。

    为了在脑海中具象化这个过程,可以想象一座道路错综复杂,庞大到看不见边界的超级城市。

    这台图灵机就是一个在城市中游荡的机器人。

    机器人从一间全白的初始屋子出发,停机则是一扇写着下班的终点之门。

    传统的正向模拟,相当于一个人跟在机器人身后,看着它今天向左拐,明天向右转,默默记录,等待它自己某一天凑巧走到那扇门前。

    如果这个机器人陷入了某种死循环,或者在无尽的荒野中向着远离门的方向一直乱走,跟在后面的人就只能在绝望中无止境地等下去,直到宇宙热寂。

    反向推理则采取了截然不同的哲学。

    它先派人直接站到那扇下班门前,不问来路,先找出所有能够一步跨进门里的位置。

    假设有三个这样的位置,就把它们标记为距离终点一步。

    接着,再从这三个位置继续往回找,标记出所有能够通过两步到达门口的位置,然后是三步、四步、更多步。

    如果经过一段时间的疯狂扩张,寻找前驱的过程突然停止了,不再有新的位置被加入进来。

    最终,反向推理程序绘制出了一张边界清晰的有限地图。

    这意味着,所有理论上能够通向终点门的道路,哪怕是迂回曲折的,都已经全部被圈入这张地图之中。

    地图的边缘,再也找不到任何一个可以进入内部的隐秘入口。

    此时,只要检查最后一件事情:机器人最初所在的那个全白屋子,在不在地图上?

    如果不在,结论便确凿无疑。

    因为通往终点的路已经被穷尽,而起点不在这些路上,所以机器人永远无法走到终点。

    这就是backward Reasoning证明图灵机不停机的核心数学思想。

    然而,这套思想在工程实现上的巨大麻烦,深深隐藏在穷尽所有道路和没有任何遗漏这几个字里。

    一个庞大的搜索程序,可以自信地打印出一行日志,声称自己已经把路找完。

    但最终的可信核验器,绝不能因为这句毫无根据的声明就盖章放行。

    第193步的致命反例刚刚用血淋淋的事实证明,把关键的闭环结论交给证书生成端去自说自话,只会让可信核重新长出同一处溃疡。

    江临敲击回车,运行了第一组公开的测试样例。

    终端很快给出结果。

    【backward_depth:300】

    【decision:NoN_hALtING】

    与结论一同留下的,还有数量庞大的节点扩展、前驱生成与重复配置合并记录。

    这些记录能够说明原decider怎样得到答案,却无法成为一份轻量证据。

    另一套程序若想沿着日志确认结论,几乎等于重新执行一次反向搜索。

    这样一来,复杂的搜索程序仍然留在可信边界之内。

    江临面无表情地关闭日志窗口。

    他不需要这些冗长的证明过程,也不需要知道程序是如何在黑暗中摸索的。

    所以只抽取最后留下的那张结果地图。

    地图上的每一个节点,代表着图灵机在某一刻可能处于的局部快照:当前内部状态、读写头脚下的符号,以及读写头周围一小段已经确定的纸带内容。

    最关键的是,窗口以外的区域不默认全是0,而是明确标记为未知。

    因此,一个节点代表的不是一张具体的完整纸带,而是一个集合,所有可能从这段局部已知图案向外延伸出去的,无数种纸带情况的总和。

    江临开始重构代码。

    将小核验器需要做的事情,暴力压缩成了三项绝对客观的检查。

    第一重验证:检查所有能够直接触发停机状态的纸带入口,是否都已经一字不落地包含在这张地图中。

    第二重验证:针对地图里的每一个已知节点,根据图灵机的规则,逐条倒推它所有合法的上一步。核对这些前驱是否必然落在地图的现有节点集合内。绝不能有一条合法的路径,从地图的虚无边缘悄悄漏进来。

    第三重验证: 检查全白纸带上的初始状态快照,绝对不能出现在这张地图里。任何试图通过坐标系平移、或者局部窗口裁剪来隐藏起点的欺骗手段,都必须被识别。

    只要这三项检查通过,无论原先的搜索过程是聪慧还是愚笨,是耗时一秒还是一年,都可以从裁判席上光荣退役。

    证书只负责提交这张有限的静态地图。小巧的核验器自己负责检查地图的边界是否完全封闭。

    九点四十一分。

    第一份符合新规范的反向不可达见证在江临的指尖生成。

    他毫不犹豫终止原decider进程,清除它留下的临时文件,只保留机器描述与见证文件。

    随后启动刚刚编译好的独立核验器。

    屏幕上没有重新渲染几百层的反向搜索树。

    核验器如同一个没有感情的齿轮,逐个读取地图节点,死板地按照机器的单步转移表,重新计算所有的前驱。

    四秒钟后,屏幕刷新,四行代表通过的绿色字符依次跃出。

    【hALtING_ENtRANcES/coVEREd】

    【pREdEcESSoR_SEt/cLoSEd】

    【bLANK_INItIAL_coNFIGURAtIoN/AbSENt】

    【wItNESS/VALId】

    一份原本依赖程序发誓它不会停的复杂结论,在这一刻,第一次变成了一张可以完全脱离原程序,由任何第三方工具独立验收的有限路线图。

    江临并没有在这一串令人心安的绿色结果前停下脚步。

    对于一个旨在无懈可击的安全架构来说,能验证正确的结果只是及格,能防住精心构造的恶意欺骗才是核心。

    他复制了刚才那份有效的见证文件,打开了十六进制编辑器,开始手动捏造三份用于攻击的恶意样例。

    第一份攻击样例:他在地图中间,人为地删掉了一个合法前驱节点。这相当于在原本封闭的城墙上,硬生生砸出了一个缺口,抹去了一条确实存在的进路,试图欺骗核验器这张地图已经封闭。

    运行核验器。

    【REJEct/SSING_pREdEcESSoR】

    红灯亮起。

    核验器在倒推时,发现了一个算出来的前驱不在名单上,当场拒收。

    第二份攻击样例:他不动地图结构,而是悄悄挪动了局部窗口的坐标原点参数,试图将全白纸带上的起始状态,通过坐标系的偏移伪装成另一个不相关的边缘位置,借此绕过起点检查。

    运行核验器。

    【REJEct/bLANK_StARt_hIddEN_bY_tRANSLAtIoN】

    

本章未完,请点击下一页继续阅读>>

章节目录