一个糟糕的控制平面构件,一个脆弱的数据平面,以及到处都是5xx错误 这篇文章阐述了我们如何看待像Cloudflare这次的宕机事件一个糟糕的控制平面构件,一个脆弱的数据平面,以及到处都是5xx错误 这篇文章阐述了我们如何看待像Cloudflare这次的宕机事件

当一个功能文件让互联网陷入混乱

2025/11/24 23:41

糟糕的控制平面构件、脆弱的数据平面和到处都是5xx错误

这篇文章阐述了我们如何看待本周Cloudflare宕机等事件,为什么带有时间锁的纯智能合约控制平面能改变故障模式,以及零知识证明如何适用于此情境。

周二宕机摘要

2025年11月18日11:20 UTC,Cloudflare边缘节点开始对大量流量返回5xx错误。根本原因并非攻击者,而是ClickHouse权限变更导致查询返回重复行。该查询生成了每隔几分钟发送到每个边缘节点的机器人管理"特征文件"

这些重复项使文件大小翻倍并将特征计数推至超过200。机器人模块有硬性上限和在溢出时会崩溃的unwrap()函数。随着节点每五分钟在"旧-好"和"新-坏"输出之间交替,整个集群出现震荡,直到所有分片都更新并保持在坏状态。

Cloudflare在14:24停止了发布器,在14:30发送了最后已知的良好文件,并在17:06报告完全恢复。他们列出的后续措施包括:加强内部配置的摄取,添加全局终止开关,以及审查各模块的故障模式。

查看Cloudflare自己的事后分析以获取完整时间线和代码片段。

这个故事中有两个独立的问题:

  1. 控制平面故障:生成器产生了不符合规范的构件(重复项、过多特征、过大)。
  2. 数据平面脆弱性:消费者崩溃而非优雅降级。

你仍然可以在代码审查中修复(2)。但(1)是区块链大放异彩的地方:作为部署前的防篡改、可编程门控

公共区块链上的"携带证明的配置"

如果将这个想法压缩为一句话:除非智能合约允许,否则配置不会变为"当前",而合约只有在时间锁和证明构件遵守不变量后才会翻转该标志。这一句话暗示了一个完整的架构。

事实证明,公共区块链,特别是基于以太坊构建的、运行以太坊虚拟机和共识层的EVM链,为该问题提供了良好的解决方案。

链上配置注册表作为提升门控

  • 快速、可信的EVM(通常是L2)上的智能合约记录每个候选构件,以及对任何证明的承诺。
  • 写入受时间锁多重签名控制;暂停/终止开关回滚指针是一等公民。
  • 只有哈希值甚至完整脚本可以上链。如果链下,blob存储在对象存储中但提供较弱的保证。如果由于大小而无法完全上链,且数据是临时的,使用EIP-4844 blob是个好主意。尽管是单独存储,你可以将真正的链上哈希与保留18天的blob配对,这对滚动回滚窗口非常有利。

延迟适配。以太坊按周期最终确认,但L2在几秒钟内确认(OP Stack目标约2秒;zkSync约1秒;许多系统提供快速认证)。这对于五分钟控制平面节奏已足够好,例如OP区块时间讨论或Circle的认证时间)。

强制证明:让门控变得智能

为每个构件附加简洁证明并在链上验证。这正是我们为Chainwall协议所做的,尽管用于不同类型的数据!

核心目标是证明基本属性:行数 <= 200,按键排序+唯一,模式匹配正则表达式和类型规则,文件大小 <= N。你可以将整个逻辑放在链上,或依赖Plonk/Groth电路处理更大的表达式。例如,zk-VM客户可以解析CSV/Parquet/JSON并生成SNARK。你不必揭示内容,只需提交承诺。ZK中的正则表达式已有研究和生产系统(例如Reef和相关zk-regex工作),使模式检查变得现实。

有两条实用路径:

  • zkVM路线:在zkVM内运行检查器并在链上验证收据;参见RISC Zero验证器合约和Succinct的SP1链上证明包装。
  • 电路路线:用于上述不变量的小型固定电路;对于CSV/JSON + 正则表达式,你可以结合解析组件和zk-regex技术。

不引入新信任的分发

边缘节点轮询注册表,只采用链上获准的构件。为避免信任第三方RPC,在控制平面运行轻客户端(例如Helios)或规划Portal Network。这样,边缘节点在接受任何"新当前"状态前本地验证头部和包含证明。

终止开关和回滚只是合约中的位,由边缘节点遵守。Cloudflare明确指出需要更强大的全局终止开关;将该开关放在小型、经过审计的合约中,可在压力下提供单一真相来源。

这真的会改变CloudFlare故障吗?

  • 重复膨胀的文件会突破由证明而非尽力而为执行的计数/大小限制。提升失败。
  • 即使有人手动上传blob到存储,没有链上"当前"标志和证明验证,边缘节点会拒绝采用。
  • 你仍需修复代理中的崩溃,但你已将风险的最尖锐边缘移至证明系统和时间锁非常有效的领域。

为何我们坚持数字资产使用纯链上控制平面

CloudFlare事件不是攻击,但他们最初认为是,而且确实很可能!正如我们在加密安全中所见:攻击者不仅追逐密钥;他们还胁迫控制平面

  • 前端或签名者UI篡改Bybit盗窃案显示了操纵签名者所见如何推动灾难性批准。分析指向钓鱼和交易批准流程的UI操纵,而非智能合约漏洞。阅读NCC Group的技术说明和Ledger Insights的报道。
  • 第三方API权限SwissBorg/Kiln不是solidity漏洞;而是链下API路径让攻击者重组质押权限并耗尽约193k SOL,如Kiln联合声明所述。
  • 从开发者笔记本到云凭证再到一切:Lazarus/TraderTraitor不断证明受损的开发者机器和被欺骗的构建流程能获取云立足点和扭曲团队所见并签名的能力。例如参见CISA的建议或Elastic对AWS凭证如何从开发盒泄露的模拟。

结论

我们的立场:数字资产的控制必须存在于由时间锁多重签名保护的智能合约中,而非私人凭证、CI令牌、云ACL或管理仪表板。如果你的部署或"更改所有者"操作必须通过合约的schedule()和execute()路径,即使开发者笔记本上有rootkit也无法插队。时间延迟是可靠的断路器,链上审计跟踪是客观的。这只留下"如果我们推广的东西格式错误怎么办?"的问题,这正是"携带证明的配置"所回答的。

我们也相信最小化信任的应用程序有相当大的市场。我们现在只是在OKcontract Labs为第一个明确定义的用例构建正确的基础。


《当一个特征文件绊倒了互联网》最初发表在Medium的Coinmonks上,人们通过突出显示和回应这个故事继续讨论。

免责声明: 本网站转载的文章均来源于公开平台,仅供参考。这些文章不代表 MEXC 的观点或意见。所有版权归原作者所有。如果您认为任何转载文章侵犯了第三方权利,请联系 [email protected] 以便将其删除。MEXC 不对转载文章的及时性、准确性或完整性作出任何陈述或保证,并且不对基于此类内容所采取的任何行动或决定承担责任。转载材料仅供参考,不构成任何商业、金融、法律和/或税务决策的建议、认可或依据。