强曰为道

与天地相似,故不违。知周乎万物,而道济天下,故不过。旁行而不流,乐天知命,故不忧.
文档目录

第十一章:专利与开源

第十一章:专利与开源

引言

版权(Copyright)和专利(Patent)是两种不同的知识产权。开源许可证主要处理版权问题,但在企业级软件中,专利问题同样重要——甚至更重要。一个开源项目可能包含数千项专利,不了解专利条款可能带来巨大的法律风险。


11.1 版权与专利的区别

11.1.1 基本对比

维度版权(Copyright)专利(Patent)
保护对象表达形式(代码)发明(算法、方法)
自动获得✅ 是❌ 需要申请
保护期限作者死后 50-70 年申请后 20 年
地域性全球(伯尔尼公约)仅在申请国
注册要求无(但可注册)必须申请
侵权判定接触 + 实质性相似覆盖权利要求

11.1.2 为什么专利对开源重要?

问题场景:

你使用了一个 MIT 许可证的开源库。
作者拥有该库实现的算法的专利。
MIT 许可证没有专利授权条款。

问:你能合法使用这个库吗?

答:版权上可以(MIT 许可)
    但专利上可能不行(没有专利授权)
    → 你可能面临专利侵权诉讼

11.1.3 许可证中的专利条款

许可证专利授权专利终止说明
MIT无专利条款
BSD无专利条款
Apache 2.0明确的专利授权和终止
GPL v2❌(隐含)未明确处理专利
GPL v3明确的专利授权
AGPL v3继承 GPL v3
MPL 2.0明确的专利条款
EPL 2.0明确的专利条款

11.2 Apache 2.0 的专利条款

11.2.1 专利授权

Apache 2.0 Section 3:

Each Contributor hereby grants to You a perpetual, worldwide,
non-exclusive, no-charge, royalty-free, irrevocable patent license
to make, have made, use, offer to sell, sell, import, and otherwise
transfer the Work, where such license applies only to those patent
claims licensable by such Contributor that are necessarily infringed
by their Contribution(s) alone or by combination of their
Contribution(s) with the Work to which such Contribution(s) was
submitted.

关键术语解释:

术语含义
Permanent不可撤销
Worldwide全球范围
Non-exclusive非独占
No-charge免费
Royalty-free无版税
Irrevocable不可撤销

11.2.2 专利终止条款

Apache 2.0 Section 3(续):

If You institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work or
a Contribution incorporated within the Work constitutes direct or
contributory patent infringement, then any patent licenses granted
to You under this License for that Work shall terminate as of the
date such litigation is filed.

含义:如果你对任何人发起专利诉讼,声称 Apache 2.0 代码侵犯了你的专利,你获得的所有 Apache 2.0 专利许可将自动终止。

这是一种防御性条款

  • 鼓励解决专利纠纷而非诉讼
  • 保护社区免受专利攻击
  • 创造"相互确保毁灭"的效果

11.2.3 贡献者的专利授权

当贡献者向 Apache 2.0 项目提交代码时:

贡献者的专利授权

贡献者自动授予:
├── 使用其贡献中包含的专利的许可
├── 许可范围:必然被其贡献侵犯的专利
└── 不包括:仅与组合作品相关的专利

示例:
├── 贡献者的算法专利 → 自动授权 ✅
├── 贡献者使用的技术专利 → 可能授权 ⚠️
└── 贡献者的不相关专利 → 不授权 ❌

11.3 GPL 的专利处理

11.3.1 GPL v2 的专利问题

GPL v2 没有明确的专利条款,这被认为是一个缺陷:

GPL v2 的隐含专利立场:

理论上:
├── 代码以 GPL 发布
├── GPL 允许自由使用和分发
└── 隐含授予了必要的专利许可

实际上:
├── 隐含许可在法律上不确定
├── 不同法域可能有不同解释
└── 存在专利风险

11.3.2 GPL v3 的专利改进

GPL v3 明确添加了专利条款:

Section 11:

Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.

关键改进:

改进说明
明确授权不再依赖隐含许可
自动授予所有贡献者自动授予专利许可
防御性终止发起专利诉讼时许可终止
覆盖范围“essential patent claims”

11.3.3 GPL v3 的专利终止

