Phần mềm được bảo hộ chủ yếu bằng quyền tác giả: chương trình máy tính, cả mã nguồn lẫn mã máy, là một loại hình tác phẩm và được bảo hộ tự động khi viết ra. Nhưng quyền tác giả chỉ bảo vệ cách viết, không bảo vệ chức năng hay thuật toán. Để bảo vệ phần giá trị nằm ở ý tưởng kỹ thuật, doanh nghiệp phải dựa vào bí mật kinh doanh, và trong những điều kiện hẹp, sáng chế.
Bên cạnh việc bảo vệ mã của mình, nhóm phát triển còn phải tuân thủ quyền của người khác, mà nguồn rủi ro lớn nhất hiện nay là các thư viện mã nguồn mở. Gần như mọi sản phẩm phần mềm đều chứa mã nguồn mở, và mỗi giấy phép đặt ra nghĩa vụ khác nhau, có loại buộc công khai cả mã của bạn.
Bài này phân tích lớp bảo hộ nào phủ phần nào của phần mềm, những vụ án định hình ranh giới, cách đọc các giấy phép mã nguồn mở phổ biến, và quy trình kiểm tra quyền sở hữu mã trước khi gọi vốn hoặc bán công ty. Văn bản pháp luật cụ thể cần kiểm bản hiện hành.
Quyền tác giả bảo vệ gì trong phần mềm, và không bảo vệ gì
Hiệp định TRIPS và Hiệp ước Quyền tác giả của WIPO năm 1996 quy định chương trình máy tính được bảo hộ như tác phẩm văn học, dù ở dạng mã nguồn hay mã máy. Luật Việt Nam theo cùng hướng: chương trình máy tính là tập hợp các chỉ dẫn được thể hiện dưới dạng lệnh, mã, lược đồ hoặc dạng khác, khi gắn vào phương tiện mà máy tính đọc được thì có khả năng làm cho máy tính thực hiện được công việc hoặc đạt được kết quả cụ thể.
Thứ được bảo hộ là biểu hiện cụ thể: dòng mã, cấu trúc, cách tổ chức các mô-đun ở mức chi tiết có lựa chọn sáng tạo, tài liệu thiết kế, giao diện đồ hoạ như một tác phẩm mỹ thuật. Thứ không được bảo hộ là chức năng, thuật toán, ngôn ngữ lập trình và định dạng tệp dữ liệu ở mức ý tưởng. Tòa án Công lý Liên minh châu Âu trong vụ SAS Institute kiện World Programming năm 2012 khẳng định chức năng của chương trình, ngôn ngữ lập trình và định dạng tệp dữ liệu không phải là hình thức thể hiện được bảo hộ; một bên có thể viết chương trình làm cùng việc nếu không sao chép mã.
Ở Mỹ, án lệ phát triển phép thử "trừu tượng hoá, lọc, so sánh" từ vụ Computer Associates kiện Altai năm 1992: tách chương trình thành các tầng trừu tượng, lọc bỏ những phần thuộc về ý tưởng, do hiệu quả quyết định, do yếu tố bên ngoài bắt buộc, hoặc thuộc phạm vi công cộng, rồi mới so sánh phần còn lại. Logic này hữu ích cho bất kỳ ai cần đánh giá một cáo buộc sao chép phần mềm: hai chương trình giống nhau về chức năng chưa nói lên điều gì; câu hỏi là phần biểu hiện có được sao chép không.
Hệ quả thực tế: một kỹ sư rời công ty A, viết lại từ đầu một sản phẩm cùng chức năng cho công ty B mà không mang theo mã, thường không xâm phạm quyền tác giả. Nhưng nếu mang theo kiến trúc chi tiết, tên biến, chú thích, cấu trúc cơ sở dữ liệu đặc thù, nguy cơ cao hơn nhiều, và vấn đề bí mật kinh doanh cũng xuất hiện.
API và giao diện: bài học từ Oracle kiện Google
Vụ tranh chấp kéo dài hơn mười năm giữa Oracle và Google xoay quanh việc Google sao chép khoảng 11.500 dòng mã khai báo của giao diện lập trình ứng dụng Java SE khi xây dựng Android, trong khi phần mã triển khai được viết lại. Câu hỏi là: phần khai báo của API, tức tên lớp, tên phương thức, cách tổ chức gói, có được quyền tác giả bảo hộ không, và nếu có, việc Google dùng có phải là sử dụng hợp lý không.
Năm 2021, Tòa án Tối cao Mỹ quyết định theo hướng có lợi cho Google, nhưng bằng con đường hẹp: tòa giả định phần mã khai báo được bảo hộ mà không phán quyết dứt khoát, và kết luận việc Google sử dụng là fair use. Lập luận chính gồm việc mã khai báo gắn chặt với kỹ năng mà lập trình viên đã học, Google chỉ lấy phần cần thiết để lập trình viên dùng lại kiến thức đó trong một nền tảng mới, và việc dùng mang tính biến đổi.
Vì tòa không phán quyết về khả năng bảo hộ, câu hỏi "API có được bảo hộ quyền tác giả không" vẫn chưa có câu trả lời dứt khoát ở Mỹ, và luật mỗi nước khác nhau. Ở châu Âu, vụ SAS nói trên cùng Chỉ thị về chương trình máy tính có quy định về giải mã để đạt khả năng tương tác trong điều kiện nhất định. Ở Việt Nam, chưa có án lệ nổi bật về API theo hiểu biết đến thời điểm viết.
Khuyến nghị cho nhóm phát triển: khi cần tương thích với hệ thống của bên khác, ưu tiên dùng API công khai theo điều khoản của nhà cung cấp, đặc tả mở, hoặc giải mã trong phạm vi luật cho phép để đạt khả năng tương tác; tránh sao chép nguyên khối tài liệu và mã khai báo nếu không có giấy phép rõ ràng.
Sáng chế cho phần mềm: hẹp nhưng không đóng
Luật Sở hữu trí tuệ Việt Nam liệt kê chương trình máy tính trong danh sách đối tượng không được bảo hộ dưới danh nghĩa sáng chế. Công ước Sáng chế châu Âu cũng loại trừ chương trình máy tính "tự thân nó" (as such). Nhưng chữ "tự thân" là chìa khoá: một giải pháp do máy tính thực hiện, giải quyết một vấn đề kỹ thuật bằng phương tiện kỹ thuật và tạo ra hiệu quả kỹ thuật vượt ra ngoài tương tác thông thường giữa phần mềm và phần cứng, vẫn có thể được bảo hộ. Ví dụ: phương pháp điều khiển động cơ, nén tín hiệu, giảm nhiễu ảnh y khoa, tăng hiệu quả sử dụng bộ nhớ.
Ở Mỹ, phán quyết Alice kiện CLS Bank năm 2014 đặt ra phép thử hai bước: yêu cầu bảo hộ có hướng tới một ý tưởng trừu tượng không, và nếu có, có chứa "khái niệm sáng tạo" đủ biến ý tưởng thành ứng dụng đáng được cấp bằng không. Sau Alice, rất nhiều bằng sáng chế về phương pháp kinh doanh triển khai trên máy tính bị tuyên vô hiệu. Các hệ thống khác nhau, nhưng điểm chung là: đóng gói một quy trình kinh doanh bằng ngôn ngữ phần mềm không biến nó thành sáng chế.
Quyết định có nên xin bằng hay không, cách viết yêu cầu bảo hộ, và tra cứu tình trạng kỹ thuật là chủ đề của chuyên mục sáng chế và bằng độc quyền. Ở đây chỉ cần nhớ: với phần lớn công ty phần mềm Việt Nam, lớp bảo hộ chủ yếu là quyền tác giả cộng bí mật kinh doanh (mã nguồn đóng, mô hình và dữ liệu không công bố, điều khoản li-xăng chặt), còn sáng chế dành cho số ít giải pháp kỹ thuật lõi.
Đọc đúng giấy phép mã nguồn mở
Mã nguồn mở không có nghĩa là không có chủ. Tác giả vẫn giữ quyền tác giả và cấp cho mọi người một li-xăng với điều kiện. Vi phạm điều kiện là mất li-xăng và trở thành xâm phạm. Bảng dưới khái quát các giấy phép phổ biến; câu chữ chính thức của từng giấy phép mới có giá trị.
| Giấy phép | Kiểu | Nghĩa vụ chính | Rủi ro thường gặp |
|---|---|---|---|
| MIT, BSD | Dễ dãi | Giữ thông báo bản quyền và nội dung giấy phép | Quên đưa thông báo vào sản phẩm phân phối |
| Apache 2.0 | Dễ dãi, có điều khoản sáng chế | Giữ thông báo, ghi rõ thay đổi; có li-xăng sáng chế và điều khoản chấm dứt nếu kiện sáng chế | Không tương thích với GPLv2 theo quan điểm của Quỹ Phần mềm Tự do |
| LGPL | Copyleft yếu | Sửa thư viện thì phải công khai phần sửa; liên kết động thường không lây sang mã của bạn | Liên kết tĩnh hoặc sửa đổi thư viện mà không công khai |
| GPL v2, v3 | Copyleft mạnh | Phân phối tác phẩm phái sinh thì phải phát hành toàn bộ mã nguồn theo GPL | Nhúng mã GPL vào sản phẩm đóng rồi bán hoặc phát hành ứng dụng |
| AGPL v3 | Copyleft mạng | Như GPL, và người dùng tương tác qua mạng cũng có quyền nhận mã nguồn | Dùng trong dịch vụ phần mềm trực tuyến mà nghĩ rằng không phân phối nên không phải công khai |
Điểm mấu chốt của GPL là khái niệm "phân phối": chạy mã GPL trên máy chủ nội bộ để cung cấp dịch vụ không tạo nghĩa vụ công khai, đó là lý do AGPL ra đời để lấp khoảng trống này với dịch vụ trực tuyến. Câu hỏi khi nào hai thành phần là một "tác phẩm phái sinh" thống nhất, qua liên kết động, gọi tiến trình, hay giao tiếp qua mạng, vẫn còn tranh luận và ít án lệ.
Một xu hướng đáng chú ý những năm gần đây là các giấy phép "nguồn mở có điều kiện" như Server Side Public License hay Business Source License, do một số công ty cơ sở dữ liệu áp dụng để ngăn nhà cung cấp điện toán đám mây khai thác miễn phí. Các giấy phép này thường không được Tổ chức Sáng kiến Nguồn mở công nhận là nguồn mở; cần đọc kỹ trước khi đưa vào sản phẩm thương mại.
Kiểm tra quyền sở hữu mã trước khi gọi vốn hoặc bán công ty
Nhà đầu tư và bên mua sẽ thẩm định sở hữu trí tuệ. Phát hiện lỗ hổng lúc đó làm giảm giá hoặc đổ vỡ thương vụ. Quy trình tự kiểm tra nên làm định kỳ:
- Lập danh mục mã: các kho mã, sản phẩm, thành phần, ngày tạo, người đóng góp chính.
- Rà hợp đồng lao động: có điều khoản rõ về quyền sở hữu sản phẩm sáng tạo theo nhiệm vụ không, đặc biệt với người sáng lập đã viết mã trước khi công ty thành lập; nếu chưa, cần văn bản chuyển giao quyền về công ty.
- Rà hợp đồng thuê ngoài: nhà thầu, lập trình viên tự do, công ty gia công. Không có điều khoản chuyển giao quyền thì quyền có thể vẫn thuộc về họ.
- Quét thành phần mã nguồn mở bằng công cụ phân tích thành phần phần mềm, lập danh sách thư viện và giấy phép, xác định thành phần copyleft trong sản phẩm phân phối.
- Kiểm tra mã sinh bởi công cụ AI: chính sách sử dụng, khả năng sinh đoạn mã trùng với mã có giấy phép, điều khoản dịch vụ của công cụ.
- Rà điều khoản li-xăng cấp cho khách hàng: có cấp quá nhiều quyền, có cam kết không xâm phạm vượt khả năng kiểm soát không.
- Đăng ký quyền tác giả cho các phiên bản chính để có chứng cứ thuận lợi.
- Khắc phục: ký bổ sung văn bản chuyển giao, thay thế thư viện có giấy phép không phù hợp, công khai mã khi bắt buộc, lưu hồ sơ.
Lỗi phổ biến nhất ở công ty khởi nghiệp Việt Nam không phải mã nguồn mở mà là quyền sở hữu mã của người sáng lập và nhà thầu giai đoạn đầu. Một văn bản chuyển giao ký sớm tốn ít chi phí; ký lúc thương vụ đang chờ có thể bị đòi giá.
Hiểu lầm phổ biến về bảo hộ phần mềm
"Làm dịch ngược sang ngôn ngữ khác thì là mã mới." Chuyển một chương trình từ ngôn ngữ này sang ngôn ngữ khác theo từng dòng thường bị coi là làm tác phẩm phái sinh, giống dịch một cuốn sách. Quyền tác giả không mất chỉ vì đổi cú pháp.
"Mã nguồn mở là được dùng thoải mái cho thương mại." Phần lớn giấy phép cho phép dùng thương mại, nhưng kèm nghĩa vụ. Bỏ qua nghĩa vụ ghi thông báo đã là vi phạm; nhúng mã copyleft vào sản phẩm đóng có thể buộc công khai mã hoặc ngừng phân phối.
"Đăng ký bản quyền thì đối thủ không làm được ứng dụng tương tự." Đăng ký quyền tác giả chỉ củng cố chứng cứ về mã của bạn, không ngăn ai tự viết phần mềm cùng chức năng.
"Giấu mã là đủ an toàn." Mã đóng giúp giữ bí mật, nhưng ứng dụng phát hành có thể bị dịch ngược ở mức độ nào đó, và bí mật chỉ được pháp luật bảo vệ khi có biện pháp bảo mật hợp lý cùng thoả thuận với nhân viên, đối tác.
"Sao chép giao diện người dùng không sao vì chỉ là màn hình." Giao diện đồ hoạ có thể được bảo hộ như tác phẩm mỹ thuật, kiểu dáng ở một số nước, hoặc qua pháp luật cạnh tranh nếu gây nhầm lẫn. Bố cục chức năng thông dụng thì tự do, nhưng sao chép nguyên phong cách thị giác là rủi ro.
Câu hỏi thường gặp
Mã do nhân viên viết ngoài giờ trên máy cá nhân thuộc về ai?
Phụ thuộc hợp đồng và mối liên hệ với nhiệm vụ. Nếu mã nằm ngoài nhiệm vụ được giao, không dùng tài nguyên, thông tin của công ty, thường thuộc về nhân viên. Tranh chấp xảy ra khi ranh giới mơ hồ, nên hợp đồng cần quy định rõ và tránh điều khoản chiếm quyền quá rộng.
Có được dùng mã từ các diễn đàn hỏi đáp lập trình trong sản phẩm thương mại không?
Nội dung đăng trên nhiều diễn đàn được cấp phép theo một giấy phép Creative Commons có yêu cầu ghi công và chia sẻ tương tự. Đoạn mã rất ngắn, mang tính chức năng có thể không đủ nguyên gốc, nhưng an toàn nhất là kiểm điều khoản của diễn đàn và ghi nguồn.
Cơ sở dữ liệu có được bảo hộ không?
Sưu tập dữ liệu được bảo hộ quyền tác giả ở mức cách lựa chọn, sắp xếp có sáng tạo, không bảo hộ bản thân dữ liệu. Liên minh châu Âu có thêm quyền đặc thù cho người đầu tư đáng kể vào cơ sở dữ liệu; Việt Nam và Mỹ không có quyền tương đương.
Phát hiện sản phẩm của mình vô tình chứa mã GPL thì làm gì?
Đánh giá phạm vi: mã nằm ở đâu, có được phân phối không, có tách rời được không. Các lựa chọn gồm thay thế thành phần, viết lại sạch, xin li-xăng thương mại từ tác giả nếu có mô hình cấp phép kép, hoặc tuân thủ bằng cách phát hành mã. GPLv3 có cơ chế khôi phục quyền khi khắc phục kịp thời.
Giao diện lập trình do công ty mình thiết kế có nên công bố không?
Công bố API giúp hệ sinh thái phát triển và thường là lựa chọn chiến lược đúng. Hãy kèm điều khoản sử dụng rõ ràng, quy định giới hạn tần suất, quyền thu hồi khoá truy cập, và giữ bí mật phần triển khai phía máy chủ.
Mô hình học máy đã huấn luyện được bảo hộ thế nào?
Trọng số mô hình là đối tượng mới, chưa có cơ chế riêng ở phần lớn nước. Trong thực tế, doanh nghiệp bảo vệ chủ yếu bằng bí mật kinh doanh và điều khoản hợp đồng, còn mã huấn luyện được bảo hộ quyền tác giả. Khả năng bảo hộ quyền tác giả cho trọng số còn đang tranh luận.