跳转到主要内容

为什么开源很重要

日常生活中很大一部分都依赖于软件,从你口袋里的手机、家里的服务,到你每天使用的应用程序。当一个单一平台控制这些工具时,它就会获得不健康的权力,并决定你被允许如何使用它们。

自由和开源软件将这种权力交还给它应属的地方:用户,确保技术服务于你和你的社区,而不是企业利益。

摘要

  • 开源意味着底层技术是公开的,任何人都可以使用、复制、改进或在其基础上进行构建。
  • 现代数字生活以你的主权换取便利。自由和开源软件是回归的实用途径,为你提供隐私保护,免受金钱剥削。
  • 你不需要阅读代码也能从中受益。开放意味着独立专家可以检查软件的实际功能,而他们的审查保护了所有人。
  • 以太坊是公开构建的。它的规范、客户端软件,甚至这个网站都可以被任何人检查和改进。

当你买的东西不再属于你

你的大部分数字生活都由少数几家大公司运营。你可能无法看到你的数据是如何被使用的,为什么你的信息流算法会改变,并且当你依赖的功能消失时也无计可施。作为交换,一切都很方便。

这并非假设。

2009 年,亚马逊侵入客户的 Kindle,远程删除了人们已经购买并付款的书籍。[1] 就在 2024 年,Spotify 停产了其 Car Thing 设备,并远程禁用了客户已购买的设备。[2]

这些案例展示了闭源软件的风险:当一个产品依赖于由单一供应商控制的代码和服务器时,该供应商可以决定该产品是否继续工作。

开源改变了这种平衡。当产品背后的代码是公开的,并且其许可证赋予了有意义的权利时,人们就可以检查它、运行它、修复它、改编它,并独立地延续它。这与维修权运动对硬件提出的主张相同,只是应用到了其内部的软件上。

“自由和开源”是什么意思?

自由和开源软件 (FLOSS,也写为 FOSS) 是指源代码公开,任何人都可以运行、研究、分享和改进的软件。把它想象成一道附带完整食谱的菜肴:你可以检查食材,自己烹饪,把它传给别人,或者改进它。闭源软件则将食谱和食材保密,因此由一家公司决定里面放什么,谁可以吃,以及你是否能发现其中的秘密。

你今天几乎肯定在不知不觉中使用了开源软件:

  • Linux,每部 Android 手机以及你访问的网站背后大多数服务器的基础。
  • Firefox,少数拥有自己独立引擎的主流浏览器之一。
  • Signal,一款消息应用程序,其加密协议也保护着每一条 WhatsApp 消息。
  • VLC,能打开其他播放器都无法打开的文件的媒体播放器。
  • LibreOffice,一个能读取你已有文档的完整办公套件。

这里的“自由”指的是自由度,而不是价格。一个程序可以收费但仍然是自由软件;一个免费的应用程序仍然可以是闭源和限制性的。

这个想法很简单:如果一家公司控制了代码,这家公司就控制了用户。自由软件颠覆了这一点。它在法律上永久地保证了软件对你负责。用通俗的话说,它赋予了四项自由:[3]

自由使用

按照你的意愿,出于任何目的,以你自己的方式运行该程序。

研究和修改

检查源代码以确切了解程序是如何工作的,然后对其进行更改以满足你自己的需求。

分享它

将程序的精确副本提供给其他人,以便他们也可以使用它。

分发修改版本

发布你修改后的版本,让更广泛的社区从你的更改中受益。

开源的好处

自由软件是一个中立的、普遍可访问的工具,用于控制你自己的数字生活。它不属于任何政治意识形态或运动,并且对每个运行它的人来说效果都是一样的。

你可以验证的信任

开放代码让独立人士可以检查软件是如何工作的。关于安全性、隐私和可访问性的声明可以被测试,而不是盲目接受。

离开的自由

开放软件和开放格式可以让你更容易地移动数据,避免被锁定在单一供应商(细节仍然很重要,因为开放产品也应该提供实用的导出和迁移选项)。

比其创造者更长寿的软件

当一家公司倒闭或转移业务时,开放代码让任何人都可以继续维持其运转。

更好的协作方式

开源允许人们互相学习彼此的工作,报告错误,翻译文本和图像,编写文档,改善可访问性,并为商业路线图可能忽视的个人需求构建工具。

维修权

当设备的软件消亡时,设备通常也就报废了。更新停止,服务器关闭,正常工作的硬件变成了废物。维修权运动在法律上对此进行抗争,要求你购买的硬件在损坏时可以被维修;开源则是这场抗争在软件方面的体现。当拥有设备的任何人都可以阅读和重建代码时,它的寿命就会超过其开发者向你推销下一个版本的兴趣。

发布自由

