林晚第一次见到陈砚,是在市金融监管局数字治理中心的应急响应大厅。
那天下着冷雨,玻璃幕墙外灰云低垂,室内却灯火通明。大屏上跳动着密密麻麻的数据流——“信捷贷”“速融宝”“易借通”……数十个App金融信贷平台的实时风险热力图正由黄转红。警报声短促响起,第7号通道弹出红色弹窗:“用户投诉激增,年化利率标注模糊,暴力催收录音证据链上传成功。”
她刚调任合规审查科三个月,手边还摊着未拆封的《移动金融App合规指引(2024修订版)》。而他穿着深灰衬衫,袖口挽至小臂,正俯身在工位前快速敲击键盘,侧脸线条利落,下颌绷着一道克制的弧度。屏幕上,一段被篡改的用户授权协议正被逆向解析——原始条款中“自动续期扣款”被前端界面隐去,仅以灰色小字嵌在滚动协议底部第三十七页。
“这不是技术故障。”他头也没抬,声音不高,却让整个工位区安静了一瞬,“是设计性误导。”
林晚怔住。她认得这个Id:陈砚,数字监管组首席算法稽查员,业内称“拆墙人”。三年前,他主导建模的“信贷行为穿透式识别系统”上线后,七家伪装成生活服务类App的高利贷平台在48小时内被全网下架。但没人提过,他左手无名指内侧有一道细长旧疤,像一道未愈合的括号,轻轻收束在指根。
他们本不该有交集。
她是法务出身,信奉条文即尺度;他是计算机博士,笃信数据即真相。她整理的是白纸黑字的违规事实清单,他追踪的是毫秒级跳转路径与埋点异常。她写《关于“融易达”App涉嫌变相收取砍头息的核查报告》,他同步输出《其SdK调用链中隐蔽资金导流节点拓扑分析》。两份材料被钉在同一份督办函里,送进省局会议室。
真正开始并肩,始于“蜂巢行动”。
那是初夏,某头部互联网公司旗下信贷App“蜂贷”用户投诉量单周突破三万。表面看,它资质齐全、利率公示完整、合同条款无硬伤。但投诉内容高度一致:凌晨两点接到AI语音电话,称“账户存在异常交易”,要求立即点击短信链接“验证身份”;链接跳转至仿冒银行页面,诱导输入银行卡号与短信验证码;三分钟后,绑定信用卡被分八笔刷走四万六千元。
林晚带队现场检查时,对方合规总监微笑递来全套备案材料:“我们严格遵循《App违法违规收集使用个人信息行为认定方法》,所有授权均获用户勾选同意。”
陈砚没说话。他只将一台启用了镜像抓包的测试机推到对方面前,屏幕亮起——当用户滑动至协议末尾、指尖即将触达“同意”按钮的0.3秒前,页面底层自动触发一次静默权限申请:读取剪贴板。而就在前一秒,用户刚在微信里复制过自己的身份证号。
“你们在等用户复制完敏感信息,再‘恰好’弹出授权框。”陈砚指尖点了点屏幕,“这不叫勾选同意。这叫认知劫持。”
总监笑容僵住。
当晚,林晚在监管局档案室核对历史罚单,发现“蜂贷”过去两年被约谈五次,每次整改报告都写着“已优化交互流程”。她翻到第三次约谈记录,附页一张模糊的现场照片:背景白板上,一行手写公式尚未擦净——I = f(pxt) + e,下方标注:“用户决策延迟容忍阈值模型”。
她忽然抬头,望向窗外。对面写字楼顶,“蜂贷”巨幅广告牌霓虹闪烁,一个卡通蜜蜂正把金币塞进用户掌心。
原来早有人算准了人心的缝隙。
陈砚后来告诉她,那个模型是他读博时的副产品。“p是感知压力,t是时间压迫感,e是随机干扰项。”他顿了顿,“我们以为自己在点击‘同意’,其实只是大脑在高压下选择了耗能最少的路径。”
林晚没接话。她想起自己母亲——退休教师,去年因轻信“零门槛养老贷”抵押了房本,结果每月还款额比退休金高出两千。催收电话打到学校教务处,说她“恶意逃废债”。母亲没敢告诉任何人,独自在阳台坐到天亮,手指反复摩挲手机里那张贷款合同截图,放大、缩小、再放大,仿佛想从像素里找出一个能抓住的支点。
那晚之后,林晚开始学抓包工具,学看埋点日志,学分辨JS混淆代码里藏匿的跳转指令。陈砚则开始读《消费者权益保护法》司法解释,背《金融营销宣传管理办法》第十二条第三款,甚至旁听她科室的案例研讨会。他坐在最后一排,笔记本上画满流程图,旁边批注:“此处法律要件与行为可证性存在断层”。
他们渐渐形成一种沉默的节奏:她负责界定“是否违规”,他负责证明“如何违规”;她起草文书时援引法条,他提供截图、录屏、服务器日志哈希值;她去约谈机构,他守在后台监测其官网是否同步更新整改声明——若声明发布后三分钟内,App端口仍向特定用户群推送旧版协议,则视为虚假整改。
这种协作,在“青藤事件”中达到临界点。
“青藤钱包”是一款主打“学生备用金”的App,注册用户超八百万,其中七成为在校大学生。它不放贷,只做导流:用户填写基本信息后,被极速分发至十余家合作小贷公司。问题在于,它向用户展示的“综合年化利率”为12.8%,而实际签约合同中,服务费、管理费、担保费合计另计,真实成本高达39.6%。
更隐蔽的是“信用养成”机制。用户每完成一次签到、分享链接、邀请好友,App便在其个人信用分栏加0.5分。当分数达85分,系统“奖励”一次“极速审批”资格——但该资格仅对已逾期7天以上的用户开放,且审批通过后,首期还款日被强制设定在48小时后。
林晚带队突击检查那天,技术部负责人还在演示“科技向善”大屏:“我们帮年轻人建立金融信用意识。”
陈砚站在投影仪旁,忽然开口:“你们给用户看的信用分,和央行征信系统无关。它只是个游戏积分。而你们把‘游戏失败惩罚’,包装成了‘金融责任教育’。”
全场寂静。
林晚递上执法记录仪。画面里,一名大三女生面对镜头,声音发颤:“他们说我信用分不够,不能取消自动续贷……可我根本不知道开了自动续贷。我只点了‘马上借款’。”
陈砚调出后台数据流——那女生点击按钮前0.8秒,页面加载了一个不可见iframe,内嵌了一份独立协议,勾选项默认为“已阅读并同意”。而该iframe的域名,注册于塞舌尔,whoIS信息全部加密。
“这不是系统漏洞。”陈砚关掉投影,“这是架构性欺诈。”
处罚决定书下达当日,“青藤钱包”App在各大应用商店下架。但舆情并未平息。社交平台涌现大量“被信用绑架”的学生帖,有人晒出还款截图,月供占生活费320%;有人录下催收录音,AI语音用温柔女声说:“您正在透支未来,请珍惜每一次信用机会。”
林晚连续熬了三个通宵,逐条梳理投诉,分类标记:信息欺诈类、算法诱导类、责任转嫁类、救济阻断类……最后停在“救济阻断”一栏,久久未动。
这一类最沉默,也最重。
比如用户申请注销账户,系统提示“需结清所有关联债务”;可所谓“关联债务”,包括其曾通过该App跳转至的三家平台贷款,而那三家平台早已失联或被吊销牌照。又如投诉入口深埋在“我的—设置—帮助中心—常见问题—底部折叠栏第17项”,且提交后仅回复:“感谢反馈,我们将认真查阅”,再无下文。
她把这份分类表发给陈砚,附言:“法律说‘应当提供便捷注销渠道’,但没说‘便捷’的量化标准。”
两小时后,他回传一份文档:《App金融信贷用户救济路径可达性评估模型(草案)》。里面定义了七个可测量维度:点击深度、平均耗时、失败率、人工介入响应时长、多端一致性、无障碍适配度、语义歧义指数。附件是一段自研脚本,能模拟视障用户操作全流程,并生成可访问性报告。
林晚看着那些冰冷参数,忽然想起母亲手机里那张被放大到模糊的合同截图。原来所谓“便捷”,从来不是按钮的位置,而是系统愿不愿意,为那个迟疑的、颤抖的、不敢问第二次的人,多留一盏灯。
他们开始共同起草《App金融信贷违规治理操作指引(试行)》。
这不是一份处罚手册,而是一份“校准说明书”。它要求:利率展示必须同步呈现IRR(内部收益率)与ApR(名义年化),且字号不得小于正文;自动续贷条款须单独弹窗,禁用“确认”“继续”等诱导性按钮文字,仅可用“启用”与“拒绝”;用户注销请求提交后,系统须在15分钟内启动人工复核,并以短信+站内信双通道告知进度;所有催收外呼,语音开头须清晰播报“本次通话为债务提醒,非诈骗电话”,且不得使用拟人化AI声线……
林晚执笔法律逻辑,陈砚嵌入技术实现路径。争论最多的是“惩戒梯度”。
“对初犯、轻微违规,应以责令整改为主。”林晚说,“否则中小企业可能因一次字体大小不合规就被下架。”
“但‘轻微’由谁定义?”陈砚调出一组数据,“去年被认定为‘轻微’的372起事件中,219起涉及利率披露不实。而这些App,平均日活用户超五十万。”
他们最终妥协出“三维定级法”:按违规性质(A类为欺诈性,b类为程序性,c类为瑕疵性)、影响广度(用户数/投诉量/舆情声量)、持续时长(从首次上线至被发现天数)交叉赋权,生成动态风险值。值达85以上,直接启动立案;60-84,限期7日整改并公示;60以下,纳入重点观察名单,每月生成《合规健康度简报》。
文件定稿那天,窗外玉兰正盛。林晚合上电脑,看见陈砚正用创可贴重新包扎左手——那道旧疤又被蹭开了,渗出一点血丝。
“怎么弄的?”她问。
他抬眼,目光很静:“昨晚复现‘青藤’的埋点逻辑,手抖了一下。”
她抽了张酒精棉片,没等他拒绝,轻轻托起他的手。创可贴下,疤痕蜿蜒如未闭合的句读。她消毒、覆盖、按压边缘,动作很轻。
他没缩回。
指尖相触的刹那,她闻到他袖口有淡淡的雪松香,混合着一丝金属冷却液的气息。而他看着她低垂的睫毛,想起自己博士论文致谢页删掉又重写的那句话:“感谢所有未被算法驯服的犹豫。”
文件印发后,第一轮联合检查启动。
他们去了城郊结合部一家小型科技公司,主营助贷SaaS系统。老板四十出头,泡着枸杞茶,苦笑:“我们真没干坏事。就是按客户要求,把‘服务费’字段设成灰色透明,鼠标悬停才显示……这算违规?”
林晚出示《指引》第七条:“任何影响用户关键决策的信息,不得依赖悬停、滑动、长按等非常规交互方式呈现。”
老板挠头:“可用户自己不仔细看啊。”
陈砚打开笔记本,投屏显示一段用户行为热力图:92.7%的用户,在协议页停留时间不足8秒,视线焦点集中在“借款金额”“到账时间”“月还款额”三处,其余区域近乎空白。
“不是用户不仔细。”陈砚声音平缓,“是你们把重要信息,放在了人类注意力自然衰减曲线之外。”
老板哑然。
临走时,林晚留下一张卡片,印着监管局新设的“合规辅导热线”。背面是手写小字:“可预约免费代码审计,含隐私合规检测模块。”
回程车上,陈砚忽然说:“我以前觉得,监管就是筑墙。墙越高,野草越难长。”
林晚望着车窗外飞逝的梧桐树影:“现在呢?”
“现在觉得,墙要带门。”他顿了顿,“门上要有盲文,有语音导航,有足够宽的坡道——不是为了放行,是为了让人知道,哪条路是真能走的。”
她侧过脸,看见他耳后有一颗极淡的痣,像数据流里一个未被标定的正常值。
真正的转折,始于一场意外。
某周五傍晚,林晚收到匿名邮件,附件是一段音频。她戴上耳机,听见断续的喘息与金属撞击声,接着是年轻男声,带着哭腔:“……我真的没借那么多!他们说不还就爆通讯录……我妈是环卫工,求你们别打她电话……”
音频戛然而止。发件地址已伪造,但音频元数据显示,录制设备为某型号老年机,基站定位在城西老工业区。
她立刻联系陈砚。两小时后,他们在一间废弃厂房找到录音者——十九岁的周屿,瘦得惊人,蜷在锈蚀的锅炉旁,脚边散落着十几部二手手机,屏幕还亮着,全是不同信贷App的登录界面。
“他们用我的身份证,注册了二十三个账号。”周屿指甲缝里嵌着黑灰,声音嘶哑,“每个账号借三千,利息滚到八万。催收电话打给我爸,说他是老赖……上周他扫街时晕倒了。”
林晚蹲下来,递水。陈砚蹲在另一侧,打开平板,调出周屿名下所有贷款合同的电子签名比对报告。
“签名不是你的。”他说。
周屿摇头:“我没签。他们让我对着摄像头眨两次眼,说这是‘活体认证’。”
陈砚手指划过屏幕:“眨两次眼,只是验证你‘在场’。但合同签署,需要独立的数字签名动作。他们把眨眼和签约合并成一步,系统自动补全了你的签名哈希值。”
林晚心头一沉。这意味着,整套身份核验流程,从设计之初就放弃了真实性保障,只追求通过率。
他们带周屿回局里做笔录。过程中,陈砚一直坐在角落,默默记录。凌晨一点,林晚整理完材料出来,发现他还在,面前摊着周屿手机里导出的所有App安装包。
“你在做什么?”
“找共性。”他眼底有血丝,“二十三个App,分属十六家公司。但它们的活体认证SdK,都调用了同一个第三方服务——‘慧瞳科技’。”
林晚立刻调取企业库。慧瞳科技,注册资本五千万,法定代表人是位七十二岁的退休教授,但实际控制人一栏,股权层层嵌套,最终指向一家离岸基金。
“他们卖的不是技术。”陈砚关掉一个反编译窗口,“是‘合规幻觉’。一套能100%通过监管检测的SdK,内置所有形式要件:人脸识别、短信验证、协议弹窗……唯独不保证,人脸是本人,短信是本人接收,勾选是本人意愿。”
林晚脊背发凉。
第二天,专案组成立。林晚任组长,陈砚为技术总控。他们没惊动媒体,先冻结慧瞳科技所有服务器,然后逆向其SdK核心模块。过程艰难。代码经过七层混淆,关键函数名全为乱码,但陈砚发现一个规律:所有涉及用户确认动作的函数,返回值恒为true——无论前置条件是否满足。
“它从不判断对错。”他指着屏幕,“只负责说‘已确认’。”
林晚看着那行刺眼的return true;,忽然想起自己经手过的数百份整改报告。多少机构,正是拿着这样的SdK,自信满满地写下“人脸识别流程完备”“用户授权真实有效”。
他们顺藤摸瓜,牵出一条黑色产业链:慧瞳科技向放贷方出售“合规套装”,包含SdK、话术模板、催收录音库;下游机构用此套件批量注册空壳公司,接入支付通道,再通过流量平台精准推送“秒批”广告;用户一旦点击,即落入预设的债务陷阱。
而所有环节,都披着合法外衣。
结案通报会前夜,林晚在办公室修改发言稿。陈砚推门进来,放下一杯温热的蜂蜜柚子茶。
“写了什么?”他问。
“开头是‘本次行动彰显了监管部门零容忍态度’……”她苦笑,“太硬了。”
他接过稿纸,拿起笔,在“零容忍”后面添了三个字:“有温度”。
林晚愣住。
他没看她,只盯着那行字:“监管的力度,不该由罚单数量衡量。而应由,最后一个被误导的用户,能否在按下‘同意’前,多获得三秒钟的清醒。”
通报会当天,没有镁光灯,只有直播信号接入全省金融机构培训系统。林晚讲完案件始末,播放了一段剪辑视频:周屿父亲清扫街道的背影,扫帚划过地面的沙沙声;某大学生删除“青藤钱包”时,手指悬停在卸载键上的0.7秒;还有陈砚实验室里,那台始终运行着的“用户决策压力模拟器”,屏幕上,绿色进度条缓慢爬升,标注着:“当前认知负荷:63%——建议暂停交互”。
最后一页ppt,是《指引》新增的第八章:《人文技术准则》。
其中第一条写道:“所有面向消费者的金融交互设计,须通过‘脆弱性压力测试’——即,当用户处于疲劳、焦虑、信息过载、数字素养不足等任一状态时,核心权利告知仍能被准确理解与自主行使。”
会后,有记者追问:“如何确保企业真正执行?”
林晚看向身旁的陈砚。
他走上前,打开随身携带的平板,调出一个新界面:蓝色主色调,顶部居中是“金融权利守护地图”字样。下方是动态更新的全国App合规热力图,但与以往不同,每个风险点旁,都标注着具体改进节点——“xx平台:已更新利率展示组件,支持语音朗读”“YY钱包:注销流程缩短至3步,平均耗时112秒”。
“我们建了这个。”陈砚声音沉稳,“它不只显示哪里错了。更显示,哪里正在变好。”
林晚补充:“所有改进,需经第三方技术审计,并向用户端同步推送‘您的权利已升级’通知。用户可一键查看变更详情,也可选择退出此次升级——如果他认为,新方案反而降低了透明度。”
台下静了几秒,随即响起长久的掌声。
那天之后,他们的工作节奏变了。
不再只是追着违规跑,而是提前介入产品设计阶段。金融局联合工信部门推出“合规前置孵化计划”,邀请App开发商带着原型机来,由林晚讲解法律边界,陈砚演示技术红线。有创业团队带来一款“职场信用贷”,主打“根据简历大数据预授信”。陈砚当场指出:“简历数据未经用户明示授权,不得用于信贷决策。且‘职场信用’概念本身,涉嫌制造新型歧视。”
林晚接着说:“你可以做‘技能认证贷’,但必须让用户清楚,哪些证书被采信、权重多少、异议申诉路径在哪。”
团队负责人擦着汗记笔记,临走时犹豫着问:“老师,如果我们真按这个做,成本会高很多……”
陈砚合上电脑:“高成本的,从来不是合规。而是违规后的信任重建。”
林晚点头:“就像造桥。钢筋水泥的钱,远少于塌桥后,人们绕行十年的路费。”
秋深时,新规实施满百日。
监管局发布首份《数字信贷生态健康度白皮书》。数据显示:用户投诉量同比下降68%,其中“利率误导”类投诉下降91%;App平均协议阅读时长从4.2秒提升至27.5秒;注销成功率由33%升至94%。
最微妙的变化,在细节里。
林晚收到一封来自某高校辅导员的邮件:“上月,我们班有位同学主动来找我,说想了解‘金融防骗’选修课。我问他为什么,他说,昨天卸载‘速融宝’时,App弹出一页‘金融知识小测验’,答对三题,送他一个月免息券。他答错了第二题,系统没给券,但给了详解:‘年化利率≠月利率x12,因为存在复利效应’。他觉得,这比辅导员讲得明白。”
陈砚则收到一条陌生号码短信:“陈工,按您上次说的,把活体认证和合同签署拆成两步了。今天第一个用户,眨完眼,自己点开了协议全文。看了三分钟,才签。谢谢。”
冬至那天,林晚母亲打来电话,声音轻快:“晚晚,那个‘养老贷’公司,寄来一封信,说要退我一半服务费。还附了张二维码,扫开是‘金融权利明白卡’,连怎么查征信都画了图。”
林晚握着手机,望向窗外。陈砚正从楼下走过,仰头朝她办公室方向抬了抬手——他手里拎着两个保温桶,一个是她爱吃的山药排骨汤,另一个,是给值班同事的。
她忽然想起初遇那日,他俯身于数据洪流中的侧影。那时她以为,他在拆解谎言;后来才懂,他一直在校准刻度——不是丈量违规有多深,而是确认,那根名为“权利”的线,是否始终清晰、稳定、触手可及。
年终总结会上,局长提到一个新词:“数字监管的毛细血管”。
林晚低头整理材料,余光瞥见陈砚在笔记本上写字。她凑近了些,看清那行小字:
“最好的惩戒,不是让违规者停下脚步。
而是让守规者,终于敢放心奔跑。”
窗外,城市灯火如星河倾泻。每一盏光下,都有人正点击一个按钮,阅读一段文字,做出一个选择——而此刻,有无数看不见的规则,正悄然伏在指尖与屏幕之间,既不干预,也不纵容,只是静静撑开一片,足以让人直起身来的空间。
那空间的名字,叫尊严。