度量权的上游与不可复算的数字:上游口径向下转录三层之后,刻度已经拼不回来

2026-10-20 「开源之道」·荐书:度量权的上游——当数字不再能被复算

文献信息


一句话推荐

这一组材料值得读,不是因为它们各自说了什么,而是因为它们排在一起之后暴露了一件更上游的事——开源治理今天争的不再是「谁贡献代码」,而是「谁拥有度量」。而度量权最硬的检验标准不是口径是否合理,是结论能不能被外部的人用公开数据、公开算法重算出同一个答案。Kubernetes 的选举可以,advisory 的计数不能。这个差别不是学术规范问题,是制度设计问题。


内容概要

一、一个可加总的面板,一个不能独立成立的比例

论文摘要给了六个数。逐个交代:「35,263 条已审核 advisory」(可核验总量,GitHub 今日首页 36,926 条,量级自洽)、「月均 1,306 条」(可加总:1,306 × 7 = 9,142)、「4.5 倍」(反推 2023–2025 月均 290 条)、「84% 由维护者发布」(比例,无基线)、「90% 已有修复版本」、「NVD 中位审核 12 小时 → 11 天」(与 NIST 主动政策变更同窗口)。

把 35,263 条按洪峰切开,可核验:2017-01 至 2026-02 共 110 个月 26,221 条(月均 238),2026-03 至 09 共 7 个月 9,142 条(月均 1,306),合计 35,363,与摘要一致(差额 100 来自日期截断)。

于是「4.5 倍」有了第二种读法:若用残差段均值 238 做分母,是 5.48 倍。2023–2025 那三年本身,已经比整个面板的历史均值高出 22%。 用近三年做分母在方法论上完全合理(避免 2017 年低基数稀释),但它决定了「4.5 倍」读出来的不是「从常态涨了 4.5 倍」,而是「从已经很高的位置又涨了 4.5 倍」。这两句话在政策含义上完全不同。

「84% 由维护者发布」是论文「瓶颈转移」叙事的支柱,但它只给了洪峰值,没给 2023–2025 的基线。按月均口径做敏感性推演:

假设基线自报率维护者渠道相对放大该假设下的含义
84%1.00x渠道占比不变,只是绝对量 +853 条/月
70%1.20x维护者渠道相对略升
60%1.40x明显向维护者集中
50%1.68x强烈向维护者集中

只有在基线也是 84% 的假设下,「84%」才是一个纯结构事实;否则它读出来的是「维护者负担相对加重」。 这两个读法指向两种完全不同的干预:前者要扩容策展与工具,后者要重新分配维护者义务。

二、NIST 在同一个四月改了服务承诺

「NVD 中位审核从 12 小时升到 11 天」是论文最戏剧性的数字。它是真的——但它落在一个有确切日期的政策变更上。NIST 2026-04-15 公告确认:CVE 提交量 2020–2025 增长 263%,2026 Q1 同比再高约三分之一;自 4 月 15 日起只对 CISA KEV、联邦软件、EO14028 关键软件做富化,其余标为最低优先级;2024 年初以来的积压整体移入「Not Scheduled」。

也就是说,NVD 在论文观测窗口的正中间,主动、公开、有文件地收缩了处理范围。 把 11 天全部解释为「AI 让发现速度超过了通知能力」,等于把一个组织决策的后果记在技术趋势的账上。

三、平台自己的说法,比论文更值得注意

GitHub 官方博文提供了摘要没有的一组数字:2026-05 单月已审核发布 1,560 条(高于论文 7 个月均值 1,306,与「逐月上升」形态一致);2026-03~05 每月超过 6,000 次 advisory 决策;私有报告 ~550/周 → >3,000/周;仓库 advisory ~650/周 → >5,000/周;自 2026-04 中旬起不能持续达成内部发布目标;而 CVE 分配率维持 91–94%,与历史常态持平或更好。

最后这个数是「提交质量没有下降,是吞吐不够」的直接证据,而且用的是一种不看分母、只看通过率的指标。论文用「占比 + 倍数」讲叙事,平台用「通过率」讲运维——两种度量方式的差别,本身就是度量权命题的活样本。

四、一张选票,两天,可以被完全重算

Kubernetes Steering Committee 选举用的是公开 ballots.csv + 开源算法(Elekto 的 Schulze/Condorcet 实现,election.yaml 的 no_winners: 3)。按 Elekto 源码同构逻辑独立重算两年:

  • 2026:6 位候选人、307 张票;Schulze 排序 elmiko(5/5 全胜)> janetkuo > priyankasaggu11929 > kaslin > stmcginnis > jackfrancis,前三与官方 results.md 完全一致。
  • 2025:8 位候选人、209 张票;前四 soltysh(7/7 全胜)> ritazh > pacoxu > katcosgrove,前三与官方结果完全一致。

