第1章 一枚订歪的订书钉
那张纸推到我面前的时候,我先看见的是订书钉。
左上角一枚,订歪了,钉脚翘起来一点。科研办下发的正式通知一贯用两枚,对齐、压平。这一份只有一枚,说明是临时加印的,加印的人没来得及装第二遍。
“苏唯同学,学院决定暂停你的实验权限,配合科研诚信初步核查。”
说话的是科研办的吴桐,坐我对面。她把纸往我这边推了半寸,没推到底。
B-217 在生科院二楼最里头。窗帘拉着一半,九月的太阳在桌面上切出一条窄光带,压住那盆绿萝的叶尖。空调出风口嗡嗡地响,低频的,跟三楼仪器间那台 -80℃ 冰箱一个调子,只是薄一点。
桌子两边坐着六个人,加我七个。我一个一个数过去:吴桐、陆昭宁老师、秦蔓、梁恪、郑立柱老师,还有一个不认识的记录员。
数完我才反应过来,我在数人。
入学第十九天,我还没学会在这种场合先慌。
陆昭宁老师坐斜对面,面前什么都没摆,两只手放在桌沿下面。从进门到现在,她没看过我一眼。
秦蔓靠窗,眼睛是红的,睫毛膏在下眼睑晕了一点,像用手揉过。她面前那杯水一口没动。
梁恪坐在秦蔓旁边。他今天没穿组里那件实验服,换了件深蓝的针织衫,看着像特意收拾过。手里没有纸,也没有笔,微微低着头,像在替谁不好意思。
郑立柱老师从平台过来,坐在最靠门的位置,膝盖上放着一个牛皮纸档案袋,没拆。
记录员在敲键盘,我不认识。
“经初步核查,”吴桐照着纸念,“生命科学学院 2026 级博士研究生苏唯,在《Cell Reports》投稿附件整理工作中,于 9 月 6 日至 9 月 18 日期间接触 Figure 3 原始图像文件。现查:该组原始数据文件存在非授权替换痕迹,课题组未发表核心数据于 9 月 17 日夜间外传至第三方存储。相关操作日志指向苏唯名下账号及其常用工位终端。”
我听得很仔细,听的是她漏了什么。
她念到“日志指向苏唯名下账号”就收了口,没念日志的调取范围,也没念取证时间。
一份核查通知,连取证时间都不写,通常意味着取证还没做完。
“依据《明理大学科研诚信管理办法(试行)》第十七条,即日起暂停苏唯同学实验平台门禁、共享盘写入权限及样本领用资格,配合学院科研诚信初步核查。核查期间,不得进入三楼实验区,不得接触课题组任何在研数据。”
她念完,把笔帽旋上。
我把那枚翘起来的钉脚按平了。
“苏唯同学?”她抬了下眼镜。
“我在。”我说。
我的声音比我预想的稳。
我转头,看了眼梁恪。
他正看着我,那个表情我这两天已经见过三次了——不是幸灾乐祸,也不是惊讶,是一种很轻的、几乎称得上体贴的遗憾。像在食堂有人把汤洒了,旁边的人先“哎呀”一声,再递纸巾。
“吴老师,”他开口了,声音放得很软,“小苏是九月份才来的,湿实验室这边好多规矩她确实没接触过。她要是动了什么,多半也是好意,想帮蔓姐把附件理整齐。”
他转向秦蔓。
“蔓姐那阵子赶返修,天天熬到两点,谁看了都想搭把手。”
秦蔓没接话,把水杯往旁边挪了两厘米。
“我不是替她开脱。”梁恪又对吴桐说,“就是……流程不熟和故意,是两回事。学院核查,是不是也该把这两样分开看。”
他说得非常好。
好到桌上有人轻轻点了一下头。
我后来想了很久这一段。他说的是“流程不熟和故意是两回事”,听着像在帮我。但那句话真正落地的地方,是把“不熟”和“动过”一起钉在了我和这张桌子上。它不否认我动过,它只是替我求一个情。
而求情,是要先有错的。
“梁老师说的情况,我们会记进笔录。”吴桐说,语气没变,“不过核查阶段不做性质认定。”
她在纸上打了个勾。
“苏唯同学,你还没有回答。”吴桐说,“有要说明的吗?”
会议室里安静下来。空调那个低频的嗡又浮上来。
我知道屋里在等什么。等一个博一新生红着眼说“不是我”,或者把十九天里攒的委屈一股脑倒出来——我连超净台的紫外灯该开几分钟,都是上周才记住的,我怎么可能。
这些话我一句都没准备。
倒不是硬气。是这会儿桌上没有一样东西是我拿得出来的:日志在平台,权限刚被收走,共享盘我已经进不去了。我说一百遍“不是我”,落到笔录里也只有一行,当事人陈述。
我想要的不是说话的机会。
是能拿出东西的机会。
“吴老师,”我说,“我想先问一件事。”
“你说。”
“通知附的这份日志,是全量,还是摘录?”
吴桐的笔停了。
陆昭宁老师把放在桌沿下的手收了回去。
“……你问这个做什么。”
“我想申请一个明确的举证期限。”我说,“书面给,写进笔录。”
“《办法》里没有对当事人举证期限作硬性规定。”吴桐说,“一般是核查组按进度走。”
“那我申请一个。”
“要多久。”
“四十八小时。”
桌子那头有人吸了口气。
秦蔓终于抬起头看我,眼睛红着,眼神却不是恨了,是那种没听懂的茫然。
“苏唯,”陆昭宁老师开口了。这是她进门后第一句话,声音不高,也不冷,“你要四十八小时做什么。”
我转过去看她。
“找东西。”我说。
“找什么。”
“找能证明这张纸上写的不是我的东西。”
“你现在有吗。”
“没有。”我说,“但我知道它们在哪儿,也知道谁有权限调。”
陆昭宁老师看了我大概三秒钟。
那三秒里她脸上什么都没有。不是失望,不是信任,也不是那种“我懂了”的默契。就是看着,像看一块还没测的样品。
然后她把面前那本合着的笔记本往桌子中间推了两厘米。
“吴老师,”她说,“按她说的记。四十八小时,从今天十四点起算,到 9 月 21 日十四点。核查组不因当事人举证而中止核查,也不因当事人举证而提前作结论。”
她顿了一下。
“另外,补一条:举证期间,苏唯同学只有举证权,没有调查权。她需要调阅的任何日志、任何原始记录,由核查组或平台依职权调取,本人不得自行接触系统。”
吴桐记了下来。
“这两条,”陆昭宁老师说,“是给她机会,也是给她边界。”
她终于转过来看我。
“听明白了?”
“听明白了。”我说。
“别把边界当敌意。”她说,“你要是真想自证,就得让自证这件事本身,也经得起查。”
那句话我当天没完全懂。
我是在四十八小时以后,坐在同一间会议室,看着何砚秋老师把我那张表从头到尾复算了一遍的时候,才懂的。
会开到十点四十。
散会前,吴桐收走了我的权限卡。不是校园卡,是三楼实验区那张白色的副卡,上面贴着我名字的拼音,边角被我磨得有点毛。她把卡放进一个透明封口袋,写了编号,让我在签收栏签了字。
我签的时候,笔尖在纸上顿了一下。
不是舍不得。
是忽然意识到,从这一刻起,我连自己那台公用机的登录界面都看不到了。而那台机器上,有我这十九天全部的痕迹。
“个人物品可以带回。”吴桐说,“课题组设备、存储、纸质记录本,核查期间一律留在原位。”
“我的实验记录本也在三楼。”我说。
“留在原位。”
“那本是我自己的。”我说,“封面写了名字,还没交导师签字。”
吴桐看了我一眼。
“苏唯同学,实验记录本不是个人物品。”
我点了头,没再争。
后来我才知道,那一句“没交导师签字”,被记录员原样敲进了笔录,成了后面复盘会上被拿出来问我的一条。我当时以为那只是句实话。
我走出 B-217 的时候,走廊尽头的窗开着,风把公告栏上一张海报吹起了一个角。海报是研究生院的新生入学教育周安排,红底,最上面一行写着“9 月 17 日 19:00 校史馆,全体硕博新生”。
我在那张海报前站了两秒。
9 月 17 日晚上七点,我在校史馆,坐第七排,签到表上有我的名字,签到时间是十八点五十二分。散场九点十分,我跟同宿舍的周颖一起走的,在南区便利店买了两盒酸奶,校园卡消费记录是二十一点二十七分。
二十二点五十六分,我刷了宿舍门禁。
那之后我一直没出过楼。
而 9 月 17 日二十三点四十一分,有人用我的账号,从三楼那台公用机,把一份不该出去的数据传了出去。
我下楼,推开生科院侧门,太阳一下子铺了满身。
九月的太阳其实还挺晒的。我站在台阶上,回头看了一眼三楼。
三楼最东边那扇窗,是仪器间。窗台上摆着一排棕色冻存盒,从下往上看,只能看到盒子的一截边。
我看了大概五秒钟。
然后我转身往科研办那栋楼走。
我还有四十八小时,准确说,从十四点起算,我还有不到四个小时可以先把要调的东西列成一张单子。
清单分三列:要调什么、谁有权调、什么时候要。
第三列我写得最慢。
第2章 我顺手做的三件事
先说说我这个人。
我二十四岁,本科念的是计算科学,明理大学本校,四年里做得最多的事是写脚本、跑数据、给别人的模型挑毛病。毕业那年我直博到了生命科学学院,方向是分子影像的数据方法,导师是陆昭宁老师。
跨专业这件事,是我自己选的。
我当时的理由说得很漂亮:影像数据最后都要变成可计算的东西,我去做那个“变”的人。
进来第十九天,我承认,我只学会了那个“变”字的一小半。另一大半,是这栋楼里那些从来不写在任何文件上的规矩。
我花了一点时间才明白,我缺的不是聪明。
我缺的是没被这套规矩教过。
比如,组会上不能当面说师兄师姐的图有问题。要说,也得先写进书面意见,交给导师,由导师在组会上以“我们一起看看”的方式提出来。
比如,陆老师说“这个思路再想想”,不是让我回去再想,是她不同意。
比如,实验记录本每一页右下角都要导师签日期,没签的那一页,在法律上等于没发生过。
比如,样本不能自己带出楼,哪怕只是拿到隔壁楼借个离心机,也要填跨区流转单。
比如,共享盘上的东西,谁改了、什么时候改的,没人会去查,但一旦出事,第一个被问的一定是最后一个碰过它的人。
这些我一件都不知道。
不是没人愿意教。是这些事根本不会被专门教——它们像空气,在这栋楼里待过三年的人,呼吸着,不觉得需要说明。
我闹过几个不大不小的笑话。
报到那天,秦蔓把我领到工位,说“你先熟悉熟悉”。
我理解成了字面意思。
那三天我没进实验室,把课题组共享盘从 2021 年到 2026 年的目录整个爬了一遍,做了张索引表:按项目、按样本批次、按文件类型、按最后修改人,还标了 47 个我看着命名不规范、建议统一的路径。第四天早上我把表发给秦蔓,附了一句“蔓姐,我整理好了,你看要不要合并进组里的文件规范”。
她隔了四个小时回我:“辛苦啦~”
一个波浪号。
我当时还挺高兴,觉得是夸我。
后来梁恪在茶水间跟我说,那张表在组里的小群被传了一上午,有人截图,配了句“新来的把咱家底盘查了个底朝天”。他说这话的时候是笑着的,还给我递了包挂耳咖啡,说“别往心里去,大家没恶意,就是没见过这么实诚的”。
我确实没往心里去。
我现在回头看,那不是恶意,也不是笑话。那是我在这栋楼里的第一次定位:一个会把所有东西都当成系统来读的人。
而系统,是不讲情面的。
第二个笑话是冰箱。
三楼仪器间靠墙那台 -80℃,门上贴着一张手写的表,A4 纸,胶带粘了四角,字被冰箱的霜气洇得有点糊,上面是些“蔓姐 3 盒”“梁老师 别动”“9/3 取”之类的记号。
我看着难受。
不是嫌乱,是我本能地觉得:一台存着几百管样本的设备,不该靠“别动”两个字来管。
我找了标签打印机,按“样本类型—冻存日期—负责人—冻存盒编号”重打了一套,趁那天下午没人,把四层架子全贴了一遍,还在门内侧贴了张取用登记表,画了三栏:时间、盒号、签名。
第二天早上,标签没了。
不是被撕得乱七八糟,是整整齐齐揭下来,叠好,放在冰箱旁边的台面上。登记表也不见了。门上还是那张洇了霜气的 A4。
我站在那儿看了半分钟。
没有生气,是真的困惑:我做的东西逻辑上是更清楚的,为什么会被拿掉。
梁恪刚好进来取样本,看我盯着台面,笑了一下。
“小苏,”他说,“这冰箱是郑老师平台统一管的,组里只是借用。贴标签得平台那边出,咱们自己贴了,出了事算谁的?”
“哦。”我说,“我没想到这个。”
“没事,”他把冻存盒抽出来,动作很轻,“慢慢来,这楼里规矩多,三年都学不完。”
他这句话说得很暖。
我到 9 月 21 日下午才明白,他教我的第一条规矩,其实是“谁贴的标签,谁就要为这台冰箱负责”。而到了第十九天,被要求为很多东西负责的人,是我。
我说这些,不是为了诉苦。
一个二十四岁、跨专业、连紫外灯开几分钟都要问的人,被分派去整理投稿附件,本来就没什么可委屈的。活是轻活,谁都能干,交给新人是最正常不过的安排。
我后来复盘过很多遍,从 9 月 1 日到 9 月 19 日,一共十九天,把我推到 B-217 那张椅子上的,不是谁陷害我。
是我自己。
十三天里,我做了三件事。
三件在我原来那个学科里,全都是对的。
第一件,我说了一句真话。
第二件,我改了一个权限。
第三件,我留了一份底。
前两件把我埋了。
第三件,四十八小时以后,把我挖了出来。
我得先把话说清楚:那三件事,没有一件是“被人指使”的,也没有一件是我为了表现自己硬要做的。
它们都是顺手。
在我念了四年的那个世界里,看见一个配置有问题就顺手改掉,看见一个文件不对就顺手说出来,经手一份数据就顺手算个校验值留底——这三件事连起来,甚至算不上“做事”,就是呼吸。
问题在于,这栋楼里的呼吸方式,跟我不一样。
这两种呼吸方式差在哪儿,我当时说不上来。
后来才明白,这栋楼里的人情长在单子上:谁贴的标签、谁签的日期、谁会签的变更。我进门以前,连一张要三个人签字的纸都没见过。
在这边,“你替我把附件理整齐了”不只是帮忙,是把一份投稿材料的完整性,交到了我手上;“当众说这张图不对”不只是提意见,是在十一个人面前,把一作师姐的名字放到了火上;“我改了权限”不只是修了个漏洞,是从那天起,共享盘上每一次异常,都会先落在我的账号底下。
我一样都没算到。
我算得很快。
我算的全是那些不用算的东西。
第3章 组会上我举了手
9 月 6 日,晚上七点半,组会。
我提前二十分钟到,坐在最靠门那排。会议室白板上还留着上周没擦干净的箭头,秦蔓拿板擦蹭了两下,没蹭掉,就那么开始讲了。
她讲的是返修。
那篇稿子投的是《Cell Reports》,一作是她,通讯是陆老师。五月投的,八月收到大修,返修截止 9 月 22 日。那天离截止还有十六天。
“补实验做完了,”秦蔓翻到 Figure 3,“就剩原始数据要按期刊要求重新整理一遍。编辑那边这回盯得紧,要求每张图都能追到仪器原始文件。”
陆老师坐在第一排,没抬头:“都齐了?”
“齐了。”
秦蔓说这句话的时候,语气是松的。她熬了半个月,眼下那片青还没退,但人是有底的。一个人对自己做过的实验有底,说话是能听出来的。
我在下面听着,心里正替她高兴。
然后我想起一件事。
“蔓姐,”我举手,“投稿附件_v3 那个文件夹,我今天下午理了一遍。”
全组转过头。
“嗯,”秦蔓说,“辛苦了,命名统一了吗?”
“统一了。Fig1 到 Fig5,按 a、b、c 排的,格式也都转成 16-bit TIFF 了。”
“挺好。”她要往下翻页。
“但是 Fig3c 不行。”我说。
白板笔在她手里停住。
“Fig3c 不是原始灰度图。”我说,“它是 8-bit RGB,尺寸 1180×860,没有成像仪的元数据字段,边缘有 PDF 渲染的抗锯齿痕迹。应该是从 PDF 里截出来再转的。”
我把属性表往投影上又放大了一格,补了一句我自认为最要紧的:
“这种图进不了定量流程。我们后面跑灰度积分的脚本会报错,就算不报错,算出来的值也不能用。得找原件。”
会议室很安静。
不是那种有人要发火的安静,是十几个人同时不知道该把眼睛放哪儿的安静。
坐在斜对面的一个博三师兄低头翻笔记本,翻了两页,其实那两页是空白的。有人把笔帽扣上,又拔开,再扣上。
我在那几秒钟里,还在想我是不是漏说了什么。
我想补一句“我这边可以帮忙找原件”,或者“转换脚本我可以改一下先绕过去”,让这事听起来更像个技术问题。
但我没来得及。
“小苏。”梁恪开口了。
他坐得离秦蔓最近,声音还是那种软的、带点笑的。
“你刚来,可能不太清楚我们这边图的来路。”他说,“Fig3 是三年前那批实验,那时候平台还没换成像仪,原始文件是老格式,蔓姐为了返修重新导出过一次,导出的时候换了位深也不奇怪。”
他转向秦蔓,语气很自然:“蔓姐,是那批老的吧?”
秦蔓没说话。
“这种历史文件的事,”梁恪又对着我,像在教我,“以后先私下问一句,别在组会上直接说。组会是过进度的,不是查文件的。你说得对不对是一回事,蔓姐这边正赶返修,当着这么多人被点一张图,她下不来台。”
他说得句句在理。
我甚至点了头。
“哦。”我说,“对不起,蔓姐,我不是那个意思。”
秦蔓把白板笔放下了。
“没事。”她说,声音很轻,“会后再说。”
陆老师这时候抬了下头。
“会后再说。”她重复了一遍,然后翻过一页,“下一项。”
组会继续往下走,讲了二十多分钟别的事。我坐在靠门那排,笔记记得很认真,其实一个字也没进脑子。
散会是八点四十。
我回工位,把那天下午跑的属性表又调出来看了一遍。
四十三个文件,四十二个是 16-bit 灰度 TIFF,内嵌同一台成像仪的序列号、曝光时间、增益和操作者工号。只有 Fig3c 是 8-bit RGB,尺寸对不上,元数据全空。
我盯着那一行看了很久。
我不是在怀疑谁。
我那时候脑子里根本没有“造假”这两个字。我二十四岁,进这栋楼第六天,连 Western blot 的条带该长什么样都是三天前才在师兄的实验记录本上第一次见。我没能力怀疑任何人。
我只是觉得:一个文件的属性不对,说一声,是最正常的事。
就像一张表里少了一栏日期,我看见了就会指出来。
那天下班前,我做了两件事。
第一件,我把那张属性表连同我写的转换脚本,整理成一份《投稿附件 Fig1–Fig5 格式核对说明》,发到了组群里,附了一句“蔓姐,Fig3c 我标黄了,原件找到后我重转”。
第二件,是我念了四年计算科学养成的手癖:文件经手一遍,算一遍 SHA256,连脚本一起扔进学院给研究生开的个人归档空间。
那个空间是入学时统一开的,页面上写着一行小字:“一次写入,不可修改,服务器签名时间戳”。我第一次看到这行字的时候还挺喜欢,觉得这学校挺讲究。
四十二个校验值,加上 Fig3c 那一个,一共四十三个,一条一条躺进去。服务器给每条盖了个时间戳和一串批次号。
我关电脑的时候是九点十几分,走廊的灯已经暗了一半。
我一点都没觉得自己在留什么证据。
我只是不想让四十三个文件,在我手上过一遍之后,说不清哪个是哪个。
回宿舍已经十点。
周颖在上铺敷面膜,听我说完组会那一段,把面膜纸掀开一角,露出半张脸看我。
“你被全组记了一笔,你知道吗。”她说。
“我说的是事实。”
“你不是说错了。”她把面膜纸按回去,“你是当着十一个人,说了她还没准备好让别人知道的事。”
“可那张图确实不是 16-bit。”
“对啊。”周颖说,“所以更要命。”
我坐在椅子上,没接话。
“小唯,”她从上铺探下头,“你有没有想过,一张图不对,可能有很多原因。老格式、导出错了、当年谁手滑存了一版截图、返修的时候临时用了个占位图——这些都可能是真的,也都不一定是坏事。”
“但她今晚在会上,没法一个一个解释给人听。”
“你说完那句话,屋里十几个人脑子里只剩一件事:蔓姐的 Figure 3 有一张图来路不明。”
“这话你没说,可它已经在那儿了。”
我那天晚上躺下之后,把这段在脑子里过了好几遍。
我承认她说得对。
但我还是没想明白中间那一步:如果一张图确实不对,为什么“什么时候说、跟谁说、几个人在场说”,会比“它到底对不对”更要紧。
我们那边不是这样的。我们那边跑出个错,谁先在群里贴出来,谁就是帮大家省了两小时。
我带着这个没想明白的问题睡了。
第二天早上七点,我手机震了一下。
是组群的消息。
秦蔓发了一张截图,是《Fig1–Fig5 格式核对说明》里标黄的那一行,下面配了一句:
“@全体成员 以后附件相关的问题,先发我,不要在群里直接发文件核对表。”
隔了四分钟,梁恪跟了一条:
“收到蔓姐。小苏也是好意,我回头带她过一遍组里的流程~”
一个波浪号。
我盯着那个波浪号,忽然想起报到第四天,秦蔓回我索引表时,也是这个符号。
那时候我以为是夸我。
第4章 我把共享盘的门改窄了
9 月 9 日,上午。
我改转换脚本的时候,顺手看了一眼共享盘的挂载配置。
不是为了查什么。是我写批量写入之前,习惯先确认目标目录可写、可回滚、别一脚本下去把别人的东西覆盖了。
然后我看见了一行:
//nas.life.mingli.edu.cn /proj_data Everyone : rw
我盯了大概十秒。
那不是某个小组的文件夹。那是 /proj_data,课题组从 2021 年到现在的全部在研项目根目录,里面是原始数据、原始图像、测序下机文件、样本台账,还有师兄师姐写了三五年的分析中间结果。
任何人,可读写。
不是“组内任何人”,是“任何人”——只要能连上院网,包括来交流的、来实习的、隔壁楼借服务器的、甚至一台没改过默认口令的公用机。
我第一反应不是生气,是一种很本能的不舒服。
在我原来的世界里,一份数据如果谁都能改,它就不是数据了。它没有版本、没有责任、没有“这一版是谁在什么时候写下的”这回事。你今天算出来的结果,明天可能就建立在别人误存的一版上面,而且没有任何地方会留下痕迹。
我们那边管这个叫不可复现。比算错了严重得多。
我截了张图,发到组群。
“@全体成员 发现 /proj_data 是 Everyone 可写,原始数据有被覆盖的风险。建议改按角色授权,另建只读归档目录。我下午可以弄。”
发完我就去吃午饭了。
现在回想,这条消息最要命的地方,不是我提了问题,是我在同一句里写了“我下午可以弄”。
在这栋楼里,这种事的正确走法是:先私下跟梁恪说,梁恪报平台,平台出变更单,郑立柱老师签字,约个没人在跑数据的时间窗改。全程有单子,有签字,有时间。
我一样都不知道。
我以为发现漏洞、修掉它、把结果发出来,是同一件事的三个动作。
那天下午两点,实验室没人,都去听学院的一个讲座了。
我搬了台笔记本坐在三楼仪器间门口,花了两个多小时,把 /proj_data 的权限重做了一遍。
改动其实不大:
按角色分了三组——PI 组可读写、组员组可读可提交到指定上传区、外部只读。
新建了一个 00_归档_只读,把近三年已结题项目的原始数据做了份快照放进去,设了只读。
写了张权限对照表,谁在哪个组、能做什么、不能做什么,列得清清楚楚。
最后一步是老成像仪。
那台 2019 年的凝胶成像仪还在用,只能挂载固定口令的 SMB 共享,不认个人账号,也不认新认证。我查了它的配置,脚本里写死了一个账号名和一串口令,从三年前就没变过。
我当时有两个选择:让老设备停用,等平台换认证;或者留一个服务账号,沿用旧口令,让它继续跑。
我选了第二个。
理由现在看依然成立:那台仪器每周还有人在用,停用就要走停用单,走单要平台签字,而我一个入学第九天的人,连停用单长什么样都没见过。
我建了个账号,叫 sync_lab,把老口令填了进去,绑到那台成像仪专用的挂载点上,权限只给“往上传区写入”,没给读归档。
做完我在组群里发了权限对照表,附了一句:
“改好了,老成像仪用 sync_lab 沿用原口令,不用重新配置。有问题随时找我。”
群里安静了大概二十分钟。
然后梁恪私聊我。
小苏,改权限这事你怎么不先跟我说一声?
老成像仪那边我调了小半年才稳,怕它连不上。
我道歉了,道得挺诚恳。我确实没想到“改一个明显的漏洞”还需要先跟谁打招呼。
他回得很快,也很宽和:
没事,你也是好意。
我就是提醒一句,这楼里动配置都得留单子,不然出了事说不清。
对了,那个 sync 账号,密码你用的是原来那个吧?
我看着这一行,没多想。
嗯,怕老设备连不上,没敢改。
行,那就先这样。
对话到这儿就结束了。
他没再问别的,也没让我改回去。
我甚至有点感激——被人指出流程上的疏忽,对方还先说了“你也是好意”,这在入学第九天,已经算很温和了。
我把权限表又检查了一遍,导出成 PDF,存进归档空间,关电脑,去食堂吃了碗面。
那天晚上下了点雨,从三楼窗户能看见操场那排灯在水里晃。
我走在回宿舍的路上,心里是踏实的。
我十九天里做过最像“干活”的一件事,就是那天下午。一个漏洞,两小时,一张表,谁都能看懂。我甚至有点小得意,觉得总算给组里留了点有用的东西。
我完全没往下面这层想。
从 9 月 9 日下午四点十七分起,共享盘上每一条“谁改了什么、谁在什么时候动了哪个文件”的记录,创建者那一栏,写的都是我。
权限是我改的。
只读目录是我建的。
服务账号是我创建、我绑定、我填的口令。
那台老成像仪还在勤勤恳恳地跑,每周吐出几十张 16-bit 灰度 TIFF,一张一张,经由 sync_lab,写进我亲手划出来的那块上传区。
一扇门,我给它换了个新门牌,装了个新门框,配了把新锁。
锁芯,我用的是原来那把。
而且我把钥匙串,明明白白挂在了群里的那张表上。
八天以后,9 月 17 日夜里二十三点四十一分,有人从这扇门进去,把一份不该出去的数据传了出去,又顺手把 Figure 3 的原始图换成了另一个文件。
日志一行一行落下来,整整齐齐,全都指向 sync_lab。
而 sync_lab 的创建人,叫苏唯。
第5章 一次写入,改不了
学院给每个研究生开的那个归档空间,是入学第二天统一激活的。
激活邮件我留着,正文很短,只有三行,讲怎么改密码、容量多少个 G、以及一行挂在最下面的小字:
“本空间为一次写入存储,内容提交后不可修改、不可删除,时间戳由归档服务器签发。”
我当时盯着那行字看了好一会儿,心里冒出一句很没出息的感慨:这学校挺讲究。
我们那边不是没有版本管理。可版本管理是给人用的,谁心情好都能 force push 一下,把三天前的自己抹掉。一次写入不一样,它不跟你商量,你交出去的那一刻,就再也拿不回来了。
入学培训那天,郑立柱老师在台上讲平台规范,讲到原始数据,说了一句:
“一张图值不值钱,不看它拍得漂不漂亮,看它能不能追回那台仪器、那一天、那个操作者。”
底下大半人在低头看手机。
我把这句记在了笔记本第一页。
后来我才知道,那句话是 9 月 20 日下午,他愿意把成像仪的离线日志调给我看的全部原因。
9 月 6 日那四十三条,是我一个一个手动算的。四天后嫌麻烦,我写了个小脚本,挂在自己笔记本上,每天凌晨两点跑一次。
它做的事很枯燥:
把我前一天经手过的文件,逐个读一遍属性——文件名、字节数、位深、修改时间——算一串 SHA256,连我写的转换脚本、以及一句“这个文件我拿去做过什么”,打包成一条记录,推进归档空间。
一条记录大概两三百字节。
只有元数据,没有文件本体。
这点我分得很清。课题组的数据是课题组的数据,我是个入学第十天的博一,没资格、也没必要把别人的原始图像往自己名下的空间里复制一份。我留的是“指纹”——一串数,它能证明某个文件在某个时刻长什么样,但它本身不是那个文件。
这在我们那边是最基本的边界。
我甚至给归档目录起了个挺土的名字,叫 suwei_touchlog,苏唯经手记录。
组里很快就知道了。
倒不是我到处说。是有天下午秦蔓让我把 Fig2 重导一版,我顺嘴回了一句“蔓姐放心,我这边有校验值,导错了能对回来”,她愣了一下,笑了。
“小苏,你这是把归档当日记写啊。”
旁边一个师兄接了句:“计算科学来的都这样,我认识一个,连午饭吃了什么都 git commit 一下。”
一屋子人笑。
不是那种带刺的笑。就真是觉得新鲜,像看人把袜子按颜色排队。
梁恪也在,端着杯子,笑得最和气。
“这习惯挺好的。”他说,“咱们这边就是没人这么干,大家都靠‘我记得我存过’。”
他喝了一口,又补了一句:
“不过真出了事,光有校验值也不顶用啊。人家会说,数是你自己算的,你想写多少写多少。”
“服务器签了时间戳。”我说。
“那也是你自己提交的嘛。”他笑,“小苏,我不是抬杠,我是说,这楼里认的是单子和签字,不认一个人自己攒的表。”
他说这话的时候,语气特别像在教我,一点压迫感都没有。
我当时点了头,说了句“嗯,我知道”,心里其实没服气。
我想的是:一串哈希加一个服务器签名,比一张谁都能补签的单子硬多了。
后来我才知道,他这句话一半是实话,一半是提前替我把最要命的那一问,摆到了桌面上。
复盘会上,第一个问我的,果然就是这句。
周颖那边更直接。
有天夜里两点,我笔记本风扇突然转起来,把她吵醒了。她从上铺探下头,看我屏幕上滚过去一行一行的十六进制。
“苏唯,”她说,“你凌晨两点在给文件算命吗。”
“留痕。”我说。
“留痕给谁看?”
“不给谁看。”我把屏幕亮度调低,“就是……万一以后要说得清。”
她缩回去了,隔了半分钟又探下来一句:
“你这人挺怪的。别人攒照片、攒票根,你攒一串谁也看不懂的数。”
我笑了一下,没解释。
其实这事有个来处。
大三那年,我帮一位老师跑一组模拟,跑了两个多星期,中间结果全存在一块移动硬盘里。我没做版本,也没留中间态,觉得反正最后出图就行。
硬盘是在第三周周一坏的。
不是彻底坏,是那种最讨厌的坏——能认,能点开,读出来的数全是错的。
两周白干。
老师在组会上没批评我,一句重话都没有,只在散会的时候,隔着桌子说了一句:
“以后把过程留下。结果会骗人,过程不会。”
我记了四年。
从那以后,凡是我经手的东西,我都留一条“它当时是什么样”。
不是防谁。
是我知道,人记不住自己三天前到底看见了什么。
9 月 15 日,期刊来函。
那天组里的气氛我到现在还记得:不是慌,是一种被点名的紧绷。编辑部要求补 Figure 3 的全部仪器原始文件,包括成像仪导出的原始 TIFF 和对应的实验记录页,十个工作日内。
秦蔓在群里发了句“我来整”,梁恪回了个“我这边把老文件找齐”。
我那天的归档记录只有两条,一条是脚本例行,一条是我手打的一句话:
“9/15,编辑部要求补 Fig3 原始 TIFF。Fig3c 我 9/6 标过黄,至今没见原件。”
写完我关了电脑,去食堂吃了个晚饭,回来洗了衣服。
我一点都没意识到,那句话会在六天之后,被投影仪放到 B-217 的墙上,成为“苏唯早知道这张图有问题”的一个佐证。
明明它只是我给自己记的一句备忘。
9 月 17 日晚上,我在校史馆坐第七排,听了一个半小时校史。
签到表上我的名字在第三列,签到时间十八点五十二分。散场九点十分,我跟周颖一起走,在南区便利店买了两盒酸奶,校园卡消费二十一点二十七分。二十二点五十六分,我刷了宿舍楼门禁,进门,上楼,没再出去。
那天夜里我的笔记本连着宿舍网,从二十三点到零点半一直有流量,我在跟本科同学通电话,聊她要不要出国,聊了七十多分钟。
二十三点四十一分,三楼实验区那台公用机,用 sync_lab 登录,把一份未发表的数据传了出去。
同一个夜里,共享盘上的 Fig3c 被人换掉了。
原来那张 8-bit 的截图图不见了,换成了一张 16-bit 灰度 TIFF,看上去规规矩矩,尺寸对得上,连修改时间都被回填到了三个月前。
只是那张新图,不是成像仪写出来的。
它里面没有设备序列号,没有曝光时间,没有增益,没有操作者工号。
一台机器写文件,是会留下口音的。人仿不出来。
9 月 18 日上午,组里炸了。
我是从周颖那儿听说的——她在校医院排队做体检复查,听见隔壁两个生科院的女生在说“三楼出事了”“听说数据被传出去了”。
我给秦蔓发消息,没回。
我给梁恪发消息,隔了四十分钟,回了一段很长的话,大意是让我别慌、别乱问、别在群里说话,学院还在核,“你刚来,别往自己身上揽”。
那句话我看了三遍。
我没往自己身上揽。
我只是打开自己的归档目录,把 9 月 6 日那天的四十三条记录调出来,从头看到尾。
看完,我合上电脑,去把洗好的衣服收了。
晚上我睡得比前几天都早。
周颖半夜醒了一次,看我床帘里没光,还嘀咕了句“今天不算命了”。
我其实醒着。
我躺在那儿,把 9 月 6 日到 9 月 18 日,一天一天在脑子里排了一遍。排到第三天,我发现有一件事对不上:
我 9 月 6 日经手的那个 Fig3c,是假的。
而 9 月 18 日大家说“被换掉”的那个 Fig3c,是另一张假的。
中间少了什么东西不重要。
重要的是——我拿到它的时候,它就已经是假的。
这件事,我一个人证明不了。
我手上有校验值,没有文件;有服务器时间戳,没有调查权;我记得 9 月 6 日那张图的每一个字节数,可我连共享盘都进不去了。
我得让别人,替我把那张图拿出来。
第6章 四十八小时够做什么
散会是十点四十。
我没回宿舍,也没去食堂。
我去了科研办那栋楼,在一楼自助机上打了一张空白的《举证材料提交清单》——就是那种最普通的表格,左边填“拟提交材料”,右边填“来源与调取途径”,最底下三行是“提交人、日期、核查组签收”。
我坐在走廊长椅上,拿笔填。
没写“不是我”。
没写“我入学才十九天”。
没写“我连冰箱标签都被撕了”。
我写了一张单子,四行:
第一行,9 月 6 日 21:0x,个人归档空间第 0417 批至第 0459 批记录,含 Fig3c 的 SHA256、字节数、位深、修改时间。用途:证明 9 月 6 日我经手时该文件的内容指纹。调取途径:请核查组依职权向归档服务器调取原始记录及当日签发批次号序列。
第二行,凝胶成像仪 GI-2019-03 的本地离线日志及固件元数据说明,含三个月前对应曝光记录、设备序列号与原始 TIFF 字段规范。调取途径:请平台依职权调取,申请人不得接触设备。
第三行,共享盘 /proj_data 9 月 6 日至 9 月 18 日审计日志、9 月 17 日 23:00–24:00 登录与出口流量、实验区门禁记录、维护工单系统当日记录。调取途径:请科研办依职权调取。
第四行,方法学复算:对上述指纹、日志时间序列做一致性比对并出具可复算过程。调取途径:请方法学合作导师依职权复核。
写到第三行,我把“我需要查看”划掉,改成“请核查组依职权调取并出具”。
不是客气。
是我忽然想起陆老师在会上补的那一条。
十四点差五分,我敲了陆昭宁老师办公室的门。
她坐在窗边,桌上摊着两篇打印稿,红笔搁在中间。看见我,她没让坐,也没问“有事吗”,只是把红笔放下。
我把那张单子递过去。
她拿了,从头看到尾,看了大概两分钟。
“你第一反应不是来找我哭。”她说。
“哭没有时间窗。”
她抬了下眼。
“你也没先说自己没错。”
“我说了不算。”我说,“得看日志。”
她没接这句,手指落在第三行,点了两下。
“这里,你原来写的是什么。”
我看了一眼划掉的那道杠。
“‘我需要查看 9 月 17 日 23 点到 24 点的共享盘审计日志’。”
“为什么改?”
我想了两秒。
“因为如果我自己去调,我拿到的东西就是‘当事人自行获取’。”我说,“到了学术委员会那儿,别人一句‘这材料经没经过第三方手’,它就废了。”
陆老师把单子放回桌上。
“再往下说一层。”
我愣了一下。
“不是因为怕人说闲话。”她说,“是因为一份材料要能当证据用,它得有个来路。来路不是你给的,是程序给的。你自己伸手去拿的那一刻,它就不是证据了,是你的说法。”
她拿红笔,在我第三行旁边补了两个字:依职权。
“你改对了。”她说,“但你是凭直觉改的。我要你知道为什么。”
“听明白了。”
“还有一条。”她把笔盖上,“你单子上写了四个老师。你想过没有,他们凭什么帮你。”
我没答上来。
“郑立柱管平台,吴桐管程序,何砚秋管方法,我管这个组。”她说,“他们每个人手上都有一块你拿不到的东西,但那块东西不是你的,也不是他们能随手给你的。得有单子、有职权、有签收。”
“你要的不是四个好人。”
“你要的是四张能盖章的桌子。”
她从抽屉里拿出一张学院抬头的纸,手写了一份东西,写完签了名,落了日期,推过来。
兹允许 2026 级博士研究生苏唯同学,于 9 月 21 日 14:00 前向学院科研诚信初步核查组提交举证材料清单,并可依清单所列事项,请求平台、科研办及方法学合作导师按职权协助调阅与复核。
本函仅界定举证范围,不构成对事件性质的任何判断。
我把那张纸看了两遍。
看到“不构成对事件性质的任何判断”这一句,我抬起头。
“陆老师,”我说,“今天上午的会上,您一句话都没说。”
“你看见了。”
“看见了。”
“我要是说了,”她把红笔插回笔筒,“哪怕只说一句‘我相信苏唯’,你这份材料从明天起就不干净了。”
“别人会说,是导师替学生找的人、调的日志、定的调子。”
“到时候你赢了,也赢不成立。”
她看着我,语气和上午在 B-217 里一模一样,不高,不冷,也不给一点多余的温度。
“苏唯,我不替你说话。”
“我自己也不替你说话。”
“你要真站得住,就让东西站。”
我把那张纸对折,夹进笔记本。
“谢谢老师。”
“别谢。”她说,“四十八小时是从十四点起算的。现在十三点五十八。”
我出门的时候,在走廊上碰见梁恪。
他大概是刚从三楼下来,手里拿着个空的冻存盒,看见我,脚步放慢了。
“小苏。”他笑了一下,还是那种很妥帖的笑,“陆老师那边……没为难你吧?”
“没有。”
“那就好。”他往我手里的笔记本瞟了一眼,“要是需要我帮你跟平台打个招呼,你随时说。郑老师那边我熟。”
换作十九天里的任何一天,我大概会把这句话接住。
我会说“谢谢梁老师”,会说“我列了个单子,您帮我看看合不合规”,甚至会把那张纸拿出来给他看——就像 9 月 9 日我把权限表发进群里一样,觉得把事情摊开、请人过目,是最省事也最诚实的做法。
那天我没有。
“不用了,谢谢梁老师。”我说,“走流程就行。”
他顿了大概半秒。
“行。”他说,笑容一点没变,“那你好好弄,有事儿找我。”
他抱着冻存盒往楼梯口走了。
我站在原地,看着他背影拐下去,心里没有得意,也没有那种“我看穿了谁”的凉。
只是很清楚地意识到一件事:
我第一次,把一句话,停在了该停的地方。
不是因为我变聪明了。
是因为陆老师刚刚教了我——一份东西要成立,得有来路;一句话要成立,也得有来路。我那句“您帮我看看”,来路是好的,落点却会变成“梁恪看过苏唯的举证清单”。
十九天里我第一次懂了,为什么周颖说“什么时候说、跟谁说、几个人在场说”,会比“对不对”更要紧。
不是人情比事实重要。
是事实要穿过人,才到得了桌面。穿不过去,它就只是我一个人的委屈。
回到宿舍,我把那四十八小时切成四块,写在笔记本最后一页。
十四点到二十点:把清单交科研办收件;次日上午八点半,请吴桐正式签收,出第一份材料清单回执。
二十点到次日上午:郑老师那边,平台。
次日下午:何老师那边,方法。
最后六小时:把四份东西拼成一张能从头复算到尾的表,再自己从头挑一遍错。
写完我看了眼时间,十四点零七分。
四十八小时,已经走掉了七分钟。
我合上本子,出门。
走廊尽头的窗还是开的,九月的光铺在地板上,跟上午 B-217 里那条落在绿萝叶尖上的,是同一种白。
我忽然想起 9 月 6 日晚上,周颖掀开面膜纸跟我说的那句:
“你不是说错了,你是当着十一个人,说了她还没准备好让别人知道的事。”
那句话我当时没听懂。
现在我懂了一半。
另一半,得等我把那张表,摊到十一个人面前的时候,才能懂。
第7章 四张能盖章的桌子
9 月 20 日,上午八点半,科研办。
吴桐坐在一台双显示器后面,把我那张清单摊在桌上,拿一支荧光笔,一行一行往下拉。
“第一项,归档服务器 9 月 6 日批次记录。可以,依职权调,今天下午出。”
“第二项,成像仪离线日志。归平台,不归我。我给你转个调阅函。”
“第三项,共享盘审计日志、出口流量、门禁、维护工单。我这边能出,但要核查组编号签收。”
“第四项,方法学复算。何老师那边得他自己接,我不代请。”
她拉到最底下,在“提交人”那栏点了一下。
“签字。”
我签了。
她把清单翻过来,在背面盖了个回执章,写了编号 HC-2026-0919-03,撕下第二联递给我。
“收好。这是你四十八小时里唯一一份能证明你交过东西的纸。”
我说谢谢。
她没抬头,把荧光笔帽扣上,说了一句:
“苏唯同学,我把话说在前面。我出的记录里,有对你不利的。”
“我知道。”
“不,你不知道具体是哪几条。”她把第一份打印件推过来,“自己看。我不替你筛,也不替你解释。记录是什么样,我就出什么样。”
那份材料一共十一页。
我站在科研办的窗边,从头看到尾,看了二十多分钟。
第三条:sync_lab 账号创建时间 9 月 9 日 16:17,创建人苏唯,绑定终端 GI-2019-03 挂载点,口令沿用历史配置。
第五条:9 月 17 日 23:41:07,sync_lab 自内网 10.23.7.44 登录,23:41:19 至 23:41:52 有 38.7 MB 出站流量,目标为校外第三方存储地址。
第六条:同日 23:41:33,/proj_data/.../Fig3c.tif 发生写入,mtime 被回填至 6 月 19 日。
这三条,一条比一条像我。
吴桐在旁边整理别的卷宗,一句都没多说。
我把这三条单独抄进笔记本,另起一页,标题写了六个字:
对我方不利事实。
抄完我翻回后面。
第七条:9 月 17 日 23:20,实验楼东门门禁刷卡进入,卡号归属梁恪;00:05 同门刷卡离开。
第八条:维护工单系统 9 月 17 日 00:00–24:00,实验区工单数为 0。
第九条:9 月 17 日 22:56,苏唯校园卡于南区 7 舍门禁进入;其个人终端 23:00–00:30 持有宿舍网 DHCP 租约,网关有连续流量;23:07–00:19 有一路 72 分钟通话记录。
第十条:同期实验区公用机 10.23.7.44 与宿舍网段无任何会话。
我盯着第九条看了几秒。
那通电话是我跟本科同学聊她要不要出国,聊到后来她在电话那头哭了。我记了七十多分钟,一个字都没提实验室。
它现在是一行网关流量。
“看完了?”吴桐问。
“看完了。”
“不利的三条,要不要我加一句‘待核’?”
“不用。”我说,“照原样进材料。”
她这才抬了下眼镜,看了我一眼。
“为什么。”
“因为我要是挑着交,”我说,“剩下那七条也就都不干净了。”
吴桐没说“对”,也没点头。她只是在回执的备注栏里,补了一行:
“当事人要求不利记录一并入卷,未作删改。”
然后盖了章。
下午两点,三楼仪器间。
我被停了实验区权限,进不去。
郑立柱老师在里面,我在门外,隔着那道贴了黄色警示条的门槛。他没让我进去,也没把门开大一点,就把一叠打印件从门缝上递出来,纸边压着一枚平台红章。
“哪台机器。”他先问。
“凝胶成像仪,GI 开头的那台。”
“说全名。”
我愣了一下。
“GI-2019-03,序列号 19-C0347。”
他“嗯”了一声,转身进去,隔了五六分钟才回来。
“说全名不是为难你。”他把第二叠纸递出来,“平台上四台成像仪,三台能出 16-bit,一台不能。你要是说错一台,我给你调的那份日志,白纸红章,也是废纸。”
我接过来,站在门槛外翻。
第一份,是《GI-2019-03 原始 TIFF 字段规范》,一页半。上面写得很死:
本型号固件在写入每一帧时,于文件头写入四项元数据:设备序列号、曝光时长(毫秒)、增益系数、操作者工号。以上字段由固件写入,用户层应用程序不可编辑、不可剥离;经任何图像软件另存后,字段结构即不完整。
第二份,是 6 月 19 日 14:22 的一次曝光记录,本地离线日志打印件:时间、样本编号、操作者工号、曝光 3200 ms、增益 1.0,末尾一行小字“本日志存储于设备本地,不随共享盘同步”。
第三份,是一张折起来的温度曲线图,-80℃ 冰箱,横轴 6 月 19 日 13:00–15:00。14:19 那个位置,有一个很浅的尖峰,标注:
开盖 47 秒,腔温回升 0.7℃,探头独立上传,时间戳由温控模块签发。
我用手指按着那个尖峰,看了很久。
不是因为它多戏剧。
是因为这份曲线,跟共享盘、跟账号、跟谁改了权限、跟任何人的口头说明,全都没有关系。它是一台冰箱,在六月的一个下午,被人打开过四十七秒。
谁都改不了它。
“郑老师,”我说,“入学培训那天,您讲过一句话。”
“我讲过很多句。”
“‘一张图值不值钱,不看它拍得漂不漂亮,看它能不能追回那台仪器、那一天、那个操作者。’”
他隔着门槛看了我一眼。
“记在哪儿。”
“笔记本第一页。”
他没接话,把红章从桌上拿起来,在第三份打印件的角落又补盖了一次——第一枚盖得偏了,压住了曲线的一小截。他重新找了个空位置,盖得端端正正。
“拿去吧。”他说。
我道了谢,把纸收进文件夹。
转身要走的时候,他在里面又说了一句:
“苏唯。”
我回头。
“这些能证明那批样本真做过、六月十九号真有人开过冰箱门。”他说,“证明不了谁换了共享盘那个文件。”
“别拿它当刀使。它是尺子。”
傍晚五点,何砚秋老师的办公室。
他没问我冤不冤,也没问我是不是被停了权限。
他把我的清单摊在桌上,第一句是:
“你这张表,别人能不能从头到尾重跑一遍?”
“能。”我说,“哈希是 SHA256,口径我写在附注里了。”
“写给别人看的,还是写给自己看的。”
我盯着那行字看了几秒。
“……写给自己看的。”
“那就重写。”他把一支笔推过来,“从第一步开始,假定看的人不认识你、不相信你、也没听过这个组。他手上只有你这叠纸和一台干净电脑。他要能照着走出同一串数。”
我在他办公室待了三个多小时。
重写到第二遍的时候,他才开始跑自己的脚本。
他做的事,我原来那张表里一件都没有:
第一件,他调了归档服务器 9 月 6 日全天的批次号序列,从第 0001 条拉到第 0832 条,把我那 0417–0459 摆在中间,前后各截了十条别人的记录,做成一张连续表。
“有人一定会问,你这四十三条是不是事后补进去、把日期写早的。”他说,“这句话我没法用‘不是’回答。我只能用序列回答:批次号是服务器按提交顺序连着发的,中间夹着三十多个其他用户,你插不进去,也抬不走。”
第二件,他把三个哈希并排放进一张表:
H1=我 9 月 6 日归档里 Fig3c 的 SHA256。
H2=期刊 9 月 15 日来函所附、被质疑的那张投稿图的 SHA256。
H3=9 月 20 日共享盘里现存 Fig3c 的 SHA256。
他在旁边写了三个等式:
H1 = H2
H1 ≠ H3
“看明白没有。”他说。
我看着那两行,手指有点凉。
H1 = H2 的意思是:9 月 6 日我经手的那个文件,跟编辑部质疑的那张图,是同一个字节序列。
我拿到它的时候,它就已经是那张图了。
不是我换成了它。
H1 ≠ H3 的意思是:共享盘里现在那份,是后来写进去的另一个文件。
“这两个等式,”何老师说,“一个洗的是‘你造了假’,一个指出的是‘有人换过’。别混着说,混着说就软了。”
第三件,他按郑老师那份字段规范,把 H3 对应文件读了一遍,四项固件元数据,一项没有。
“不是这台机器写的。”他在结论栏里只写了这一句,不加“伪造”,不加“有人动手脚”。
“为什么只写这一句?”我问。
“因为‘不是这台机器写的’是我能复算的。”他说,“‘伪造’是判断,判断留给核查组。”
他把三张纸叠好,签了名,写一个“可复算过程见附件 A”,推给我。
“小苏,”他最后说,“我不信你,我也不信他们。”
“我只信能重跑一遍的东西。”
晚上八点,我回陆老师办公室交进度。
她没看那三份材料,先看我笔记本最后一页那四块时间,然后问了一句:
“你表里最弱的一环是哪儿。”
我想了几秒。
“最后一条。”我说。
“说清楚。”
“我能证明 9 月 6 日我拿到那张图时,它已经是投稿里那一张。”我说,“我能证明共享盘那份后来被换过,而且不是成像仪写的。”
“但我证明不了,那张图是从什么时候开始是假的。”
“我入学是 9 月 1 日。9 月 6 日我第一次见它。只要有人问一句‘有没有可能就是你 9 月 1 日到 9 月 6 日之间动的’,我这条链就断在第一天。”
“我手上所有东西,最早只到 9 月 6 日。”
陆老师把红笔放下。
“对。”她说,“断得很难看。”
“所以那不是技术缺口。”她看着我,“是时间缺口。技术缺口靠日志补,时间缺口只能靠一件在你入学之前就存在、并且一直没被人动过的东西补。”
“你想得到是什么吗。”
我站在那儿,脑子里把 9 月 1 日到 9 月 20 日飞快地过了一遍。
然后我想到了。
“一封邮件。”我说。
“谁的。”
“蔓姐的。”
陆老师没有点头,也没有说“去吧”。
她只是把笔记本合上,推到桌角。
“四十八小时还剩十八个钟头。”
第8章 师姐三个月前发来的附件
晚上九点十分,生科院楼下那张长椅。
秦蔓坐在最右边,膝盖上放着一个塑料袋,里头两个橘子。她剥得很慢,皮撕成一长条,垂下来,没断。
我走过去,在另一头站住。
她没抬头。
“你来干什么。”她说,“要我给你作证?”
“不是。”
“那要什么。”
“问一件事。”
她终于抬眼看我。眼睛还是红的,比 9 月 19 日上午更红一点,底下那片青也没消。这半个月她大概没睡过一个整觉。
“三个月前,”我说,“你投初版的时候,Figure 3 的图,是不是你发给梁恪、抄送了自己?”
她手里的橘子皮断了。
“你怎么知道。”
“我不知道。”我说,“我猜的。返修材料是梁老师统一整理,但一作是你,初版图你手里一定有一份。你这种人不会不留。”
“我哪种人。”
“会把 2021 年到现在的原始台账按批次自己再排一遍的人。”
她盯着我看了几秒,没笑,也没松下来。
“苏唯,”她说,“9 月 6 日那天,你在组会上说那张图不是原始灰度,我恨了你整整一个礼拜。”
“我知道。”
“你不知道。”她把橘子瓣掰下来,没吃,“我那会儿不是生气你挑错。我是……我那瞬间,心里咯噔了一下。”
我站着没动。
“因为 Fig3 是三年前那批。”她说,“我接手的时候,图就已经在文件夹里了。我做过补实验,跑过重复,条带方向是对的,我就没再往回追那张图是从哪台机器出来的。”
“编辑部 9 月 15 日来函要原始 TIFF,我翻了两天,没翻到。”
“梁老师说老文件在迁移的时候丢了一批,他来补。”
她把橘子瓣放回袋子里。
“我没敢再问。”
“为什么。”
“因为我怕问出来,我这篇就没了。”她说,“我博五了。苏唯,我博五了。”
长椅旁边有盏路灯,飞蛾绕着灯罩撞,一下一下。
我忽然明白 9 月 6 日那间会议室里,安静的到底是什么。
不是十一个人不知道该把眼睛放哪儿。
是有个人,在那一秒里,被我当众按住了她最不敢碰的那件事。
我说的是一张图的位深。
她听见的是“你五年白干了”。
“蔓姐。”我说。
“嗯。”
“我不是来问你知不知道的。”
她抬头。
“我是来问那封邮件在不在。”我说,“它在,我就不用问你了。”
这句话出口的时候,我自己愣了一下。
不是因为说得多漂亮。是因为我听见自己,第一次把话停在了“物”上,没有往“人”那边再走半步。
十九天前的我,大概会接着问一句“所以你早就觉得不对吧”,或者“那你为什么不早说”。那些话不坏,甚至都是人话。但那些话一出口,秦蔓就得在我面前,把她这五年、她这篇稿子、她的毕业时间表,重新交代一遍。
而我要的,从来不是她的交代。
我要的是 6 月的一个时间戳。
秦蔓低头,把塑料袋放到一边,拿手机出来翻。
翻了很久,从相册翻到邮箱,又从邮箱翻回“已发送”。她手指在屏幕上划得越来越慢。
“……六月十八号。”她说。
“晚上九点十四。”
她把屏幕转过来给我看半秒,又收回去。
主题是《Fig3 初版_给梁老师》,收件人梁恪,抄送 qinman@…,附件一个:Fig3c_v1.tif,1.2 MB。
“附件还在。”她说,“邮箱没清过。”
“蔓姐,”我说,“别发我。”
她手指停住。
“发吴老师,抄陆老师,主题写‘HC-2026-0919-03 补充材料’,正文一句话就行:应核查组调阅,随附 6 月 18 日初版邮件附件原件。”
“别写‘我证明苏唯’,也别写‘我不知道’。”
“就写那封邮件是什么、什么时候、附件叫什么。”
她看着我,眼睛红着,很久没说话。
“你连这个都要走单子。”她说。
“嗯。”
“行。”
她当场转发了,抄送陆昭宁,没写一句多余的话。发完,把手机扣在膝盖上。
“苏唯。”
“嗯。”
“那天组会上,你是不是觉得我特别不讲理。”
我本来可以说“没有”。
十九天前的我大概会说“没有”,因为那是句让人好过的话,而且也不算撒谎。
但那天我没有。
“我当时觉得那张图不对。”我说,“现在觉得,我那句话,说得不对。”
秦蔓没接。
她把袋子里剩下的那个橘子掰成两半,一半递过来,一半自己拿着。
不是原谅,也不是道歉。
就是半个橘子,隔着长椅中间那截空位。
我接了。
回宿舍的路上,我把笔记本最后一页那张表,补上了第七条:
独立第二时间链:6 月 18 日 21:14,一作秦蔓向梁恪发送《Fig3 初版》邮件并抄送其本人邮箱,附件 Fig3c_v1.tif。附件经核查组依职权调取,其 SHA256 与 H1、H2 一致。
该记录早于本人入学报到七十五天,且不在本人任何权限范围内。
写完我停了笔。
七十五天。
9 月 1 日我拖着行李箱进南门的时候,那张图已经在那个邮箱里躺了两个半月。
我没动过它。
我甚至没见过它,直到第六天。
而它从六月起,就一直等着有人去问一句“这个附件还在吗”。
周颖在宿舍,看我趴在桌上写,探下头:
“今天不算命了?”
“算完了。”我说。
“算出什么了。”
我把笔帽扣上。
“算出我这张表,最早只到我入学第六天。”
“现在,能往前推到六月了。”
她“哦”了一声,缩回上铺,隔了一会儿又飘下来一句:
“那你现在,是不是就赢了。”
我看着那页纸,没马上答。
七条证据,四张桌子,一封邮件。哈希对上了,字段对上了,冰箱那 0.7℃ 对上了,批次号连着,门禁和流量各归各位。
从纸面上看,是够了。
可我脑子里浮出来的,不是这些。
是梁恪 9 月 9 日下午那句“那个 sync 账号,密码你用的是原来那个吧”。
是他在 B-217 里那句“流程不熟和故意,是两回事”。
是他在走廊上说“郑老师那边我熟,要不要我帮你打个招呼”。
他一次都没有说过一句错话。
他说的每一句,都对,都妥帖,都替人着想。
“还没。”我说。
“还差什么?”
“还差明天下午,十一个人坐在一间屋子里,把这张表从头到尾复算一遍。”
“那不就是走个过场。”
“不是。”我把笔记本合上,“过场是我一个人讲。明天得让他们自己算出同样的数。”
“人可以不信一个人。”
“但很难不信一张自己算过的表。”
第9章 九月二十一日,下午两点
9 月 21 日,下午两点,B-217。
还是那间会议室,还是那张长条桌,窗帘依旧拉着一半。只是这回,光带落的位置往左挪了一点,没照到绿萝,照在桌面那台投影仪的散热口上。
十一个人。核查组三位,组里六位,记录员一位,我一位。
陆昭宁老师坐在跟上次同一个位置,隔着我一个空位。面前还是一本合着的笔记本。
吴桐先讲了三分钟程序:本次会议为核查组组织的技术事实核对,不作性质认定,不形成处理意见;所有材料依职权调取,全部入卷;发言逐字记录。
然后她把投影交给何砚秋老师。
不是交给我。
“方法学复算过程,请何老师先讲。”她说,“当事人不作陈述。”
我坐在最靠门那排,手边只有一支笔和一张空白纸。
那四十八小时里我攒的所有东西,此刻都在别人手上,被别人投到墙上。
我后来想,这可能是整件事里,陆老师教我的最要紧的一课:你要自证,就不能自己是那个讲的人。
何老师讲得很慢,也很不带情绪。
他先讲算法,再讲口径,再讲每一步怎么重跑。他没说“苏唯没错”,一次都没说。他只说:
“附件 A 是从干净环境复现的步骤。在座任何一位,拿一台没装过我们组任何脚本的电脑,照着走,应当得到附件 B 里同样的三串数。”
“如果走不出来,这份材料作废,责任在我。”
投影上第一张表,是那三个哈希:
H1 = H2
H1 ≠ H3
底下三行小字,写清每个 H 是什么、从哪来、谁调的、什么时候调的、签收编号。
有人在自己的笔记本上跟着敲。我听见斜对面那个博三师兄的键盘响了大概两分钟,然后停了,轻轻“嗯”了一声。
那声“嗯”,比我讲一百句都管用。
第一回合,是梁恪先开的口。
他坐姿没变,声音还是那种妥帖的、不急不慢的。
“何老师,我没别的意思,就问一句技术上的。”
“请讲。”
“归档空间是苏唯同学个人的。”他说,“哈希是她自己算的,记录是她自己提交的。她在 9 月 18 日知道组里出事之后,完全可以在自己的空间里,补一条写着 9 月 6 日的记录。”
“数在她手里,日期也在她手里。”
他顿了一下,转向我,甚至点了下头。
“我不是说她做了。我是说,这份材料在技术上,排除不了这个可能。”
会议室里有人抬了头。
我承认,那一瞬间我后背有点紧。
因为他说得对。
不是全对,但对了一半——一串写在自己空间里的十六进制数,孤零零拿出来,确实证明不了自己不是自己写的。9 月 20 日上午吴桐在科研办跟我说“记录里对你不利的那几条我照出”,指的就是这个。
梁恪没造谣,也没狡辩。他只是把我这张表最薄的地方,伸手按了一下。
何老师没反驳,直接翻到附件 C。
“问得对。”他说,“所以我没有用这四十三条记录本身来回答。”
投影换了一张长表,密密麻麻,从 0001 排到 0832。
“这是归档服务器 9 月 6 日全天的签发批次号序列。0417 到 0459,是苏唯同学那四十三条。”
“往前十条、往后十条,我截出来了:0416 是化学院一位硕士的论文附图,0460 是医学院一组测序质控表。中间没有断号,没有重号,没有空位。”
“服务器按提交顺序连号签发,单条不可删除、不可覆盖,用户层没有写时间戳的权限。”
他把表往前翻了一页。
“要补一条 9 月 6 日的记录,得让那天后面四百多条记录一起让出位置。”
吴桐补了一句,语气平得像念条款:
“归档系统运维规范第 4.2 条,一次写入存储不提供用户级时间字段修改接口。规范页已入卷。”
梁恪看着那张序列,看了大概七八秒。
“这条我收回。”他说。
没有多一个字,也没有再找补。
我第一次见有人认得这么干脆,心里反而更沉了一点。
他不是不会打。他是在挑能打的地方打。
第二回合,他换了个方向。
“那我说说我这边。”他说。
“9 月 17 日夜里,共享盘那个 Fig3c,是我写进去的。这个我认。”
桌上有人动了一下。
“原因是 9 月 15 日编辑部来函要补原始 TIFF。Fig3 是三年前的老实验,2023 年平台迁移的时候,老格式的一批原始文件确实丢过。我手上有当时整理好的一版图,我把它转成 16-bit 补进共享盘,是想让返修材料能对上。”
“我没走变更单,也没跟蔓姐说,这是我不对。该走的单子我补。”
他停了一下。
“但请核查组把两件事分开:我补的是原始数据的归位,属于整理。真正被编辑部质疑的,是投稿里用的那张 8-bit 截图图。”
“而那张图,是 9 月 6 日苏唯同学整理附件时最后一个经手的。她当天在组会上当众说它不对,9 月 9 日又自己改了共享盘权限,把这些文件全划到了她建的目录底下。”
“论动机,她比我更想让这件事被翻出来。”
他说完,双手放在桌上,没再看我。
我得说,这一段说得非常好。
好到我坐在那儿,忽然明白了 9 月 19 日上午他为什么要在 B-217 里讲那句“流程不熟和故意,是两回事”——他两天前就已经把这一回合的路铺好了。
他把“9 月 17 日我动过文件”合法化成“整理归位”,把“我在深夜用公用机操作”轻轻带过,然后把整件事的重心,挪回到 H1 那张截图图和“最后一个经手人”上。
而 H1 的最后一个经手人,确实是我。
何老师没接他的话,把投影交给了郑立柱老师。
郑老师没起身,只把一份盖了平台章的书面说明推到桌子中间,由吴桐念:
GI-2019-03 本地离线日志载:6 月 19 日 14:22 存在一次有效曝光,样本编号、操作者工号、曝光 3200 ms、增益 1.0 记录完整。本日志存储于设备本地,不随共享盘同步,未参与 2023 年迁移。
-80℃ 温控模块独立上传曲线载:同日 14:19,开盖 47 秒,腔温回升 0.7℃。
结论:该批样本于 6 月 19 日完成成像,对应原始 TIFF 由本机写出。
念完,何老师接过去,翻到字段规范那一页。
“按 GI-2019-03 固件规范,本机写出的每一帧,文件头必含四项元数据:设备序列号、曝光时长、增益、操作者工号。经用户层另存,字段结构即不完整。”
“现存 Fig3c,也就是 H3,四项全无。”
他在结论栏里只写了一行:
H3 不是该设备写出的文件。
“所以‘老文件丢失、补一版归位’,”何老师说,“在技术上不成立。丢的那批文件不在这台机器上——它们从来没进过共享盘,而在设备本地日志里。要归位,得从设备导出,不是从别处另存一张。”
吴桐这时候调出最后一页,投影。
那是一封邮件的截图,被隐去了正文,只留头信息:
日期:6 月 18 日 21:14
发件人:秦蔓 收件人:梁恪 抄送:秦蔓
主题:Fig3 初版_给梁老师
附件:Fig3c_v1.tif(1.2 MB)
“附件由核查组依职权调取原件,现场计算。”何老师说,“SHA256 与 H1、H2 一致。”
“6 月 18 日,早于苏唯同学入学报到七十五天。”
会议室里安静了很长一段。
我坐在靠门那排,手指压着那张空白纸,一直没落笔。
这一击不是我打出去的。
是秦蔓在长椅上剥完的那个橘子,是她翻了三分钟“已发送”找出来的一个附件,是她按我说的、只写了“邮件是什么、什么时候、附件叫什么”,一句多余的话都没写。
而它把整条时间链,从 9 月 6 日,一把推回了六月。
H1 在我踏进南门之前两个半月,就已经作为投稿初版图,在组里流转。
我 9 月 6 日只是第一个把它的位深读出来的人。
梁恪看着那页投影,没有立刻说话。
他伸手把面前那杯水往桌心推了推,像是要给自己腾出一点地方。
“……这一条,”他说,“我没有解释。”
第三回合,隔了差不多两分钟才来。
“那 9 月 17 日夜里那部分,我还是要说清楚。”他抬了头,语气没变软,也没变硬。
“我 23:20 进实验楼,是夜间巡检,平台那边夜巡不走工单,是惯例。工单系统那天零单,不代表我没进去。”
“至于 sync_lab——账号是苏唯建的,口令是她填的,组群里那张权限表上写得清清楚楚,谁拿到了都能用。”
“她的终端在宿舍,只能证明她人不在楼里。”他看向我,“证明不了那个账号不是她自己从宿舍远程连上去用的。”
“远程登录这个可能,材料里没有排除。”
又是对的。
我甚至在本子上记了一笔:这一条我漏了。
四十八小时里我盯着门禁、DHCP、通话记录,心里想的全是“我不在”,没想过“不在也能操作”。
吴桐翻到材料第十页。
“核查组调取平台网络配置表:10.23.7.44 为三楼实验区公用机固定内网地址。该终端未开放远程桌面,未接入 VPN,无对外开放的端口,配置自 2024 年起未变更。”
“同日 23:40–23:42,该终端本地输入事件序列完整:解锁、打开共享盘、拖放文件、确认上传、关闭窗口。为本地会话,非远程会话。”
郑老师补了一份书面确认:
平台夜巡须登记《夜间巡检登记簿》,由当班人签字;工单系统可不建单,但登记簿不得空。9 月 17 日该簿无签字记录。
“两条交叉。”吴桐说,“当晚该终端只可能由人在机器前操作;在场的人,门禁记录只有一位。”
投影停在那张门禁表上:
23:20 东门进入 梁恪
00:05 东门离开 梁恪
梁恪看了很久。
我等着他再找一句能站得住的话。
他没有。
“这几条我没得补。”他说。
然后他转向吴桐,坐姿还是端正的。
“我申请按程序移交学术委员会。Fig3 的事、9 月 17 日的事,我配合,材料我这边会补一份书面说明。”
吴桐记了,给了他一个回执编号。
散会的时候,他站起来,把那杯一直没动过的水推正,杯柄朝右,跟桌沿齐平。
然后他抱着自己的文件夹走了,没看我,也没看秦蔓。
整场会,陆昭宁老师一句话没说。
投影亮了七十三分钟,她没发过一次言,没点过一次头,也没在笔记本上写过一个字——我离她隔着一个空位,看得见那本子始终合着。
散会时她第一个起身,把本子夹在腋下,从最靠门这排走过去。
经过我身边的时候,她脚步没停。
也没看我。
我坐在那儿,忽然想起 9 月 19 日她在办公室说的那句:
“我要是说了,哪怕只说一句‘我相信苏唯’,你这份材料从明天起就不干净了。”
吴桐宣布:材料齐备,转正式核查;本次会议不作性质认定;实验平台权限待书面结论后恢复。
她把签收单递给我签字。
我签的时候,笔尖还是顿了一下,跟两天前的毛病一样。
只是这回,纸上写的不是收走,是提交。
第10章 我认下的三件事
那天晚上,我在宿舍改材料标题,改了三遍。会上投影的是举证材料,要入卷的,是另一份。
第一遍写的是《关于 9 月 19 日核查事项的情况说明》。
看着像辩解。
第二遍写《举证材料汇编》。
看着像交作业,也像在跟谁赌气——把四十八小时攒的东西一股脑摞上去,等别人夸一句“准备得真全”。
第三遍,我删掉了所有跟“我”有关的词,写成:
《Figure 3 原始数据异常事件技术复盘与流程改进建议》
周颖从上铺探头看了一眼:“你这不是申诉书啊。”
“不是。”
“不写‘我是被冤枉的’?”
“不写。”
“那人家翻一遍,还以为是你做的技术总结。”
“本来就是。”我说,“图不对、权限有洞、归档没人做,这三件事跟谁被冤枉了没关系。它们明天还在。”
她缩回去了,隔了半分钟飘下来一句:
“苏唯,你这人现在说话,越来越像一张表。”
我笑了一下,没否认。
材料一共十九页。
第一页不是哈希,不是时间线,不是那三个等式。
第一页的标题是:
本人存在的三项违规
下面三条,我写得比后面十八页都仔细:
一、9 月 9 日 14:00–16:30,未经批准变更 /proj_data 共享目录权限、新建只读归档目录,未提交平台变更单,无签字,未约定变更时间窗,未做变更前备份校验。
二、同日私自创建服务账号 sync_lab,沿用历史口令,未按平台账号管理规定报备,未设置口令更换周期,未限制其登录来源。
三、9 月 6 日在组会上当众指出投稿附件 Fig3c 格式异常,并于当晚在组群发布《Fig1–Fig5 格式核对说明》,未按组会书面意见流程先行提交一作与导师,客观上使一作在返修关键期陷入被动。
写完这三条,我盯着第三条看了很久。
这三条里,最轻的一条就是它。轻到不会有任何处分,甚至没人会拿来问我。
但它是真的。
9 月 6 日晚上八点四十,那间会议室里十几个人不知道该把眼睛放哪儿,是因为我。
秦蔓那半个月没睡过一个整觉,有一半是因为我。
我要是把这一条从第一页拿掉,后面十八页再干净,也是替自己挑过一遍的干净。
9 月 22 日上午,科研办。
吴桐翻到第一页,停了大概五秒。
“这一页你可以不写。”她说。
“核查组没要求当事人自列违规,写了也不影响事实认定。”
“我知道。”
“那为什么写。”
我把材料往她那边推了推。
“因为这张表得能被从头复算。”我说,“里面要是有一条是我挑着不放进去的,剩下六条,明天谁都能拿同一句话再问我一遍。”
“何老师说过,他只信能重跑一遍的东西。”
“重跑的时候,也得跑得过去。”
吴桐没说“对”。
她在回执上补了一行备注:
“当事人主动提交自列违规事项三项,请求按《办法》一并处理。”
然后盖了章,把第二联撕给我。
处理决定是当天下午出的,一共四行,也是一张表:
通报批评(院内,范围限于课题组与科研办)。
取消本年度评优资格。
补修《科研数据管理与学术规范》课程,16 学时,考核合格后方可恢复独立提交权限。
以上三项记入研究生科研诚信教育档案,不记入学位档案。
我签了字。
签得挺快,比 9 月 19 日上午签那张收卡单还快。
不是不在乎。
是我这四十八小时里,把“我没错”这三个字,来回称了很多遍,最后发现它根本不是我要的东西。
我要的东西只有两样:
一句盖了章的书面结论,和一张能刷开三楼门的白卡。
其余的——群里怎么传、走廊里谁看我、师兄师姐背后怎么议论、要不要发个澄清、要不要找谁当面说清楚——我一样都没做。
没在群里解释过一个字。
没找过任何一个同学帮忙作证。
没往外发过一份材料,没联系过任何平台、任何媒体、任何一个“懂点法”的亲戚。
梁恪那部分,我在建议里只写了一行:
建议按《明理大学科研诚信管理办法》移交学术委员会依程序处理,本复盘不对个人作性质认定。
我没写他的名字第二次。
不是替他留体面。
是我终于分清了:我要修的是那个谁都能写的 /proj_data,不是某一个人的脸。
书面结论是 9 月 22 日十六点十分下来的。
一张 A4,学院抬头,红章,四行正文:
经核查,现有证据不支持“2026 级博士研究生苏唯同学替换 Figure 3 原始数据、外泄课题组未发表成果”之认定。
9 月 17 日相关操作另案处理。
自即日起恢复其实验平台门禁、共享盘写入权限及样本领用资格。
本结论为事实认定,不涉及对其他相关方的处理意见。
吴桐把白卡从封口袋里拿出来,连着那张纸一起递给我。
卡边角还是被我磨毛的那一截。
我拿着那两张纸,在科研办门口站了一会儿。
没哭。
也没拍照。
我给我妈打了个电话,响了两声她接的,第一句问“吃了没”,我说“吃了,食堂今天有糖醋排骨”,她说“别总吃甜的”,聊了三分半钟,挂了。
一句都没提这十九天。
不是怕她担心。
是这件事,说给她听,得从“什么叫 16-bit 灰度”讲起,讲完她也只能听懂“我姑娘被人冤枉了”。
而我拿回来的,不是一句冤枉。
是一张能复算的表。
回到宿舍楼下,组群里有两条新消息。
秦蔓发的:
@全体成员 Fig3 我重跑一遍,原始数据这回先发归档,再进附件。谁都别嫌麻烦。
隔了一分钟,梁恪的头像在群成员列表里灰了下去。
我没点开看。
周颖在寝室,看我把白卡插进卡包,问:
“就这么完了?”
“没完。”我说。
“还差什么?”
“差一门课。”我把那张处理决定折好,夹进笔记本,“十六学时。”
“还有呢?”
我拉开椅子坐下,把笔记本翻到全新的一页。
“还差把 9 月 9 日那张权限表,重新写一遍。”
“这回走单子。”
第11章 能重跑一遍的才算数
十月八日,我第一次去平台交变更单。那时候独立提交权限还没恢复,单子得郑老师签。
还是三楼仪器间那道贴黄条的门槛,这回我站进去了,白卡刷开的时候“滴”了一声,比十九天前听着亮一点。
郑立柱老师把表格推回来,让我重写。
第一次退回,因为我写了“优化 /proj_data 权限配置”。
“写清楚改哪个目录、从什么改成什么、影响哪些在研项目。”他说,“优化”不是操作。
第二次退回,因为我没填变更时间窗。
“你打算几点改、改多久、这期间谁的数据不能跑。”他拿铅笔在空白处点了两下,“写不出来,说明你自己还没想清楚。”
第三次退回,因为回滚方案那一栏我写了“如出问题恢复原配置”。
“恢复到哪一版?谁签的字?备份在哪台机器?”他没抬头,“写‘恢复原配置’等于没写。”
第四次,是我自己发现少了一个人的签字:这个目录还挂着隔壁组一个合作项目的只读挂载,改动得对方负责人会签。
我抱着表跑了一趟隔壁楼,回来的时候快下班了。
郑老师接过最后那版,从头看到尾,看了很久,然后签了字,盖了章。
“过了。”他说。
我拿着那张单子往外走,走到门口忽然停了一下。
“郑老师,改四遍,不麻烦吗。”
“麻烦。”他说,“但你现在这张单子,三年以后随便谁翻出来,不用问你一句话,就知道那天下午两点到四点,谁把什么改成了什么,出了事该找谁。”
“这叫有来路。”
我站在门里,把那张单子对折,夹进文件夹。
上一次站在这儿,我还进不来,隔着门槛接过一叠打印件。那天他跟我说:“别拿它当刀使,它是尺子。”
那天我没听太懂。
现在我懂了:单子也是尺子。
制度是十月中旬落地的,一共三条,写在学院新发的《科研数据管理办法(补充)》里,很短:
一、课题组原始数据实行平台级一次写入归档。成像仪、测序仪写出的原始文件,在下机时自动同步一份到平台归档区,任何人不可修改、不可删除;课题组共享盘只保留工作副本。归档不再是谁的个人习惯。
二、权限变更工单化、双人复核。任何目录权限调整须提交变更单,写明范围、时间窗、回滚方案,由平台与课题组各一人会签;服务账号统一由平台签发,口令九十天轮换,禁止沿用历史口令。
三、投稿附件在提交前,须附原始文件溯源表:每张图对应哪台设备、哪一天、哪次曝光、操作者工号,以及固件元数据校验结果。缺任何一项,不予提交。
第三条是秦蔓加的。
她在征求意见那天,只说了一句:“以后别再让谁,靠看一眼位深来替全组发现问题。”
会议室里没人笑。
陆昭宁老师在文件最后一位签字。
签完,她在组群里发了四个字:
按这个执行。
没有“这段时间大家辛苦了”,没有“苏唯同学提了个好建议”,没有一句提到我。
我盯着那四个字看了半分钟。
然后我明白,这就是她那句“我相信你”。
她把它写成了一句谁都能执行、谁都不用领情的话。
复盘材料我拿去组会上讲了一次。
材料后来入了卷。吴桐说可以,陆老师说“你自己讲”,何老师说“附件 A 发群里,别只发结论”。
那天 B-217 坐了十一个人,比通报那天多了几位。
我没从哈希讲起。
我从第一页讲起——本人存在的三项违规,一条一条念,念得比后面十八页都慢。
念到第三条“9 月 6 日在组会上当众指出投稿附件格式异常”的时候,我抬了下眼,看了秦蔓一眼。
她坐在靠窗那个位置,笔尖朝下,没抬眼,也没低头。
我接着往下讲。
讲四十三个校验值怎么来的,讲 H1 = H2 和 H1 ≠ H3,讲 0417 到 0459 为什么插不进去,讲固件字段为什么仿不出来,讲 6 月 19 日 14:19 那台冰箱开盖四十七秒、回升零点七度,讲 6 月 18 日 21:14 那封邮件。
从头到尾,我没有说一句“我是被冤枉的”。
讲完,我把附件 A 发进组群,附了一句:
谁算得不一样,来找我。
散会以后,那个博三师兄在走廊上追上我,犹豫了半天,问:
“你把自己那三条摆第一页讲……不怕人反而记住你违规?”
我想了想。
“记住就记住。”我说,“那三条本来就是我的。”
“可你都洗干净了。”
“洗干净的只有一件事:那张图不是我换的。”我说,“另外三件,是我真做过的,跟那张图没关系。”
“一张表里要是有一条是我挑着不放进去的,剩下六条明天都得跟着重算。”
他“哦”了一声,走了。
那之后,走廊里的议论没几天就散了。
没人再传“新来的把组里数据卖了”。不是谁替我辟了谣,我也没发过一句澄清。十九页摊在那儿,附件 A 在群里,谁都能拿台干净电脑重跑一遍。
能重跑的东西,用不着人替它辩护。
我后来跟周颖说这段,她躺在上铺,隔了很久飘下来一句:
“所以你既没解释,也没求人。”
“嗯。”
“就把过程摊开了。”
“摊开了。”我说,“摊开比较省事。”
秦蔓那篇稿子,十月下旬重新投出去。
她把补实验又跑了一遍,Figure 3 整个换成了新做的图,原始 TIFF 从成像仪导出来,先发平台归档,拿到归档回执号,才进投稿附件。
那天下午我在仪器间门口碰见她,她抱着一叠打印件,纸角夹着一张溯源表。
“蔓姐。”
“嗯。”
她把表最上面那页翻给我看,设备序列号、日期、曝光、工号,四栏填得整整齐齐,最后是平台归档回执号。
“先归档,再进附件。”她说,语气很平,“按新办法。”
顿了一下,她又补了句:
“我现在也算命了。”
我笑了。
她也笑了一下,很短,然后抱着那叠纸进去了。
没有“对不起”,也没有“谢谢你”。
我们中间那截长椅上的空位,后来一直没谁去坐,也不必坐。
梁恪那部分,是十一月上旬走完的。
学术委员会按程序立案,他补了一份书面说明,交了 9 月 17 日那晚的完整操作记录,配合核查,没有申辩。
工位是十一月初清的。桌面上只剩一台旧显示器和一个空笔筒,冻存盒都按编号归了平台。
我没去看。
吴桐有天在科研办跟我说了一句:“他那边的材料齐了,卷宗归了档,你这份也归了档,两卷分开。”
我说好。
就这一句。
我没问结果,没问处理到什么程度,也没问会不会有人再提起我的名字。
不是豁达。
是我这十九天里,把“追下去”这三个字在心里翻过好几遍,每一次翻完,落点都一样:我要修的是那个谁都能写的目录,不是某个人的名字。
目录修完了。
剩下的,有该管的桌子在管。
《科研数据管理与学术规范》十六学时,我是十月最后一个周末考完的。
八十八分。扣的十二分,全在第一道大题:给一段情景,写出完整的权限变更单要素。
我把回滚方案那栏写漏了一个签字位。
交卷的时候我自己就知道了,走出教室还在想那个空着的格子。
周颖说:“都考完了还惦记。”
“惦记一下挺好。”我说,“下次就不会漏。”
十六学时里我最喜欢的一节,不是讲学术不端,是讲实验记录本。
老师举着一本旧本子说:每一页右下角要签日期,签了,这一页才算发生过;没签,你做得再对,在程序上也等于没做。
我坐在最后一排,忽然想起 9 月 19 日上午散会那会儿,我跟吴桐争的那句“那本是我自己的,封面写了名字,还没交导师签字”。
那天我以为那只是句实话。
现在我知道,那句话里,“没交导师签字”六个字,比“是我自己的”重要得多。
一样东西是谁的,不决定它算不算数。
它有没有来路,才决定。
第12章 给新生讲的第一节课
十一月中旬,研究生院那边问陆老师,能不能派个人给新生讲一次数据规范,一节课,四十分钟,不点名、不考试。
陆老师把邮件转给我,正文只有一行:
你去。讲你自己的那部分。
教室在 B-217 隔壁那间,比会议室大,坐了二十几个新生,有直博的,有硕转博的,还有两个跟我一样从别的学院跨过来的。
我站在讲台上,把投影打开。
第一页只有一句话:
我入学第十九天,差点被自己的好意埋了。
底下有人抬头。
“先说清楚,”我说,“今天不讲学术不端,也不讲怎么防人。讲三件很小的事,都是我入学头十天做过的,三件在我原来的学科里全都是对的。”
“第一件,我看见一张图不对,当着十一个人说了。”
“第二件,我看见共享盘谁都能写,自己动手改了权限。”
“第三件,我给经手的每个文件算了一串校验值,留了底。”
“前两件把我推到了 9 月 19 日上午那间会议室。第三件,四十八小时以后,把我拉了出来。”
我在白板上画了三条杠。
“先讲第一条。”
“看见一个文件不对,说不说?”
“说。”
底下有人笑。
“但要换个说法。”我说,“不是‘这不对’,是‘我把属性表放这儿了,您方便的时候看一眼’。”
“这两句话,内容一模一样。区别不在对不对,在于前一句把人架在桌上,后一句给人留了一条能走的路。”
“我以前觉得这叫圆滑。”我把白板笔盖上,“现在不这么觉得。”
“一个人正赶返修、正准备答辩、正等一个结果,你当着十一个人指出她的东西有问题,她没有台阶,也没有时间把来龙去脉讲清楚。你说的那句真话,落到她身上,就不是一张图的位深了。”
“留一条路,不是替她遮。是让那句真话,真的能走到该到的地方。”
底下有人开始记。
“第二条,看见权限有洞,别自己改。”
我先听见后排有人小声说了句“为什么”。
“因为改得对不对,和改得算不算数,是两件事。”我说,“我那天下午改得挺漂亮,分了三组,建了只读目录,还列了张谁都能看懂的表。可没单子、没签字、没时间窗、没回滚方案。”
“结果就是:从那天起,那个目录上出的每一件事,都先落在我名下。”
“单子不是障碍。”我把那张改了四遍的变更单投上去,四栏填满,两个会签,“它是让这个改动有来路。三年以后谁翻出来,不用问我一句话,就知道那天下午两点到四点,谁把什么改成了什么。”
“第三条。”
我点开归档空间的截图,那行小字还在:“一次写入,内容提交后不可修改、不可删除,时间戳由归档服务器签发。”
“经手任何东西,留一条它当时是什么样。”我说,“不是为了防谁。”
“是因为人记不住自己三天前到底看见了什么。”
“我大三跑坏过一块硬盘,两周白干。我老师没批评我,只说了一句:以后把过程留下,结果会骗人,过程不会。”
“我留了四年。”我笑了笑,“入学第十九天,它替我把话说完了。”
四十分钟快到底的时候,后排有个女生举手。
“学姐,”她说,“那……要是已经被冤枉了呢?”
教室里安静了一下。
我把投影关了。
“先别急着说‘不是我’。”我说。
“先问三句。”
“第一句,这个核查有没有时间窗。”
“第二句,我能不能提交材料。”
“第三句,我看不到的那些东西,谁有权调。”
我在白板上把三句写上,一笔一画。
“9 月 19 日上午,我坐在隔壁那间会议室,桌上七个人,一份通知念完,问我有要说明的没有。”
“我开口问的第一句,是:这份日志,全量还是摘录。”
底下有人小声重复了一遍。
“那句话谈不上硬气。”我说,“是我当时算过一笔账:那间屋子里,解释不值钱。手上没日志、没权限,说一百遍‘不是我’,笔录里也只多一行‘当事人陈述’。”
“我要的不是说话的机会。”
“是能拿出东西的机会。”
“后来那四十八小时,我一张表都没自己讲。方法学复算是何老师讲的,日志是郑老师调的,门禁和工单是吴老师出的,最后那封邮件,是蔓姐翻出来的。”
“我说的每一句,都还能被人反问。”
“附件 A 里那串数不会。谁拿台干净电脑跑,都是同一个结果。”
我把白板笔放下。
“还有最后一句,比前面都重要。”
“东西摊开的时候,第一页先写你自己错的那三条。”
“因为那张表得能被从头到尾重跑一遍。中间挑掉任何一条,剩下全得跟着重算。”
下课铃响的时候,二十几个人收拾东西往门口走。
那个跨专业来的女生留到最后,问我:“学姐,那你现在……是不是已经很懂人情世故了?”
我想了想。
“不算是。”我说。
“我还是会给每个文件算一串数,还是看不得共享盘上写着‘任何人可写’,还是会在心里先冒出一句‘这不对’。”
“那不一样在哪儿?”她追了一句。
“以前我觉得,把话说对就行了。”我把投影笔放回桌上,“现在会多想一步:这句话说出去,谁得接着往下做,他手上有没有能签字的东西。”
“比如那天我要是说‘这图不对’,蔓姐得当场答,答不上来就下不来台。我要是把属性表放她桌上,她可以下午再看,看完自己还能复算一遍。”
“同一件事。”
她“哦”了一声,好像没太听懂,又好像听懂了一点。
她把电脑合上,又想起什么似的打开,问我要那份溯源表的模板。
我说发群里了,字段自己改,别挂我的名字。
“为什么呀?”
“挂了我的名字,以后出了问题,查的人会先来找我。”我拔下 U 盘,“填你自己,查的人才能查到你那天到底做了什么。”
她点点头,抱着电脑走了。
教室空下来,二十几张椅子歪着,白板上还留着我画的三条杠。
我拿板擦从头擦到尾,擦到第三条慢了一点。
那三条杠画得很直。九月里我改共享盘权限,也列过一张一样直的表:三组角色、只读目录、谁能写谁不能写,一目了然。没单子,没签字,没时间窗,也没回滚方案。
十月那张变更单我改了四遍才签下来,也是四栏填满:范围、时间窗、回滚方案、双人会签,日期写在右下角。
擦完,我把板擦放回槽里,关灯。
上楼取水杯的时候,路过三楼仪器间。
-80℃ 冰箱还是靠墙立着。门上那张洇了霜的手写 A4 不见了,换成打印的,四栏:样本类型、冻存日期、负责人、盒号。最下面一行小字,“平台统一标签,郑立柱签”。
九月里我也贴过一套四栏,趁那天下午没人,贴了整整四层架子。第二天早上被整整齐齐揭下来,叠好,放在旁边的台面上。
这回是平台贴的。
我看了两秒,没去动它。
成像仪那边的灯还亮着,新认证下机即归档,回执号一条一条往下排,中间不断号。这些现在都不用我管了。
白卡刷开侧门,“滴”了一声。
外面天已经有点暗了,风把公告栏上那张红海报卷起来的角又压下去一点——9 月 17 日校史馆那张,一直没揭。
我沿着梧桐道往宿舍走,走到一半,掏出手机看了一眼。
今天经手的两份文件,归档回执号连上没有。
连上了。
我把手机揣回兜里,接着走。