返回 2026-06-19
💡 观点 / 杂谈

开源与看不见的手Open Source vs the Invisible Hand

nesbitt.io·2026-06-18

现代开源生态正面临着极其严峻的维护者困境。核心数据指出,许多关键的开源项目每周下载量高达一千万次,却往往只有一个维护者在无偿维护。这种“一千万下载、单兵作战、零收益”的鲜明对比,揭示了自由市场机制在公共代码维护上的失灵。文章深刻反映了开源社区在商业化与可持续发展之间的结构性矛盾。

Andrew Nesbitt

如果你把一份关于开源库如何产生的描述交给一名经济学本科生,但不告诉他这是什么,然后让他预测结果,他会告诉你这根本行不通。没有价格、没有合同、没有责任的非排他性商品,生产者中位数是一,消费者几乎完全搭便车:在任何教科书模型中,这种机制都无法产生任何稳定的结果。

然后,你运行 npm install,几百个这种“不可能存在”的商品在几秒钟内就出现了,而商业软件行业几乎完全建立在它们之上。开源几乎同时打破了所有的市场公理。

搭便车问题。公共物品具有非竞争性(我的使用不会减少你的使用)和非排他性(你无法将我排除在外),标准理论认为,由于每个理性的参与者都在等待他人买单,这类物品必然面临生产不足。典型的例子是灯塔,每个人都受益,但没人主动去建,所以必须由政府来建造。开源库完全符合这一定义,在许可证的规定下,它是完全非竞争和非排他的,因此理论预测其数量会很少,勉强生产出来,并且依靠资金扶持。但仅 npm 一个平台就托管了超过 500 万个开源库,几乎没有哪个是靠资金扶持的,而且每天还有数千个新库涌现。

一分钱一分货。价格本应传递质量和稀缺性的信号,为市场提供区分优劣的机制。据其自称是世界上部署最广泛的数据库引擎的 SQLite,其价格与一个刚注册一周、在 postinstall 钩子中植入加密货币挖矿程序的拼写抢注包完全相同。现存最有价值的库和最危险的库在价格上是完全一样的,因此消费者只能通过声誉、下载量和 GitHub stars 来绕过这一缺失的信号。

公地悲剧。共享资源会被消耗殆尽,因为每个用户的理性选择都是只索取不付出,因此对软件公地的预测将是:一个被过度使用、缺乏维护的代码池,随着消耗超过贡献而日益衰败。公共代码库的某些角落确实如此,但自代码库诞生以来,其总量每年都在增长。

理性的自利。经济主体追求自身效用最大化,而效用的定义可以足够宽泛,涵盖享受、地位、意识形态以及金钱。即使按照这种宽泛的定义,也很难想象会有这么多人的偏好是:在干了一整天毫不相干的工作后,晚上十一点还要去回复陌生人发来的 bug 报告,而起因仅仅是一家财富 500 强公司提交了一个标题为“紧急!!”的 issue,更何况维护这个项目根本拿不到一分钱报酬。然而,正是有足够多的人其偏好恰好如此,才维持了现代软件技术栈中大部分组件的运转。

供求关系。需求上升本应推高价格并吸引新的供应商加入,直到市场出清。但是,当一个库的下载量从每周一千次激增到一千万次时,它的价格依然为零,维护者数量通常也依然是一,因为需求没有任何渠道可以作用于供给。用户越来越多,issue 跟踪器被填满,安全研究人员开始针对它提交 CVE,但这始终是一个人的工作。

劳动分工。关键基础设施本应由全职雇佣的专家构建,并由对失败承担责任的公司来组织。在 ecosyste.ms 追踪的公共注册表生态系统中,超过一半的包只有一个维护者,而且这个人通常在其他领域有全职工作,与任何下游用户都没有雇佣关系,也不对任何人承担合同责任。依赖关系图中很大一部分的巴士因子仅仅是一个业余爱好者。

公司会捍卫竞争优势。一家公司本不该付钱给工程师去开发东西,然后将其拱手让给争夺其客户的竞争对手,然而 Google、Meta、Microsoft 和 Amazon 都在资助开源库,而其他三家都在生产环境中运行这些库。标准的解释是“商品化互补品”:将靠近你盈利点的层级免费开放,这样就没有人能在此向你收取租金。这足以解释 React 和 gRPC,也是这里唯一一个具有清晰市场解释的条目。但这种解释并不适用于底层更大的群体,即那些只有单一维护者且没有相邻商业模式的开源库,而这正是 npm install 所拉取的大部分内容。

经济学家们已经注意到了这一切,并且有一小部分文献试图对此进行解释。Lerner 和 Tirole 将其归结为职业信号传递,即通过公开贡献来建立声誉,以便在其他地方变现。这在有人关注时是成立的,但对于那些没有任何招聘经理会去查阅的冷门依赖项的维护者来说,情况并非如此。Benkler 认为,互联网使得协调成本变得极低,足以在没有公司的情况下组织生产。这解释了工作是如何分配的,却没有解释为什么有人愿意承担其中不那么光鲜亮丽的那一半。Von Hippel 将其定义为用户创新,即人们构建自己需要的东西,然后以近乎免费的价格分享出来。这种说法看似合理,直到你发现维护者在自己早已停止使用该软件多年后,仍在回答错误报告。这三种理论在某些时候适用于某些维护者,但没有哪一种能单独解释该系统目前呈现的形态,也无法解释它为何能维持这么长时间。

将上述所有情况称为市场失灵的清单,暗示着其底层存在一个一旦纠正这些失灵就能正常运转的市场,但这样的市场并不存在:开源已经在一个教科书上认为无法维持的基础上运行了三十年。它看起来更像是几种相互叠加的安排,一部分是礼品经济,一部分是共享基础设施,一部分是公共档案,还有一部分是声誉系统,没有任何单一机制在支撑它。

不断被提出的实用修复方案仍然将其视为一个市场,并强行拼凑缺失的部分,这就是漏洞赏金、赞助市场、基于依赖项权重的资助公式、关键性评分以及代币化奖励方案的由来。它们中的每一个都试图为从未有过定价的事物重新构建一个价格,而要做到这一点,它们需要一个数字来代表价值。

可用于这项工作的数字都是些效力很弱的代理指标,与人们真正想了解的信息相差了两三个层次:是谁在维持它的运行,他们离停工有多近,以及针对它提交的安全报告到底能不能送达任何人。

需要完整排版与评论请前往来源站点阅读。