EN

数字经济企业 IPO:开源合规审查下的义务、风险与合规路径

日期:2025-02-24

全文约5000字,预计阅读15分钟。

前言


源代码是企业构建软件产品与数字服务的基石。掌握源代码为深度掌控核心技术提供了关键基础,利于企业在竞争中脱颖而出;遵循开源协议开发,既能汲取开源社区智慧,又可避免知识产权纠纷,保障技术研发推进。在数字经济迅猛发展的当下,软件及相关技术于企业运营中占据核心地位,作为技术底层支撑的源代码,其保护与开源软件的合规使用备受关注。


日前,深交所发布了《创业板数字经济领域首发审核指南(试行)》(“《指南》”),对拟上市数字经济企业源代码相关问题提出审核要求。针对软件和信息技术服务业务的发行人,关注源代码掌握情况与开源协议合规性;涉及人工智能业务的发行人,则关注核心技术来源及源代码开发情况。[1]


深交所《指南》发布,为数字经济与资本市场发展提供重要指引。在此背景下,开源软件的合规使用与管理举足轻重。本文将剖析使用开源软件的义务,这是实现企业可持续发展的关键。同时,探讨企业违规情形及后果,探寻数字经济企业的开源合规路径,以及中介机构核查方法,为企业开源软件运用与监管提供助力。


一、使用开源软件需履行相应义务


开源软件,是指公开源代码,且在符合开源协议的前提下,允许所有人使用、修改以及再分发的计算机软件。使用开源软件不需要支付授权费用,但使用者必须履行开源协议所约定的各项义务。根据相关机构的统计,公开软件源代码,并授权他人修改、使用、再分发的协议种类超过2000种。其中,经过开放源代码促进会(OSI)认证,符合“开放源代码”定义的协议有117种。在这些开源协议中,大部分要求使用者履行以下义务:


(一)对开源软件版权人进行声明。开源软件通常会在源代码头部或者License/Copying文件中明确声明版权归属。使用者在使用该开源软件时,必须声明其版权人,以此尊重开源软件版权所有者的权益。


(二)声明所适用的开源协议,并提供协议副本。开源软件一般会在源代码头部或者License/Copying文件中声明该开源软件所适用的开源协议,并附带协议副本。这是为了让后续接收该软件的用户,能够清晰了解该开源软件的使用要求。因此,使用者在利用开源软件时,也需声明所适用的开源协议,并提供协议副本,确保软件使用的规范性与透明性。


(三)附加无担保条款及免责声明。在开源社区中,普遍认可和遵从这样的规则:贡献者将开源软件无偿贡献给社区,同时对所贡献的软件免责。基于此,大部分开源协议要求使用者在协议中明确声明无担保及免责条款,以维护开源生态的正常秩序。


除上述情形外,也有部分开源协议还会要求使用者履行下述义务:


(一)开源协议一致性义务。使用特定开源软件时,需适用同一种开源协议;如涉及到分发,还需要履行相应开源义务。以传染型开源协议GPL为例,无论是复制、使用、修改GPL开源软件所产生的衍生软件,还是通过链接、组合GPL开源软件的整体软件,均需适用GPL。在进行分发操作时,同样要履行开源义务,确保软件在传播过程中遵循统一规则。


(二)修改声明义务。部分开源协议,如GPL、Apache等规定,若使用者对开源软件进行了修改,需对该修改予以声明。值得注意的是,该义务一般只需声明开源软件已被修改,无需对修改之处逐一详述,旨在保障开源软件修改的透明度。


(三)不得使用权利人的名称、商标或品牌进行推广或背书。开源软件权利人通过开源协议授予使用者的权利仅限于开源软件版权,并未包括商标权或其它名誉相关权利。部分开源协议,如Apache2.0、BSD-3-Clause在条款中明确约定,利用开源软件开发的衍生软件,不得使用权利人名称、商标、品牌进行推广或背书,以此维护权利人品牌权益与声誉。


二、国内企业违反开源协议的主要情形


近年来,国内企业在开源软件使用方面,违反开源协议的事件屡有发生,其中主要的情形有:


一)使用开源软件未声明版权


在开源软件使用规则中,对权利人进行版权声明,是绝大多数开源协议明确要求使用者履行的义务。然而,部分企业或个人出于夸大自身技术实力等因素考量,不愿履行版权声明义务,甚至刻意隐瞒其项目中使用了开源软件的事实。以数字广东为例,2023年6月,其推出的CEC-IDE软件研发工具,被网友曝光存在使用开源软件的情况。随后,数字广东公开发表致歉声明,承认此前宣称自主研发的CEC-IDE 软件研发工具,实际上是基于微软公司开源的 VS Code开发。[2]这一事件凸显了其未履行版权声明义务的问题。