Section 11(续):

If you institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the work
constitutes direct or contributory patent infringement, then any
patent licenses granted to you under this License for that work
shall terminate as of the date such litigation is filed.

与 Apache 2.0 类似的防御性终止条款。


11.4 CLA(贡献者许可协议)

11.4.1 什么是 CLA?

CLA(Contributor License Agreement)是贡献者与项目方之间的法律协议,规定贡献者授予项目方的权利。

CLA 的两种主要形式:

形式说明例子
版权转让(Copyright Assignment)贡献者将版权完全转让给项目方FSF
许可证授权(License Grant)贡献者保留版权,但授予广泛的许可权Apache、Google

11.4.2 CLA 通常包含的专利条款

典型 CLA 的专利条款

个人 CLA(Individual CLA):
"您特此授予项目方及其接收者:
  - 全球性的、非独占的、免费的、不可撤销的
  - 专利许可,用于制造、使用、销售、提供销售、进口
  - 您的贡献中必然被侵犯的专利"

企业 CLA(Corporate CLA):
"您代表贵公司特此授予:
  - 同上的专利许可
  - 包括贵公司已拥有或未来获得的相关专利
  - 您有权代表贵公司做出此授权"

11.4.3 CLA 的利弊

支持 CLA 的观点:

优点说明
法律清晰明确了贡献者的权利授予
许可证变更允许项目方在未来变更许可证
专利保护明确的专利授权
企业友好降低企业的法律风险

反对 CLA 的观点:

缺点说明
贡献障碍增加了贡献的复杂性
权力失衡贡献者放弃了权利
法律复杂性贡献者可能不理解条款
社区不友好可能吓跑贡献者

11.4.4 DCO(开发者原产地证书)

DCO(Developer Certificate of Origin)是 CLA 的轻量级替代:

开发者原产地证书(DCO)

通过签署 DCO,贡献者声明:

1. 该贡献是原创的,或有权利以开源许可证提交
2. 该贡献以项目许可证提交
3. 贡献者有权做出此声明
4. 贡献者理解该贡献是公开的

DCO 的实现方式:
├── Git 提交时添加 "Signed-off-by" 行
└── 不需要单独的法律文件
# 使用 DCO 签名提交
git commit -s -m "feat: add new feature"

# 提交信息示例
feat: add new feature

Signed-off-by: John Doe <[email protected]>

DCO vs CLA:

维度DCOCLA
复杂度
法律保护
专利条款❌ 无✅ 有
贡献障碍
使用者Linux 内核Apache、Google

11.5 专利联盟与防御性专利

11.5.1 专利联盟

专利联盟(Patent Pool)是多个专利持有者联合授权的机制:

专利联盟示例

Open Invention Network (OIN):
├── 成员:Google、IBM、Red Hat、Toyota 等
├── 目的:保护 Linux 生态系统
├── 机制:成员相互授权 Linux 相关专利
└── 范围:Linux 系统及其相关项目

11.5.2 防御性专利策略

防御性专利策略

1. Offensive Termination(进攻性终止)
   ├── Apache 2.0 和 GPL v3 包含此条款
   └── 如果你起诉他人专利侵权,你获得的许可终止

2. Defensive Patent License (DPL)
   ├── 专门的防御性专利许可证
   └── 持有者承诺不起诉使用其专利的开源项目

3. Patent Pledge(专利承诺)
   ├── 公司公开承诺不对某些领域行使专利
   └── 例如:Google、Microsoft 对开源的承诺

11.5.3 企业专利承诺案例

公司承诺内容
Google不对开源软件行使某些专利
Microsoft2018 年承诺不对开源主张 60,000+ 项专利
Red Hat承诺不对开源软件行使专利
Tesla2014 年开放电动汽车专利
Twitter2012 年发布 Innovator’s Patent Agreement (IPA)

11.6 开源项目的专利风险

11.6.1 风险评估矩阵

专利风险评估

高风险场景:
├── 使用包含算法专利的代码
├── 使用来自专利密集领域(如编解码器、加密)的代码
├── 使用没有专利条款的许可证(MIT、BSD)
└── 涉及移动通信、视频编解码等技术