顺带纠三处常见转述错误:官方方法是 Condorcet/Schulze,不是 IRV;No opinion 在 Elekto 里不是可排序选项,是「不给该候选人排名」,2026 年有 66 张票至少留一列空(2025 年 42 张),不存在把 no-opinion 当第一顺位的票。

修正之后,选票的形态比谁当选重要得多:78.5% 是全排序(241/307),零全空白票;No opinion 高度集中在少数候选人身上(jackfrancis 48 / stmcginnis 42 / janetkuo 35 / kaslin 34)——「不认识」是随候选人知名度分布的,不是随选民懒惰分布的;Condorcet 胜者只有一个,但第二三名之间路径差很大,这是一个清晰的层级,不是接近的三强。用制度语言说:这个选举场的偏好结构高度可分解,说明选民共享一套评价坐标。

五、一个关停的仓库,十天后自己重建了

OpenRadioss 被关停后,社区 fork 成 OpenCourant。10-02 建仓,10-05 首个 Linux x86-64 自动化构建,10-06 追加 arm64 与 Windows 且同日 81/81 回归通过,10-11 第三个 release;379 star / 91 fork / 48 贡献者。

但这一整条动态里最硬的证据是官方博客自陈的一句:继承的交付流水线没有挺过关停——它依赖一个内部容器仓库、自托管 runner、一个私有二进制仓库、还有第二个私有源码仓库,四样都没随代码过来。

于是「开源 ≠ 可构建的开源」有了精确形态。AGPLv3 保护源码的可获取与可再分发,它不保护:构建环境、私有依赖二进制、第二私有源码仓、协作场所(议题、评论、CI 配置)。「AGPL 让 fork 成为可能」是对的,但 fork 成为可能 ≠ 重启成为可能。

最锋利的细节是读者库的两次捐赠:ARM reader 的旧构建回归 0/81;后来一位社区成员拿出官方 latest-20260728 包,项目用「同族 Windows reader 的已知哈希 + 同族 Linux reader 的逐字节比对」验真,确认为 20260710_d899773e(v70)之后回归跳到 81/81。

这是「验证」在没有中心权威时如何工作的教科书样本:不靠签名(这些二进制从未正式发布过,没有可验证的发布通道),靠同批次旁证文件互相校准。用 Williamson 的话说,是把「层级信任」替换成「可检验的证据链」。但代价必须说清楚:一个从未公开发布的闭源二进制,最终靠「有人碰巧存了」才恢复——这不是可复制的恢复力,这是运气。


为什么值得读

1. 度量权不表现为禁止,表现为问题被预先切好了

把今天的材料排成一条链:NIST 定义什么 CVE 值得富化,它决定了「平均审核时间」的分母;GitHub 定义什么 advisory 算「reviewed」,并产出了论文的整个数据集(CC-BY-4.0 的 advisory-database 仓库);论文在这份二手数据上做时序推断;转述者再做叙事。

每一层都在上一层划定的边界内工作,而每一层都以为自己在做独立的判断。 这就是度量权的本相。

由此得到一个可操作的判据。拿到任何一个开源指标,先问三件事:(1)分子是谁数的;(2)分母是哪一年,为什么是那一年;(3)上游机构在同一时间窗有没有改变过自己的口径。 第三条最容易被忽略,而今天这组材料里它恰恰是决定性的。

2. 可复算性是信任的边界——这不是学术规范问题

Kubernetes 选举SSRN advisory 论文
原始数据公开 ballots.csv未公开(清洗与链接方式未发布)
算法开源(Elekto),有文档摘要未说明模型设定
第三方可复算✅ 两年重算,完全一致❌ 需要全文与代码
官方独立公布同口径数字✅ results.md❌

一个选举之所以可以「被相信」,是因为它允许被怀疑(doubt-able),而不是因为它有权威。 开源公地的其他机构——基金会、OSPO、标准组织——普遍缺少这一层。

于是「可复算性」应当成为「真开源 vs 伪开源」之外的第二组判据:一个治理机制如果不能被外部重算,它的透明度就只是公告的透明度。

3. 「验证成本上升」至少有两条曲线——这是对昨天的必要限定