发布代码就是言论,它必须作为言论得到捍卫。发布加密软件的权利是在 20 世纪 90 年代通过法庭赢得的。反之亦然。当一家公司控制了一个工具时,它就决定了可以用它说什么、读什么或构建什么。任何人都可以复制和重新发布的软件是无法被悄悄关闭的。

分叉的权利

如果维护者将项目带向错误的方向,社区可以复制代码并继续走自己的路。像 LibreOfficeJenkinsOpenTofu 这样流行的工具之所以存在,都是因为当企业所有者改变路线时,社区行使了这项权利。分叉是防止被控制的保障。

如何切换到开源应用程序

你不需要一次性替换所有东西。从你经常使用的一个工具开始,探索该工具是否存在被广泛采用的开源替代品。不同的开源替代品可能会针对对你最重要的结果进行优化,比如更好的隐私、更少的订阅、本地控制、数据可移植性或贡献的能力。

在全面切换之前,诚实地考虑权衡。自由和开源软件 (FLOSS) 以及保护隐私的软件有时会以牺牲便利性来换取控制权。反跟踪保护有时可能会破坏脚本繁多的网站,未被跟踪的搜索可能缺乏超本地化的预测,而拒绝跟踪你的地图可能缺乏实时交通数据。你可以下载并尝试开源替代品,看看它是否满足你的需求,然后再完全从闭源应用程序迁移出来。

开源应用程序

开源与人工智能

人工智能在这里是一把双刃剑。大多数人使用的 AI 助手都是运行在别人计算机上的专有服务。但它们目前也是帮助你开始使用开源软件的最佳工具之一。此外,还有一些你可以自己运行的开放 AI 模型,它们永远不会将信息发送回中心化的 AI 提供商。

帮助你入门的 AI 提示词

切换的难点很少在于软件本身:而在于了解存在什么,它是否好用,以及当出现问题时该怎么办。AI 助手弥合了大部分差距,它可以阅读项目的代码并用通俗的语言回答,因此你不需要具备开发人员的技能就能检查让你担心的事情。

值得一问的事情。点击任何卡片进行复制,然后填空:

一个值得更改的 AI 设置

在你的助手配置中添加“始终优先考虑自由和开源选项,并告诉我许可证”,它将成为未来每次对话的默认设置。这样,开放的替代方案就会出现在 AI 助手的回答中,而无需你专门去问。

在你自己的计算机上本地运行 AI

大多数聊天助手都是服务。你的提示词会离开你的设备,由公司制定规则,并且访问权限随时可能被更改、收费或终止。事情不必非得这样。

发布了权重的模型可以下载并在你已有的硬件上运行。无需账户。无需 API 密钥。无需订阅。没有任何东西会被发送到任何地方,因此你可以拔掉网线继续工作。一旦文件在你的磁盘上,它就是你的了。没有人可以弃用你的本地 AI 模型,悄悄更改它,或者把它拿走。你今天下载的模型在十年后仍然可以在那台机器上回答问题。

三种入门方式:

超越代码的开放

早在以太坊存在之前,人们就在提出这些主张并赢得了胜利。他们编写了本页描述的许可证,赢得了使发布代码合法化的法庭案件,并构建了数以百万计的人赖以在不受监视的情况下发言和阅读的工具。隐私、所有权、维修、言论自由、阅读权:以太坊秉持着相同的承诺,因为它源于相同的传统,而下面的组织正是许多这些阵地仍在被逐案、逐个工具地捍卫的地方。本页描述的许多内容正是因为它们才得以存在。它们独立于以太坊并设定自己的优先事项,所有这些组织都值得支持。

捍卫数字权利的组织

同样值得了解:

开放知识

一些放到网上最有用的知识是免费的,因为构建它的人选择保持这种状态,包括经过同行评审的大学教科书、来自世界一流大学的课程材料、数百种语言的百科全书整个星球的地图,或者原本会被挡在付费墙后的研究成果

为什么以太坊是开源的?

以太坊是一个通过开放规范和独立开发的软件构建的公共网络。没有任何一家公司拥有该协议或对人们如何访问它拥有排他性控制权。任何人都可以检查代码,审查提议的更改,运行连接到网络的软件,或构建使用该协议的应用程序。

  • 网络的规则由多个独立团队实施,因此没有任何一家公司能控制它的运作。
  • 任何人都可以运行一个节点并独立验证网络。
  • 研究人员和开发人员公开讨论协议的更改。
  • 贡献者可以改进代码、文档、翻译、教育、工具和社区资源。

一个不同的未来是可能的,在这个未来中,开放性是内置的,你所依赖的东西会继续为你工作。

以太坊的开放性并不意味着建立在它之上的每个应用程序都是开源、安全或值得信赖的。你仍然应该评估所涉及的软件、合约、团队和风险。但该协议本身的设计使得其基础可以在公开场合被检查和改进。