此外,也有部分企业因内部管理不善,在使用开源软件时忽视版权文件,进而导致违反开源协议。2020年7月,唯品会上传到知名开源项目Apache SkyWalking的Saturn 插件,就因违反开源协议要求,被SkyWalking项目组拒绝。唯品会的Saturn 插件使用了当当网以Apache2.0协议开源的ElasticJob,但Saturn未保留原项目文档中的版权说明,也未声明当当网的原始版权。尽管Saturn 的代码库中标注了致谢信息,对软件核心开发者/发起人张亮表达了感谢,但需明确的是,致谢信息不等于版权声明,因此唯品会的行为违反了Apache2.0开源协议。[3]


二)使用GPL开源软件,未按照协议提供源代码


GPL作为开源项目中被广泛采用的开源协议,具有典型的copyleft属性。这意味着使用GPL开源软件开发的衍生软件同样需要适用GPL,若对外分发,必须按照GPL协议要求提供源代码。然而,国内不少企业在使用GPL开源软件后,并未履行相应的开源义务。以深圳市中级人民法院审理的原告罗盒公司诉被告风灵公司侵害计算机软件侵权纠纷一案为例,原告罗盒公司开发的VirtualApp以GPLv3协议进行开源,被告风灵公司开发的“点心桌面”软件使用了VirtualApp的开源代码,但未遵循GPLv3协议履行开源义务。原告罗盒公司因此起诉至法院,最终法院判决被告风灵公司停止运营“点心桌面”软件,并向原告赔偿50万元。[4]这一案例清晰地展现了企业因未按照GPL协议规定提供源代码所面临的法律后果。


三、违反开源协议的法律后果 


开源协议,本质上是软件著作权人将其复制权、发行权、修改权等附条件地许可给不特定公众的著作权许可使用合同。此类协议具有明显的双务性,被许可人在行使复制、修改、分发开源软件的权利时,必须按照开源协议要求履行相应义务。否则,可能导致其权利被终止,若继续使用开源软件,该行为将构成侵权。


以MIT开源协议为例,该协议明确约定,使用者若要合法使用开源软件,开发的软件或软件主要部分需包含本开源软件版权声明和许可声明、免责声明(即MIT开源协议约定的使用义务)。在此条件下,开源软件权利人授予使用者不受限制地经营该开源软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售等。[5]由此可见,MIT开源协议将履行协议约定的义务作为合法使用其开源软件的授权前提,若使用者未按照协议履行义务,将不能取得该开源软件的合法授权,进而构成侵权行为。


在司法实践中,广州知识产权法院审理的原告罗盒公司诉被告玩友公司侵害计算机软件著作权纠纷一案极具代表性。原告罗盒公司以GPLv3协议开源的VirtualApp被被告玩友公司使用,但玩友公司在使用过程中,未向用户提供被诉四款“微信视频聊天”软件的源代码下载,此行为明显违反GPLv3协议规定。由于玩友公司未能履行协议义务,其对VirtualApp软件源代码的复制、发布行为失去了权利来源,从而被法院最终认定构成侵权。[6]


四、数经企业如何进行开源合规


一)重视开源法律风险教育,了解并遵守开源协议要求


当前,国内部分企业在合规使用开源软件方面,法律风险意识较为薄弱。部分软件开发人员甚至对使用开源软件需履行相应义务这一关键要点毫无认知。为此,企业必须加强公司管理人员和软件开发人员的开源法律风险教育,帮助相关人员充分了解开源软件的法律风险,以及违反开源协议的严重法律后果,从而切实提升他们合规使用开源软件的法律意识。


此外,由于绝大多数开源协议条款为英文,且其中包含大量软件术语和法律术语,给软件开发人员理解协议内容带来极大困难。有鉴于此,企业可对常用开源协议的权利、义务、要求及注意事项进行系统梳理,并形成开源协议摘要及使用指引。这一指引可供软件开发人员在使用开源软件过程中随时查阅,以便他们清晰了解并严格遵守开源协议的使用要求,确保准确履行各项义务。


(二)制定开源软件合规使用规范,建立开源软件合规管理制度


开源协议要求履行的义务,在协议条款的规定往往较为笼统和抽象,这使得软件开发人员很难准确把握履行开源协议义务的具体方式。例如,在履行对于开源软件版权人进行声明的义务时,软件开发人员可能会对该使用“(C)”还是“©”这类细节问题感到困惑。鉴于此,建议企业参考主流开源基金会管理的开源项目,以及已建立开源软件合规管理流程的大型企业开源的项目,编制开源软件合规使用规范指引,供软件开发人员在使用开源软件时参考。


开源协议种类繁杂,在实践操作中,通常会依据开源协议的风险等级、是否要求适用同一开源协议以及对公司业务影响程度等因素,将其划分为宽松型、弱传染型、传染型,并分别采取相应的管理措施。对于宽松型开源协议,虽然其限制较少,但仍需履行相应义务。不过,这些义务相对简单,一般不会对公司业务产生实质性影响。而对于像GPL这类传染型开源协议,因其传染性较强,在软件开发人员计划引入时,必须进行预先审查,评估是否能够采取隔离措施,以防范因使用GPL开源软件导致企业软件整体被迫开源的法律风险。