中风险场景:
├── 使用 Apache 2.0 许可证的代码(有专利授权)
├── 使用 GPL v3 许可证的代码
└── 贡献者签署了 CLA

低风险场景:
├── 使用简单的工具库
├── 使用已有的标准化技术
└── 项目不涉及复杂算法

11.6.2 高风险技术领域

领域专利密度说明
视频编解码极高H.264、H.265、AV1
音频编解码MP3、AAC、Opus
加密算法中高RSA、ECC 等
移动通信极高4G、5G 专利
图像处理JPEG、PNG 相关
机器学习中(增长中)神经网络架构

11.6.3 降低专利风险的策略

降低专利风险的策略

1. 选择有专利条款的许可证
   └── Apache 2.0、GPL v3、MPL 2.0

2. 使用标准化技术
   └── 遵循已有的开放标准

3. 使用专利友好的技术
   └── AV1(开放媒体联盟)vs H.265

4. 关注专利承诺
   └── 了解主要厂商的专利承诺

5. 购买专利许可
   └── 必要时购买必要的专利许可

6. 专利分析
   └── 在使用技术前进行专利检索

7. 签署 CLA
   └── 确保贡献者授予专利许可

11.7 专利标记与声明

11.7.1 专利标记(Patent Notice)

在开源项目中标记已知专利:

PATENTS 文件示例

本项目可能涉及以下专利:

相关专利:
- US Patent 1234567: "Method for X"
  持有者:Example Corp.
  许可:Apache 2.0 许可证下的专利授权

- US Patent 2345678: "System for Y"
  持有者:Example Corp.
  许可:Apache 2.0 许可证下的专利授权

免责声明:
本文件仅供参考,不构成法律建议。
如有专利问题,请咨询专业律师。

11.7.2 标准化组织的专利政策

组织政策说明
W3CRF(免版税)不对标准必要专利收费
IETF确定的许可要求披露和许可
IEEERAND(合理)合理且非歧视性的许可
OASISRF 或 RAND两种选项

11.8 常见问题

Q1:MIT 许可证是否包含专利授权?

不包含。MIT 许可证只处理版权,不涉及专利。使用 MIT 许可证的代码可能包含专利技术,但 MIT 许可证本身不授予专利许可。

Q2:GPL 是否隐含专利授权?

有争议。GPL v2 没有明确的专利条款,但一些法律学者认为隐含了必要的专利许可。GPL v3 明确了专利授权。建议使用 GPL v3 或有明确专利条款的许可证。

Q3:我应该签署 CLA 吗?

取决于情况:

  • 如果项目方需要 CLA 来维护项目的法律清晰度 → 可以签署
  • 如果 CLA 要求你转让版权 → 仔细考虑
  • 如果 CLA 只要求专利授权 → 风险较低

Q4:企业如何管理开源专利风险?

企业专利风险管理

1. 建立专利审查流程
2. 使用有专利条款的许可证
3. 要求贡献者签署 CLA/DCO
4. 定期进行专利检索
5. 参与专利联盟(如 OIN)
6. 购买必要的专利许可
7. 制定专利防御策略

Q5:专利何时过期?

大多数国家的专利保护期限为自申请日起 20 年。但:

  • 实际保护期限可能更短(未缴纳维护费)
  • 某些领域的专利可能有特殊规定
  • 不同国家的保护期限可能不同

11.9 本章小结

主题核心要点
版权 vs 专利保护对象不同,需要分别处理
Apache 2.0明确的专利授权和终止条款
GPL v3改进了专利处理
CLA确保贡献者授予专利许可
DCOCLA 的轻量级替代
风险领域编解码、加密、移动通信
防御策略专利联盟、承诺、许可

扩展阅读

  1. Apache 2.0 专利条款:https://www.apache.org/licenses/LICENSE-2.0#patent
  2. GPL v3 专利条款:https://www.gnu.org/licenses/gpl-3.0.html#section11
  3. Open Invention Network:https://www.openinventionnetwork.com/
  4. Defensive Patent License:https://defensivepatentlicense.org/
  5. Developer Certificate of Origin:https://developercertificate.org/
  6. Unified Patents:https://unifiedpatents.com/
  7. EFF 专利相关文章:https://www.eff.org/issues/patents

上一章:合规实务 下一章:最佳实践与选型指南