想象一下:某一天,你所在的城市突然断网了——不是路由器坏了,而是整个城市的互联网被切断。你没法搜索“如何获取清洁饮用水”,没法查阅“常见疾病症状和用药”,甚至没法看一下维基百科上关于当地历史的那篇文章。是不是瞬间觉得回到了“石器时代”?这种场景并不遥远。根据Access Now的统计,2024年全球54个国家发生了296次互联网关闭,创下自2016年以来的最高纪录。无论是自然灾害还是人为管控,断网就意味着信息孤岛。传统的断网抵抗技术(比如基于蓝牙的mesh网络)主要解决的是“我能和邻居发消息吗”的问题,但从来没有人解决过“我能查到网页吗”的问题。现在,来自加拿大滑铁卢大学的Ross Evans和Diogo Barradas想到了一招——既然断网了没法上网,那咱们能不能在断网之前就把网页“存”在手机上,断网后再用蓝牙互相传?这个系统就叫 Cache to the Future(CttF),一个分布式网页缓存系统。它不依赖任何中心服务器,全靠普通人的手机组成一个“离线互联网档案馆”。图1:CttF的工作流程。用户在断网前缓存、评分并交换页面评分,断网期间请求被缓存的页面。你是不是想问:这和P2P下载有什么区别?别急,往下看你就会发现,在断网这种特殊场景下做文件共享,挑战远比你想象的大得多。先看一组对比。下面的表格列出了现有断网抵抗应用和MANET文件共享系统,对比它们的路由方式、对抗攻击的能力和测试场景。表1:现有工作对比。CttF是唯一一个既不是流行病路由、又同时考虑DoS、Jamming和应用特定操作的网页访问系统。你会发现,之前所有的断网抵抗技术都集中在“消息传递”上,而且大部分采用流行病路由——就是两个手机一碰面,就把自己所有未发送的消息都复制给对方。这种方法在小范围内还能用,但城市级规模就彻底歇菜了:蓝牙信道会塞满重复消息,物理层直接拥堵。更惨的是,如果攻击者拼命发垃圾消息,好人的消息就被淹没了。CttF的设计目标就是避开这些坑。第一个设计目标:通信模式必须能在城市规模下有效运行,并且能够抵抗攻击者。CttF放弃了流行扩散,改用。它只请求你真正需要的页面,而不是一股脑复制所有。第二个设计目标:必须能够缓解非全局攻击者发起的攻击。CttF用工作量证明(Proof-of-Work, PoW)和数字签名来防止评分被恶意操纵,用本地评分计算而不是全局信用来避免单点故障。第三个设计目标:仿真必须使用开放的真实世界数据,准确模拟人类在城市规模下的移动。CttF选用了YJMob100K数据集,包含25,000人在日本某城市75天内的GPS轨迹,每30分钟采样一次,覆盖200×200的网格(网格边长500米)。这比之前的工作(比如用出租车轨迹或随机路点模型)靠谱多了。三个目标都瞄准了同一个痛点:在断网时,一个普通人如何快速、可靠地获取带有图文和样式的网页内容。CttF给出的答案是:让社区帮大家决定哪些网页最值得缓存。
基于社区评级,分发被缓存的网页
CttF的核心理念非常简单:靠群众的智慧来决定哪些网页值得存。整个过程分为四个阶段:页面获取、信息交换、后台缓存和页面检索。页面获取(Page Fetching):用户想缓存一个网页时,不是直接去抓取,而是通过一个位于断网区域外部的可信代理来获取。代理下载页面及所有静态资源(CSS、JS、图片),然后用数字签名给整个页面打上“防伪标签”。这样即使在断网后拿到别人传来的页面,也能验证它是不是被篡改过。如果连代理都连不上(比如所有外部通道都被切断了),CttF也支持无代理回退:直接缓存未签名的页面,但断网后无法通过签名验证,只能靠多数投票或感知哈希等方式判断。信息交换(Info Exchange):这是CttF最巧妙的部分。当两个用户靠近时,他们的手机通过蓝牙低功耗(BLE)广播发现彼此,然后交换一个“评分向量”。每个用户维护着一个本地平均评分 a_i 和总评分次数 c_i。当收到一个新评分 r_i 时,用跑步平均公式更新:
ai := (ai·ci + ri) / (ci + 1) , ci := ci + 1为了防止攻击者伪造身份刷评分,每次交换评分前,发起方要先完成一个工作量证明(PoW):根据对方给的随机数 s,计算出一个 s' 使得 SHA256(s, MACA, rB, s') 的前α位为0。这个计算需要几秒(在手机上大约1秒就能完成,α设为适中值),大大提高了伪造代价。同时,每个用户每个会话最多只能传出1000条评分,进一步限制了攻击者。后台缓存(Background Caching):光靠手动缓存肯定不够,CttF会根据社区评分自动在后台缓存高分的页面。但这里有个问题:如果只缓存评分最高的top-k,那么冷门但有用(比如某篇小众但救命的医疗文章)的内容就永远没人存。作者假设页面评分遵循Zipf-like分布(类似于网页访问热度的分布),并通过反向变换把评分映射成概率,再按概率随机采样,既保证了热门内容的高缓存率,又给冷门内容留下了生存空间。表2:CttF仿真参数配置页面检索(Page Retrieval):断网后用户只能查看手机已有的缓存。如果需要某个页面,就在设备上标记为“待请求”。当两个用户相遇时,他们会交换各自未完成的请求。如果对方恰好有你要的页面,就直接传给你,附带签名(如果有)。页面验证支持多种回退:收集多个版本做多数投票、计算感知哈希比较、或者只接受来自信任联系人的副本。请求会一直保留直到被满足。整个过程不需要任何中心服务器,所有评分计算都在手机本地完成。攻击者想舞弊?先做PoW,然后你的评分最多只能影响本地几个设备——因为评分没法流行病式传播,只在面对面交换时更新本地均值。这简直就是为“断网+对抗”量身定制的设计。但光设计得漂亮还不够,真的在几万人的城市里跑起来会怎么样?验证环节来了。
[1] Evans, R., Barradas, D.: Cache to the Future: A Distributed Webpage Archive for Internet Blackouts. University of Waterloo, 2026.[2] YJMob100K dataset: A large-scale urban mobility dataset. https://doi.org/10.xxxxx (2025)[3] Access Now: The state of internet shutdowns in 2024. https://www.accessnow.org (2025)