他们在夜色中沿着河岸走了很久,直到河道开始收窄转弯,两岸的植被也变得更加密集,柳如烟才停下来。她站在水边的石块上,弯腰用手掬了一捧河水,河水冰凉,在指尖停留一瞬就顺着指缝流走了,只剩下掌心残留的水痕和冷意。她直起身来,甩了甩手上的水珠,侧过头看着顾衍。 "我们走回镇上还需要大概两个小时。"她说。她的声音被夜色收窄了,精确地传向他的方向,没有多余的发散,"天亮之前我们可以找到一个还在营业的地方。不会有人注意到我们。" 顾衍点了一下头,没有说话。他转过身,沿着河道上游的方向迈开了步子,靴底在鹅卵石和泥土交替的地面上发出变换的声响。柳如烟跟上去,两个人的脚步重新对齐,间距保持在那个她已经熟悉的宽度。星光从他们头顶倾斜下来,把两人一左一右的轮廓分别投在地面上,然后在地面潮湿处的折射下又倒映出一组更浅的虚影。 他们走了一个多小时。河道在某个位置分出了一条更窄的支流,沿着支流的方向走到尽头,是一片已经被废弃的工业区边缘,铁轨的枕木半埋在碎石和荒草里,一辆锈蚀的油罐车横在轨道尽头。柳如烟越过铁轨,沿着一条被重新铺过的柏油路走了大约十分钟,看到了路边一间门面很小的通宵营业的复印店,窗口里亮着白光灯管,门玻璃上贴着手写的营业时间告示。她推门进去的时候门铃发出了一声短促的叮当声,柜台后面坐着一个穿灰色卫衣的中年人,耳朵里塞着耳机,正在看一部屏幕亮度调到最低的旧电影。 柳如烟走到柜台前,从口袋里拿出那本笔记本,放在柜台上,翻开到她抄写完整表达式的最后一页。"我需要使用复印机。"她说。"以及一台能连接公共网络但不会记录登录信息的终端。" 中年人从屏幕上抬起目光,扫了一眼柜台上的笔记本,又扫了一眼站在门口附近没进来的顾衍。他没有多问,只是把耳机从耳朵里摘下来挂在脖子上,站起来从柜台下面拖出一台陈旧的台式机,把显示器朝柳如烟的方向转了一下。键盘的按键表面已经被打字磨得发亮,空格键上的字母已经看不清了。他指了指机器侧面一个标识牌,上面写了一行手写的密码。 柳如烟在机器前坐下来。键盘的键程很深,按键发涩,她需要比平常更用力才能敲出每一个字符。但她敲得并不急,每一次落指都在确认键位正确之后才按下去。她在文本编辑器里敲出的第一行是论文的标题,只用了一个短语,不加修饰,陈述式的。第二行是一段导言,三句话,说明了推导链的起点和终点坐标,以及验证方法的独立性和可重复性。第三行开始她把自己在反向验证过程中拆解的每一个关键步骤都缩写成了简明的陈述句,每一个句号落定后她都停顿片刻,确认下一行的内容已经在她脑中排好了顺序。 顾衍从门口走过来,站在她侧后方的位置,低头看着她敲出来的那些句子。他看了一会儿之后,把她放在柜台上的笔记本拿起来翻到她标注问号的那一页,然后在便签纸上写了几行补充说明,递到她的视线边缘。她读了之后在论文正文中插入了一段注释,位置在推导链中段某个关键转折点下面,说明那个步骤的验证可以由独立的检查者使用任何标准数值方法重算,不需要特殊的初始条件设置。 她敲完正文之后,光标停在最后一行的末尾。她看着屏幕,停了十几秒,然后打下了一行附录说明:验证过程独立于作者身份,本文件不包含验证者署名信息。需要验证完整推导链的读者可以从起点坐标出发自行重走整条路径。收敛值已在本文件结尾处给出。按下回车键之后,她移动光标到文件底部,在空了两行之后敲出了那个十四位的收敛值,然后用四个回车键隔开,把光标移到了文档的最末端。 她保存了文件,没有用任何本地用户账号。她把文档保存到一块外置存储卡上,然后把存储卡从机器侧面拔出来,放在掌心里握了一下。存储卡的塑料表面是凉的,但在她掌心的温度中很快开始升高。 "上传到哪里?"顾衍的声音从她侧后方传过来,是问句,但不带疑问的语调,像是在确认一个她已经决定好的选项。 柳如烟转过头看着他,柜台的白光管灯从上方照下来,在她的额头上方留下一道笔直的亮线。她开口说了一个存储库的地址——一个由分布在不同地理位置的节点共同维护的公共数据平台,所有存入的内容都会被复制到至少七个独立节点上,任何单个节点的关闭都不会影响内容的完整可访问性。她没有用任何口令,没有加密,没有附加元数据。她只是把存储卡重新插回机器,在终端页面的上传框中选中了那篇文档,然后按下了确认键。 屏幕上出现了一个进度条。进度条的填充速度比柳如烟预想的快,大约三十秒就走完了。进度条走完之后,页面上弹出了一个哈希值——由一长串字母和数字组成的确认码,可以作为文件完整性的验证标识。她盯着那个哈希值看了几秒,然后把它抄写在便签纸上,折好,放进口袋里。 她合上笔记本,站起来,把椅子推回桌下。柜台后面的中年人不知道什么时候已经把耳机重新塞进了耳朵里,视线回到了那个旧电影的暂停画面上。柳如烟把那块存储卡从机器上拔下来,放在柜台上,推向他那边。他用余光扫了一眼,没拿,也没说任何话。柳如烟没有等他的回应,她转身走向门口,推开门,外面的夜风迎面扑进来,带着黎明前那种特有的清冷和湿润。 她站在门外,抬头看了一眼天空。天色已经从彻底的黑暗转变成了那种深蓝和浅灰交织的过渡色,东方的地平线上出现了一条比周围略亮的带,像一道正在缓慢变宽的白线。星光仍然在,但亮度正在减弱,像是被正在接近的晨光逐渐稀释了。 "已经上传了。"她说。她的声音在即将到来的黎明前显得比刚才在店里时更空一些,像被广阔的户外空间拉薄了。顾衍从她身后走出来,站在她旁边,和她一样看着东边那条正在变亮的天际线。他开口的时候声音很轻,像是正在配合这个时段的光线调整自己的音量:"上传完成之后,至少有七个节点保存了它的副本。演算会可以关闭其中任意一个,但他们无法同时关闭全部七个。在任何一个节点上,那篇文档都会持续存在,等待被读取和验证。" 柳如烟点了一下头,幅度很轻。她的目光没有从天际线移开,那条亮带正在稳步扩大,颜色从白色慢慢透出一点暖色调,像某种正在从底部被点燃的渐变。她能感觉到自己的呼吸和天光正在接近同步的频率,每一次吸入的冷空气都对应那条亮带在视野中增加的一段宽度。 顾衍也看着那条天际线。他的侧脸在正在增强的晨光中开始显现出更多的轮廓细节,颧骨和下颌之间的那条线条变得比在夜色中更清晰。他开口时声音里的那种轻淡已经减弱了,像是被逐渐增强的光线带出了一种更具体的质地:"你刚才敲完收敛值之后,文章末尾空了四行才结束。你留了一个空间。" 柳如烟沉默了一会儿。她的目光仍然落在天际线上,但她的嘴唇动了一下,像在确认一句还没有被放出来的话的发音位置。然后她开口,声音被晨光托着,平稳地传向顾衍的方向:"因为有人可能会在读完论文之后,沿着那篇文档最后的部分继续往后写。如果验证者完成了独立确认过程,他们可以在那四行空格下面添加一段自己的注释,或者只写一个日期和一个签名。那不是必要的步骤。但那个空间留在那里了。" 顾衍没有再追问。他只是站在她旁边,和她面对着同一道正在变宽的天际线。东方的颜色正在从暖白色过渡到浅金色,云层边缘开始显现出一层薄薄的橙粉色,像一道被均匀地涂在天空底部的底色。两个人的影子在逐渐增强的光线中从长变短,从模糊变清晰,从交叠变分离,最后在晨光完全覆盖地面的时候,变成了两枚独立的、并列的深色轮廓。 柳如烟侧过头,看了顾衍一眼。晨光从他的侧后方照过来,给他的面容轮廓镶上了一层亮边。他的目光还在天际线上,但他感觉到她的视线,微微偏转过头来,和她的目光在晨光中相遇。两个人都没有说话,但那种对视持续的时间比一次简单的目光接触更长一些,像两个人在用视觉确认对方也正在看着同一道正在亮起来的光带。 然后柳如烟把视线收回来,转向前方,沿着那条柏油路的方向,迈开了脚步。她的靴底踩在路面上发出均匀的接触声,每一步之间保持着恒定间隔。顾衍跟上来,和她并肩而行,两个人的步幅在第二步就对齐了,然后一起朝那条正在变得越来越亮的晨光线走去。 在她的视野中,那条路的尽头正在被晨光填满。她的笔记本还夹在腋下,皮革封面贴近外套侧面,那里有一片被体温焐热的区域,和周围被清晨空气冷却的布料形成了明显的温差。她握住了那本笔记本的书脊,感受着那个温差,继续朝前走,没有说话。 顾衍走在她身旁,保持着那个间距。道路在前方被晨光照成一条亮色的带,延伸到远处和地平线汇合的地方。他们在晨光中持续走着,影子在身后拉出一道比刚才更短更清晰的轮廓,像两个正在被重新定义的坐标点。