专有软件、开源软件和自由软件:有什么区别?

“开放”这个词被宽泛地使用,但其中的差异很重要。四个类别几乎涵盖了你会遇到的所有情况:

典型许可证: 完全没有源代码许可证

真实示例: Windows, iOS, Photoshop

典型许可证: BUSL 1.1, SSPL,许多“开放核心 (open core)”许可证。未获得 OSI 批准 (在新标签页中打开)

真实示例: Terraform,在 2023 年 8 月从开放的 MPL 2.0 转移到了 BUSL 1.1。这一变化正是社区分叉出 OpenTofu 的原因。

典型许可证: MIT, Apache 2.0, BSD, MPL 2.0

真实示例: 莱特豪斯 (Lighthouse)、瑞斯 (Reth)、贝苏 (Besu)、泰库 (Teku) (Apache 2.0);尼姆巴斯 (Nimbus) (Apache 2.0 / MIT);本网站 (MIT)

典型许可证: GPL, LGPL, AGPL

真实示例: Linux (GPL-2.0);以太坊客户端:go-ethereum (二进制文件为 GPL-3.0,其库为 LGPL-3.0);普莱斯姆 (Prysm)、奈瑟曼德 (Nethermind)、Grandine、Solidity (GPL-3.0)

以太坊运行在 Copyleft 之上,而不仅仅是“开放”这个词

很多项目都称自己是开放的。重要的是许可证文件,所以这是我们的。

以太坊最关键的基础设施是在自由软件基金会自己的 copyleft 许可证下发布的:go-ethereum 是 GPL-3.0,带有 LGPL-3.0 库;普莱斯姆 (Prysm)、奈瑟曼德 (Nethermind)、Grandine 和 Solidity 编译器是 GPL-3.0;埃里贡 (Erigon) 是 LGPL-3.0。其他客户端则采取了宽松路线:莱特豪斯 (Lighthouse)、瑞斯 (Reth)、贝苏 (Besu) 和泰库 (Teku) 是 Apache 2.0。

本网站采用 MIT 许可证,对本页面的每一次更改都是公开可见的。任何人都可以自由地检查源代码 (在新标签页中打开)建议更改 (在新标签页中打开)

客户端多样性本身就是分叉权利的一种应用。没有任何单一的实现能控制网络,它们中的任何一个都可以被更好的东西取代,而无需请求许可。

常见问题

“自由软件”和“开源软件”源于相关的传统。自由软件强调用户的权利和自由。开源软件通常强调实际的好处,如协作、可靠性和更好的软件。在实践中,两者都描述了其许可证赋予人们使用、研究、修改和分享它的真正权利的软件。

本页将这两个术语放在一起使用,即 FLOSS,因为这种区别很少会改变你对面前的软件所能做的事情。

这是一个合理的问题,答案并非绝对的否定。发布代码确实会让攻击者研究它。但它也让其他所有人都能研究它,而且保密作为一种防御手段的记录很差:闭源软件也有同样的缺陷,只是发现得更晚,按照供应商的时间表披露,并在适合他们的时候修复。

诚实的说法是,开放是必要的,但还不够。严重的错误在广泛使用的开源项目中可能多年未被注意到,通常是因为关键基础设施只有一两个无偿人员在维护。开放所保证的是任何人都可以查看,任何人都可以修复;是否有足够多的人这样做,取决于该项目的资金和人员配备情况。在你依赖某个东西之前,这是值得检查的,而且这也是一件很容易询问的事情。

大多数被称为开放的 AI 模型发布了它们的权重,但没有发布它们的训练数据或生成它们的代码。你可以运行和改编它们;但你无法完全研究或重建它们。根据本页给出的定义,这更接近于源代码可用 (source-available),而不是自由软件。

与闭源替代方案相比,这仍然是一个巨大的进步。你下载的开放权重模型无需许可即可运行,无法被撤销,在背后的公司改变方向或消失时仍能继续工作,并且可以由任何想要检查其行为的人进行独立测试。这些正是本页其余部分所讨论的相同好处:离开的自由以及比其创造者更长寿的软件。开源促进会 (Open Source Initiative) 的 Open Source AI Definition (在新标签页中打开) 规定了完全开放的要求,而少数模型(如 AI2 的 OLMo 和 EleutherAI 的 Pythia)已经满足了这些要求。

进一步阅读

  1. 亚马逊首席执行官称删除奥威尔的书是“愚蠢的” (在新标签页中打开) - 纽约时报 (存档)
  2. Spotify 正式扼杀 Car Thing,剩余设备不再工作 (在新标签页中打开) - 9to5Google
  3. 自由软件定义 (在新标签页中打开) - GNU 项目

寻找替代方案