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