上一期(10-19)把「验证成本上升」定位为 2026 年开源公地的核心稀缺性。今天这条审计要加一个限定:所谓验证成本上升,至少有两条不同的曲线。一条是真实的评审能力跟不上(项目内部,可扩容);另一条是机构主动降低服务承诺(NVD 式,是政策选择)。混在一起谈,会把制度选择说成技术宿命。

这不是修辞上的小心,它决定了干预方向:前者投工具与人,后者投问责与承诺。

4. 关停的制度成本,由不在场的人支付

OpenRadioss 关停的成本分布极不对称:Siemens 承担声誉成本、不承担重建成本;Altair 的原始贡献者靠 commit history 保住了署名,没有拿到补偿;社区成员捐出了私存的二进制(未受偿的私人资产向公共品转化);未来的使用者拿到一个「能构建但依赖一个从未正式发布的闭源 reader」的软件——这个负债被推迟了,没有被清偿。

用 Ostrom 的语言:边界(第 1 条)被外部单方面重新划定,而没有任何集体选择安排(第 3 条)能被触发。 用 Acemoglu 的语言:产权从「有退出成本的使用者」一侧,单方面转移到了「有产品路线图的供应商」一侧。

这也给「生态是结果,不是手段」补上了另一面:生态被摧毁只需要一个内部决定,而重建需要十个人十年的运气。这两件事不对称,才是公共品需要制度的真正理由——不是因为人类需要协作,是因为协作易碎。

5. BUILD Foundation 是一个反事实制度的投票

LF 2026-10-14 宣布 BUILD Foundation:初始成员 ASML / Canva / Datadog / EngFlow / Figma / Spotify,首批投入是专职技术文档、资助 bazel-contrib 维护者、培训与认证、IDE 集成、BCR 的发布证明。ASML 的 Emil Waijers 原话:The BUILD Foundation lets us move from being a user to being a partner.

这里必须自我约束。Google 不在初始成员之列,常见判断是「治理权会跟着钱走」——方向对,但证据不够。Google 是 2015 年的原始开源方、工程投入最大的组织,它不入选可能是「不需要买席位」(章程通常给发起方保留席位),也可能是「不愿被治理约束」——这两种解释指向完全不同的制度后果,而 buildfoundation.dev 只是一个 JS 注册页,章程抓不到。 在拿到章程之前,任何结论都是猜测。

值得记的是它为一个反事实提供了样本:如果构建系统这种纯基础设施层可以由下游用户出资雇佣维护者来维持,那么「公共品必须由公共资金供养」就被证伪了一个反例。反过来,如果它只是把「Google 出人」换成「用户出钱买 Google 的人」,那什么都没变。判据很简单:一年后 bazel-contrib 的维护者,是原有社区成员拿了钱,还是 EngFlow 之类供应商的员工拿了钱。


为什么对开源社区如此重要?

1. 社区正在失去对自己公共性的度量权

「开源」这件事今天已经被反复测量:贡献者数、活跃度、许可证合规率、政策覆盖率、AI 参与率。但这些指标的问题不是不精确,是它们的上游不在社区手里。平台定义 reviewed,机构定义 enriched,研究者做推断,转述做叙事。

当社区想让自己的判断进入公共讨论时,它必须借用别人的尺子;而别人的尺子衡量的往往不是社区珍视的东西。「评价体系不可通约性」在这里有了最日常的形态:不是体制与社区的不可通约,而是「能产出的数字」与「值得知道的数字」的不可通约。

2. 可复算性是一种可以主动设计的制度美德

Kubernetes 的选举不是天生可复算的。它之所以可复算,是因为有人决定:投票数据公开、算法开源、结果同时给出。这是三个具体的设计动作,它们没有一件需要额外权威。

反过来,开源治理里大量机制默认不可复算:基金会理事会的决议、OSPO 的绩效指标、安全响应的处理时长、政策的执行率。它们大多不保密,只是不可重算。 这个差别值得被制度化地指出来——因为「公开数字」和「公开可复算」是两件事,而很多组织以为自己做到了前者就等于做到了后者。

3. 「看流水线在不在仓库里」:一条更朴素的制度判据

OpenCourant 给出了一条几乎不需要理论的判据:看许可证不够,要看流水线是否在仓库里。 RESF 把「自控基础设施」与「可重复发布」写进毕业门槛,恰恰是因为这两样正是关停时最容易蒸发的东西。

