凌晨四点十七分,陈野送完最后一单夜宵,电动车拐进城中村狭窄的巷道。车轮轧过积水,溅起细碎的水花。他停好车,拎着保温箱上楼,每一步都沉重。
连续三十七天了。
从“回声咖啡馆”那晚算起,整整三十七天。陈野的生活被切割成两半:白天,他是外卖员陈野,在沪城的大街小巷奔波,日均十二小时,完成四十到五十单配送;夜晚,他是“星光计划”唯一的全职工程师,在十平米的出租屋里敲代码,日均睡眠不足四小时。
张子睿、林薇和老赵确实在帮忙。但他们都有一份体面的全职工作,只能在周末和深夜挤出时间。核心框架的搭建、基础代码的编写、关键算法的实现,这些最耗时、最枯燥的苦活,几乎全压在陈野肩上。
而母亲的手术费,还差八千块。
陈野推开房门,屋里没开灯。他靠在门板上,深深吸了一口气,又缓缓吐出。空气里有霉味,有泡面残留的气味,还有电脑散热器发出的、微弱的热风味道。
他没有立刻开灯,而是在黑暗中站了很久。手指在颤抖——不是冷的,是过度疲劳后的生理性痉挛。右肩旧伤复发,每抬一次手臂都像有针在扎。胃在隐隐作痛,今天只吃了两顿饭,午饭是一个冷掉的包子,晚饭是赶路时匆忙啃下的能量棒。
但他最终还是走到桌前,按下电脑开机键。
屏幕亮起,幽蓝的光照亮了他疲惫却异常清醒的脸。代码编辑器里,是昨晚离开时写到一半的函数——“BeehiveConsensus.verify_update()”(蜂群共识·验证更新)。这是整个系统的核心模块之一,已经卡了三天。
逻辑看似简单:每个节点对“验证池”里的更新进行投票,赞成或反对。但难点在于:如何防止合谋攻击?如果多个恶意节点互相勾结,彼此为对方的虚假更新投票,系统就会被污染。
陈野试了三种方案:
1.随机抽样投票:每个节点只对随机分配到的更新投票。但攻击者可以创建大量虚假节点,提高被抽中的概率。
2.信誉加权投票:信誉高的节点投票权重高。但新节点如何积累信誉?如果初始信誉低,永远无法提升,系统会陷入僵化。
3.抵押惩罚机制:节点投票错误会被罚没抵押金。但如何判定“错误”?如果真实更新因为数据分布差异被误判为“错误”,会打击诚实节点的积极性。
每一种方案都有缺陷。陈野盯着屏幕,眼睛干涩发疼。他揉了揉太阳穴,端起桌上那杯已经冷透的浓茶,灌了一大口。苦涩的味道在口腔里蔓延,让他稍微清醒了些。
就在这时,手机震动了一下。是张子睿发来的消息:
“睡了吗?我刚想到个思路。你那个投票问题,或许可以借鉴‘预测市场’的概念。不直接投票‘对错’,而是让节点用抵押金‘下注’,预测某个更新被采纳后,整体模型性能的提升幅度。预测准确的节点获得奖励,预测错误的损失抵押金。这样,恶意节点要造假,就必须承担真实的资金风险。你觉得呢?”
陈野盯着这行字,大脑飞速运转。
预测市场……下注……资金风险……
忽然,一道电光划过脑海。他猛地坐直身体,手指在键盘上开始疯狂敲击。灵感像决堤的洪水,汹涌而来,那些卡了三天的障碍,在某个瞬间被冲开了一个口子。
不投票,不下注。而是“模拟后果”。
如果一个节点声称某个更新“重要”,那它必须模拟这个更新被全局采纳后,对其他节点可能产生的影响。具体来说:节点A提交更新U,同时必须附带一个“影响预测模型”——这个模型能预测,如果U被采纳,节点B、C、D……的本地模型性能会如何变化。
然后,当其他节点实际应用U后,会将真实性能变化与A的预测进行比对。如果预测准确,A获得奖励;如果预测偏差大,A被惩罚。
这样一来,恶意节点要伪造更新,就必须同时伪造一个能够准确预测其对整个分布式系统影响的模型——这几乎不可能做到,因为每个节点的本地数据分布不同,训练任务也不同。而诚实节点,只需要基于自己对更新的理解,给出合理预测即可。
“这不是提水,这是打井。”陈野喃喃自语,手指敲击的速度越来越快。
提水式的思路是:设计一个完美的协议,一劳永逸地解决所有安全问题。但安全是动态的博弈,攻击者总会找到漏洞。
打井式的思路是:不追求完美协议,而是设计一个演进系统。让节点在“模拟-验证”的循环中不断学习、进化。恶意行为会因为预测失败而被自动淘汰,诚实行为会因预测准确而获得奖励。系统本身,会像生命体一样,逐渐形成免疫力。
代码一行行在屏幕上流淌。陈野忘记了时间,忘记了疲惫,忘记了肩膀的疼痛和胃里的空虚。他的世界里只剩下那个逐渐成形的逻辑,那个从“防御”转向“进化”的范式转换。
窗外天色渐亮。城中村开始苏醒,早起的摊贩推着车出门,豆浆油条的香味飘进窗户。陈野终于敲下最后一个分号,按下保存键。
他靠在椅背上,长长地吐出一口气。眼睛布满血丝,但眼神清亮。
然后,他点开了另一个文件——那是“星光计划”的商业模型草稿。在过去三十七天里,这个文档被修改了二十六次。起初,陈野想得很宏大:打造一个平台,连接亿万普通用户和万千中小企业,创造全新的价值网络。
但张子睿的一句话点醒了他:“先打一口井,出水了再说。”
所以陈野把目光收回来,聚焦到一个最小、最具体的场景:外卖骑手的路径优化。
这是他最熟悉的领域。三年,十二万公里,三万六千单。他知道哪个小区的门卫最慢,知道哪条小巷在雨天会积水,知道哪个商场的电梯在午高峰要等十分钟,知道哪个写字楼的保安会故意刁难骑手。
如果“星光计划”能先帮到像他一样的外卖员呢?
哪怕只是节省每分钟,哪怕只是少绕一段路,哪怕只是让等餐的时间不那么难熬。
他新建了一个文档,标题写上:
“星光计划·第一阶段:深井战略”
一、不再提水:放弃幻想,聚焦一米宽
前两次创业(如果摆地摊、开小吃店算创业的话),本质是“提水”。有订单就赚钱,没订单就饿着。依赖平台,依赖地段,依赖天气,甚至依赖顾客的心情。忙时累死,闲时焦虑。三年下来,除了疲惫和一点点积蓄,什么都没留下。
这次,不打水。要打井。
井口不用大,一米宽就够。但要深,要一直往下挖,直到出水。
“一米宽”是什么?就是外卖骑手的日常效率问题。这不是宏大叙事,是具体到“今天能不能多送五单、少淋十分钟雨、早半小时回家”的真实痛点。
不追求改变世界,先改变一个外卖员的半小时。
二、打井的工具:产品与人品
产品是铲子。
现在的“星光计划”还不是产品,只是个粗糙的想法。要把它变成一把好铲子,需要:
1.极致简单:外卖员平均学历不高,没时间学习复杂操作。界面必须一目了然,打开就能用。语音输入,一键导航,自动同步订单信息。
2.真实有用:不准。不准就没用。初始数据从哪里来?就从我这三年的配送记录来。三万六千单,十二万公里,这是最宝贵的“矿藏”。先用这些数据训练出基础模型,再让早期用户的使用数据不断优化它。
3.尊重隐私:绝不偷偷收集位置、不读取通讯录、不上传任何个人敏感信息。所有数据匿名化、本地化处理。用户不信任,一切都是零。
人品是打井人的脊梁。
张子睿、林薇、老赵为什么愿意帮我?不是因为我多厉害,是因为他们觉得我“靠谱”。一个送外卖的,能写出那样的架构设计,能坚持三年自学,能在凌晨四点还回复技术问题。
这种“靠谱”,是比任何商业计划书都重要的资产。
对用户更是如此。如果外卖员发现,这个APP真能帮他省时间、多赚钱,而且不偷他信息、不骗他钱,他就会告诉别的骑手。骑手之间的口口相传,比任何广告都管用。
所以:
•绝不做虚假宣传。能省多少时间,就写多少。做不到的,不说。
•绝不过度承诺。先服务好一百个用户,再想一千个。
•绝不背叛信任。用户的数据是用户的,永远都是。
三、打井的过程:忍耐、重复、等待
打井是枯燥的。一铲子,一铲子,挖出来的都是泥土,看不见水。可能挖了十天,井深了十米,还是干的。可能挖了一个月,终于有点湿泥,但离出水还远。
这个过程里,最怕三件事:
1.怀疑:这底下真有水吗?是不是选错地方了?
2.比较:看别人提水,一天能赚好几桶。我在这儿傻挖,什么都没。
3.放弃:太累了,反正也挖不出水,算了。
陈野看着屏幕上的文字,想起了自己。
这三十七天,他无数次怀疑过。代码写不下去,算法想不通,母亲的手术费还差一大截,身体快到极限。很多个凌晨,他盯着屏幕,脑子里只有一个念头:算了,睡吧,明天还要送外卖。
但他没睡。他喝了更浓的茶,用冷水冲脸,继续敲代码。
因为这不是“提水”。这是“打井”。
提水是交易,是即时满足。打一桶,得一桶。打井是投资,是延迟满足。今天挖的每一铲子,都不会立刻变成水。但它们累加起来,决定了井最终能有多深,水能有多甜。
母亲的手术费还差八千。如果现在放弃,去找个兼职,或许半个月就能凑齐。但那样,“星光计划”就永远只是笔记本上的几行字。
他要赌。赌这口井,能出水。赌出水之后,不仅仅是八千,是八万,八十万,甚至更多。
更重要的是,赌这口井,能让他真正“留下点什么”。
四、井水要甜:创造真实价值,传递温度
水出来了,还要看甜不甜。如果只是浑浊的泥水,没人会喝。
“星光计划”的“甜”,在于它不只是个工具,而是一种共情。
陈野写下这样一段话:
“这个APP的第一个版本,应该有一个功能:当系统检测到骑手连续工作超过十小时,或是在恶劣天气(暴雨、高温、严寒)中配送时,自动推送一句话:‘兄弟,辛苦了。安全第一,累了就歇会儿。’”
“不需要物质奖励,就是一句话。但这句话,要让骑手感觉到,设计这个程序的人,懂他的辛苦。”
“技术是冷的,但用技术的人,心要是热的。”
他想起了自己。在四十度的烈日下,汗水流进眼睛,辣得生疼。在零下的寒夜里,手指冻得按不动手机屏幕。在暴雨中,浑身湿透,蹲在屋檐下等餐,看着手机里的超时提醒,心里一片冰凉。
如果那时候,有一个APP,不仅告诉他怎么走更快,还对他说一句“辛苦了”呢?
也许什么都改变不了。但也许,那一刻的温暖,能让他再多坚持一单。
这就是“井水要甜”。技术要解决问题,更要传递温度。要让每个使用它的人感觉到:我不是在和一个冰冷的机器交互,我是在和一个理解我处境的人,并肩作战。
五、深井才能活水:长期主义,生态构建
一口浅井,下雨就有水,不下雨就干。一口深井,连通地下河,旱涝都有水。
“星光计划”不能只做路径优化。那口井太浅。要深挖:
1.第一阶段:路径优化。帮骑手省时间。这是立身之本。
2.第二阶段:订单预测。告诉骑手,哪个区域、哪个时段、哪种天气,订单会多。让骑手从“抢单”变成“等单”,从被动变成主动。
3.第三阶段:健康关怀。接入心率、体温等传感器(未来手机或头盔可能内置),监测骑手身体状态,预警疲劳、中暑、失温风险。
4.第四阶段:知识互助。骑手可以在APP里分享经验:哪个小区不让进,哪个顾客好说话,哪个餐馆出餐快。形成骑手自己的“知识库”。
5.第五阶段:算力网络。当足够多的骑手使用APP,他们的手机闲置时,可以自愿贡献算力,帮助训练更好的模型。而作为回报,他们可以获得更多的APP高级功能、或是合作商家的优惠券。
这才是一口“深井”。从工具,到助手,到伙伴,再到生态。
每一层,都建立在上一层的基础上。每一层,都让井更深,水更活。
而这一切的起点,就是现在。就是这个凌晨,在十平米的出租屋里,一个外卖员在写完代码后,写下的这份“深井战略”。
窗外天光大亮。阳光穿过高楼缝隙,斜斜地照进屋子,落在陈野的键盘上。他活动了一下僵硬的脖子,保存文档,关掉电脑。
手机闹钟响了。上午九点,他该出门了。今天要跑满十二个小时,要赚够三百块。母亲的八千块手术费,还差二十七天。
但他心里,第一次如此平静。
不再焦虑什么时候能凑够钱,不再恐惧失败后的代价,不再羡慕那些“提水”的人看起来轻松的生活。
因为他知道,自己在打一口井。
一铲子,一铲子。向下挖,向深处挖。
泥土是冷的,石头是硬的,手臂是酸的,但心是热的。
他换上那身蓝色的工装,戴上头盔,推门而出。楼道里弥漫着油烟和嘈杂的人声,但陈野的脚步很稳。
下楼,推出电动车,插入钥匙。仪表盘亮起,电量满格。
他抬起头,看了一眼被高楼切割成碎片的天空。今天是个晴天,阳光很好。
然后,他拧动油门,汇入这座庞大城市清晨的车流。
电动车的车轮碾过潮湿的地面,留下浅浅的痕迹。而在某个看不见的地方,一口深井,正在被一铲一铲地挖掘。
井水何时涌出?不知道。
但打井的人相信,只要方向没错,只要不停下,深处自有甘泉。
陈野的故事,是亿万普通人中,一个选择“打井”的人的故事。
他的井,才刚刚开始挖掘。

