近日,知名技术社区Hacker News上一条提问引发广泛讨论:“没有复制源代码,是否依然是充分的版权辩护?”该问题直指软件版权保护的核心困境:当开发者声称自己“独立创作”了功能相似的代码,却未被发现直接复制源文件时,法律是否仍能判定侵权?在人工智能代码生成、开源协议日益复杂的今天,这一老问题正变得前所未有的尖锐。
传统辩护的“黄金法则”被动摇
长期以来,软件版权领域存在一条不成文的“安全线”:只要开发者没有逐字逐句复制源代码,仅从功能、结构或算法层面进行“重写”,通常可以免于侵权责任。这一理念源于美国1976年版权法对“思想与表达二分法”的强调——版权只保护思想的表达形式,而非思想本身。具体到代码,函数名、变量命名、注释等文字性元素被视为“表达”,而功能逻辑、算法流程等则被视为“思想”。
然而,近十年的判例法正在快速侵蚀这一防线。最著名的案例当属甲骨文(Oracle)诉谷歌(Google)案。2014年,美国联邦巡回上诉法院裁定,谷歌在Android系统中使用Java API的37个函数名称及结构组织,虽然“没有复制源码”,但构成了对API声明代码的“非文字性复制”。该案经十年拉锯,最终最高法院于2021年以“合理使用”为由判谷歌胜诉,但并未否认“非文字复制”可能构成侵权。
这一判决打开了潘多拉魔盒:版权保护的对象从“代码文本”扩展到了“代码的结构、序列与组织(SSO)”。这意味着,即便开发者一行代码都没有复制,仅仅参照了接口设计、模块划分、调用关系等“骨架”,也可能面临侵权指控。
“实质性相似”检测成为新战场
法律界普遍认为,无源码复制成立侵权的关键在于“实质性相似”测试。原告需证明被告的作品与自己的作品在整体上“表达趋同”,且被告有机会接触原告作品。传统的“抽象-过滤-比较”三步法将代码拆解为非保护的“思想”(如通用算法)和保护性“表达”(如独特的数据结构、注释细节),但争议在于“SSO”究竟属于思想还是表达。
2023年,美国第五巡回上诉法院在一起商业软件纠纷中认定,即便被告独立编写了后端代码,但其函数命名风格、错误处理逻辑与原告高度雷同,构成了侵权。法官在意见书中写道:“代码的‘非文字部分’——包括代码之间的依赖树、错误返回码体系——同样体现了作者的创造性选择。”
这一趋势给开源社区带来巨大冲击。许多开发者习惯参考开源项目的API设计,再自行实现底层逻辑,认为“没有copy/paste就不会惹上官司”。如今,这类“参考式重写”的安全性成疑。
AI生成代码让“无复制”辩护更加脆弱
最新一轮讨论的引爆点来自AI代码助手的普及。GitHub Copilot、Cursor等工具在训练过程中使用了海量开源代码,但其生成的结果往往与原始代码不完全相同——有些是机械式重构,有些则是基于概率的原创性拼接。当开发者直接使用AI输出的代码片段,一旦该片段与受版权保护代码“实质性相似”,责任该由谁承担?
2022年,程序员兼律师Matthew Butterick发起了针对GitHub Copilot的集体诉讼,核心指控之一便是:Copilot生成的代码虽未“复制”,但其训练数据包含GPL许可的代码,生成结果侵犯了原作者的派生作品权利。该案目前仍在审理中,但其提出的法理问题——当“表达”的相似性由模型而非人类创作者决定时,“无复制”辩护是否还成立?——正成为知识产权学界关注的焦点。
专家建议:从“避风港”转向“合规审查”
面对日益模糊的法律边界,知识产权律师普遍建议开发者放弃“只要不逐行复制就万事大吉”的侥幸心理。波士顿某科技律所合伙人指出:“现在的法院越来越倾向于通过‘整体感觉’来判断侵权,而不是像过去那样仅凭‘cvs diff’不匹配就驳回诉状。”他建议企业建立代码合规审查流程,记录设计决策的独立性(如设计文档、会议纪要),并避免用“逆向工程+重写”的方式规避版权。
Hacker News的讨论中也有开发者现身说法:某初创公司因使用了与竞品类似的数据查询接口而收到律师函,即便他们拿出了独立编写的代码提交记录。对方律师的论证正是“接口组织结构反映创造性选择”。
风暴远未平息
“无源码复制”是否仍是有效辩护?答案是:视情况而定。对于纯功能性代码(如标准算法实现),该辩护仍有一定空间;但对于设计独特、体现作者“个性选择”的软件架构或API,这一防线正逐步瓦解。随着AI生成代码的规模扩大,以及法院对“非文字复制”的认定标准不断细化,软件开发者需要意识到:版权法的触角已经伸向了代码的“灵魂”,而不仅仅是“血肉”。
或许,像Hacker News提问者一样,我们都需要重新审视那个曾经安全的假设——没有复制,不代表没有侵权。