(三)使用SCA工具,借助SBOM进行开源合规


部分企业采用在共享文档中,由软件开发人员手动记录、更新的方式来管理开源软件。然而,这种管理方式仅适用于使用开源软件数量较少的项目。对于使用开源软件数量较多的项目,此方式不仅会耗费软件开发人员大量时间,还存在个别人员少填、漏填或不填所使用的开源软件信息的风险。目前,国内已有多家机构推出SCA(即Software Composition Analysis,软件成分分析)的代码扫描工具。该工具可通过技术手段,检测软件代码中的开源组件及其版本信息、开源协议类型,并生成详细的SBOM(即Software Bill of Materials,软件物料清单)。


近年来,软件供应链的合规性与安全性受到越来越多的关注。已有部分企业(尤其是欧洲客户)在采购软件或者包含软件的硬件产品时,会在合同中要求供应商履行开源软件合规义务并提供SBOM,以便其评估供应商软件的安全与合规风险。2024年12月,欧盟正式公布并生效的《网络弹性法案》(该法案设置三年的过渡期),对软件供应链安全治理提出更加严格的要求。鉴于此,对于使用较多开源软件的企业,建议使用SCA工具生成详细的SBOM,并借助SBOM实现开源合规管理。


五、中介机构如何核查发行人是否符合开源协议


深交所《指南》提出了审查是否符合开源协议的要求,这无疑给保荐人、发行人律师等中介机构的核查工作提出了全新的挑战。发行人使用开源软件的数量以及对开源协议义务的履行情况,只有企业内部人员知晓,无法通过政府部门登记备案信息或外部渠道进行核实。结合企业开源合规实践以及当下的技术条件,笔者建议中介机构可从以下几个方面,对发行人使用开源软件的情况及其是否符合开源协议展开核查。


(一)代码扫描工具核查


中介机构应着重核查发行人是否采取有效的代码扫描工具,以全面、准确地披露开源软件的使用详情。单纯依靠对公司管理人员或软件开发人员进行访谈,极有可能出现企业或者软件开发人员漏报、少报甚至不报的情况。若在企业上市后,企业或其软件开发人员未完整披露所使用开源软件及开源协议,一旦发行人的重要软件违反开源协议被判决停止使用,进而致使发行人股价迅速下跌,中介机构就可能因被认定未尽到谨慎义务而需承担责任。反之,若发行人采用经权威机构认证通过的SCA扫描工具,识别出所使用的开源软件,并在此基础上评估是否符合开源协议,便可大大降低中介机构在此情形下承担法律责任的风险。


(二)义务履行情况核查


在全面掌握发行人所使用开源软件及对应开源协议的基础上,中介机构可根据开源协议要求履行的义务设置相应问题,通过问卷调查或者访谈的方式,要求发行人的软件开发人员、产品部门人员确认是否履行相应的义务。例如,是否使用开源软件的商标或品牌,是否按照开源协议要求进行开源等。尤其要重点关注国内企业容易出现的违反开源协议的情形,如是否对开源软件权利人进行版权声明、使用GPL开源软件时是否需要开源等。需要注意的是,这些义务无法通过SCA工具检测判断发行人是否履行,只能通过相应的访谈或问卷调查进行核实。


三)合规管理机制核查


中介机构还需核查发行人是否构建了有效的开源软件合规管理机制。开源协议中的部分义务,像版权声明,需要由软件开发人员在具体代码文件中落实。然而,中介机构从业人员往往不具备相应的软件知识,既无法查看,也无权查看发行人是否在代码文件中履行了相应义务。此时,可通过审查发行人是否对软件开发人员开展法律风险培训、是否制定合规使用指导规范,并结合前述问卷调查结果,综合判断发行人是否履行开源协议的义务,是否符合开源协议。


在中介机构对发行人是否符合开源协议的核查过程中,受第三方工具技术能力限制,或者由于发行人相关人员的认知水平、疏忽大意,甚至是因为存在道德风险,有可能出现发行人未全面提供所使用开源软件信息,但中介机构发表符合开源协议的法律意见的情况。不过,倘若中介机构进行了包括上述多种手段在内的适当核查工作,切实履行了勤勉尽责的核查义务,那么在很大程度上,也应能够避免承担或减轻承担相应的责任。



注释

[1]《深交所审核中心创业板内部首发审核指南》 https://mp.weixin.qq.com/s/UdlEkIGmJ7vMGQOVQxUAxA


[2]《致歉声明》https://www.digitalgd.com.cn/news/12846/


[3]《又是不懂开源协议惹的祸,唯品会项目被拒》

https://www.163.com/dy/article/FI8KRAK00511CUMI.html


[4] 深圳市中级人民法院(2019)粤03民初3928号民事判决书


[5] MIT开源协议全文:https://opensource.org/license/mit


[6] 广州知识产权法院(2019)粤73知民初207号民事判决书


免责声明:本文仅供一般性参考,并非信达律师事务所及其律师针对特定事项出具的法律意见。


审稿人:陈勇、温雪文