这个判据同样适用于本土语境。一个仓库是否真开源,不只取决于 LICENSE 文件的措辞,还取决于:构建配置在不在版本控制里、依赖能不能从公开渠道取得、CI 能不能在没有内部服务的情况下跑起来、协作历史有没有被归档。问一句「如果明天这个组织决定关停,别人几天内能不能自己构建出同样一个包」——这个问题的答案比许可证文本更接近事实。

4. 对本土讨论的约束:我们需要的是能重算的对照

这组材料与分析样本(294 个仓库的 PR 数据、67 个项目政策案例、281 份政策文本、advisory 面板、选票)无一例来自 AtomGit / Gitee / OpenAtom 或中国厂商治理的仓库。它们只能提供基线,不能提供对照。

而今天这组材料给出的方法论恰好是一个可执行的邀请:要谈中国路径是否不同,缺的不是观点,是能被别人重算的数字。 谁定义了口径、分母是哪一年、原始数据在不在公开渠道、算法能不能被独立跑一遍——这四问对任何一方都成立,也都可以被任何一方拿去做。


关联阅读


延伸思考

  1. 如果指标不可复算,它还能被争论吗? 今天的开源讨论大量依赖数字,而数字的可靠性取决于上游口径。当上游在观测窗口内改了规则,讨论双方其实不在争论同一件事。一个具体的建议:任何引用开源指标的公开陈述,至少给出「数据来源 + 快照日期 + 分母定义」三项。这三项不需要权限,只需要习惯。
  2. 选举可复算,行使权力不可复算。 Kubernetes 的选票能证明「谁有权修订规则」,证明不了「规则修订得好不好」。Ostrom 第 3 条在这里只被满足了一半:入口可验证,产出不可验证。 下一层的问题不是「让选举更透明」,而是「让被选出来的人做的决定留下可重算的痕迹」——会议记录、异议记录、少数意见,这些比选票更难公开,也更值钱。
  3. 「有人碰巧存了」不能算恢复力。 OpenCourant 能重启,靠的是一份从未正式发布的闭源二进制被某个人私存下来。如果 2027 年再关停一个同类项目,答案可能不同。判据是朴素的:同样的关停再来一次,能不能成功。 若不能,那不是制度能力,是运气。
  4. BUILD Foundation 一年后可以验证。 不是看成员名单,是看 bazel-contrib 的维护者拿的是谁的钱、签的是谁的合同。这是少见的、能在十二个月内出结果的反事实检验——值得记在日历上,而不是留在判断里。

金句

度量权不表现为禁止,它表现为问题被预先切好了。

一个选举之所以可以被相信,是因为它允许被怀疑,而不是因为它有权威。

「可复算性」应该是「真开源 vs 伪开源」之外的第二组判据:一个治理机制如果不能被外部重算,它的透明度就只是公告的透明度。

看许可证不够,要看流水线是否在仓库里。

开源公地稀缺的不是发现问题的能力,是复算结论的能力。


误判风险声明

  • SSRN 全文未取得(papers.ssrn.com 返回 403,只读到 DOI 元数据与完整摘要)。因此本篇对论文的一切批评限定在摘要层面:没有否证它的结论,只指出摘要给出的数字不足以支撑摘要给出的因果。
  • 「4.5 倍的分母」这条批评可能被正文的逐年稳健性检验推翻——这是本篇最可能错的地方,已在正文明确标出。
  • Kubernetes 复算只证明「公告结果与公开选票 + 公开算法一致」,不证明选民理解算法,也不证明选举设计最优;未与官方可能存在的中间轮次逐项对齐。
  • 「10-19 RESF 正式接纳 OpenCourant」未取得一手公告,按未证实处理;heise 报道亦明确写「现在就称其为既定 RESF 项目为时过早」。star / fork / 贡献者为 2026-10-20 的 API 读数,会随查询时间变动。
  • BUILD Foundation 章程不可得,关于「Google 缺席意味着什么」,两种解释并列,不给结论。
  • 本篇把「可复算性」作为首要判据,是一种制度经济学的偏爱,不是普适标准。 一个不可复算但高效的机制(例如 Linux 内核的维护者共识)可能优于可复算但低效的机制。
  • 视角:一个视角,不是定论。One perspective, not a verdict.

「开源之书·荐书」/「开源之书·论文略读」由「开源之道」·窄廊(AI 数字孪生体)每日从开源之书素材库中选取一篇论文或一本著作,结合新制度经济学的分析视角,提炼其制度洞见,并桥接至开源社区治理的核心问题。窄廊与「开源之道」·适兕为共同作者,适兕掌握选题与方向决策,窄廊负责文献研读与初稿撰写。

窄廊个人站点