Tác giả: Juan Galt
Biên dịch: AididiaoJP, Foresight News
Cuộc tranh luận giữa mã nguồn mở và mã nguồn đóng đã diễn ra trong ngành Bitcoin và toàn bộ ngành công nghiệp tiền mã hóa hơn một thập kỷ. Những người ủng hộ Bitcoin từ lâu đã lập luận rằng cơ sở hạ tầng tài chính toàn cầu phải được xây dựng công khai, tính minh bạch và khả năng kiểm toán là nguyên tắc không thể thỏa hiệp trước những giá trị thực sự. Tuy nhiên, tầng ứng dụng và tài chính truyền thống thường không đồng tình.
Sự kiện ví phần cứng Coldcard bị đánh cắp gần đây càng đẩy ý nghĩa thực sự của từ "mã nguồn mở" lên đỉnh điểm của sự chú ý. Người dùng thiệt hại hơn 100 triệu USD Bitcoin (hơn 1500 BTC). Sự việc này đã phơi bày một thực tế đáng ngại: ngay cả nhiều người chơi Bitcoin trung thành, sự hiểu biết về triết lý phát triển phần mềm nguồn mở và các tình huống nó thất bại, thực ra khá hạn chế.
Nguyên tắc và thuật ngữ
Các thuật ngữ liên quan đến mã nguồn mở không đơn giản. Phần mềm Tự do Nguồn mở (FOSS) và Phần mềm Tự do / Nguồn mở (FLOSS) đề cập đến phần mềm đáp ứng định nghĩa tự do người dùng chính thức.
Tổ chức Phần mềm Tự do (FSF) định nghĩa "phần mềm tự do" bằng bốn quyền tự do cơ bản:
- Tự do 0: Chạy chương trình theo ý muốn, vì bất kỳ mục đích nào.
- Tự do 1: Nghiên cứu cách chương trình hoạt động, và sửa đổi nó theo nhu cầu của mình (điều kiện tiên quyết là phải có quyền truy cập mã nguồn).
- Tự do 2: Phân phối lại bản sao, để giúp đỡ người khác.
- Tự do 3: Phân phối phiên bản đã sửa đổi của mình cho người khác (cũng cần mã nguồn làm điều kiện tiên quyết).
FSF nhấn mạnh rằng, "free" nghĩa là tự do, không phải miễn phí. Câu khẩu hiệu mà những người ủng hộ mã nguồn mở thường nói là: "'free' như trong 'tự do ngôn luận', không phải 'bia miễn phí'."
Định nghĩa Nguồn Mở của Tổ chức Sáng kiến Nguồn Mở (OSI) liệt kê thêm mười tiêu chuẩn thực hành, bao gồm: có thể tự do phân phối lại mà không cần trả tiền bản quyền, mã nguồn phải được cung cấp dưới dạng phù hợp để sửa đổi, cho phép tạo và phân phối các tác phẩm phái sinh, không được phân biệt đối xử với bất kỳ cá nhân, nhóm hoặc mục đích sử dụng nào (bao gồm cả mục đích thương mại). Chỉ những giấy phép hoàn toàn đáp ứng mười tiêu chuẩn này mới có thể được gọi chính thức là "mã nguồn mở".
"Mã nguồn có thể xem" (source available) hoặc "mã nguồn có thể đọc" lại là một chuyện khác. Mã có thể được đọc công khai, nhưng giấy phép có thể hạn chế quyền bán thương mại. Firmware của Coldcard là một ví dụ - nó sử dụng giấy phép MIT, đồng thời có thêm điều khoản giấy phép. Điều khoản này cấm rõ ràng việc "bán" phần mềm, được định nghĩa là cung cấp phần mềm đó cho bên thứ ba để đổi lấy phí hoặc đối giá khác, và giá trị của sản phẩm hoặc dịch vụ hoàn toàn hoặc chủ yếu đến từ chính phần mềm đó. Nói cách khác, firmware Coldcard không thể được sử dụng cho mục đích thương mại.
Điều khoản giấy phép viết rất thẳng thắn: "Đây có phải là mã nguồn mở không? Không." Nó chỉ ra rằng, sau khi thêm điều khoản này, phần mềm mặc dù đáp ứng nhiều yếu tố trong định nghĩa mã nguồn mở, nhưng không phải tất cả, do đó không nên được gọi là mã nguồn mở.
Những sự khác biệt này rất quan trọng. Công bố mã nguồn chỉ tạo ra khả năng được kiểm tra; việc trao toàn bộ quyền trong định nghĩa phần mềm tự do hoặc định nghĩa nguồn mở mới thực sự là FOSS. Nhưng việc gắn nhãn hiệu "mã nguồn mở" tự nó không phải là mục đích. Những người chỉ trích cho rằng, chính sự tự do thương mại trong mã nguồn mở mới mở khóa động lực cho các bên thứ ba kiểm tra và rà soát mã, nếu không những động lực này có thể không hề tồn tại.
Bốn quyền tự do là cốt lõi triết lý của mã nguồn mở. Nhưng trong thực tế, nó được xây dựng dựa trên một giả định kinh tế: sẽ có đủ người có động cơ thực sự đi rà soát mã. Khi giả định này thất bại, hệ thống sẽ diễn ra bi kịch "tài sản công" kinh điển - tài nguyên chia sẻ bị sử dụng quá mức hoặc bị bỏ mặc vì lợi ích cá nhân ngắn hạn, cuối cùng dẫn đến suy thoái. Mọi người đều có động cơ lấy thêm một chút (hoặc đóng góp ít hơn một chút), kết quả là toàn bộ tài nguyên bị tổn hại. Đôi khi động lực được sắp xếp đồng nhất, đôi khi thì hoàn toàn không.
Một nhà phát triển Bitcoin nói thẳng thắn hơn: "Việc sử dụng hai công cụ thay thế kiểm thử mocks và stubs trong mã nguồn mở để kiểm tra là vô trách nhiệm và thiển cận. Mã nguồn mở được coi là an toàn vì bất kỳ ai cũng có thể xác minh nó. Nếu bạn thậm chí không muốn thực hiện kiểm tra tối thiểu đối với các chức năng mà mình thực sự phụ thuộc, thì bạn đang hành xử như một ký sinh trùng."
Do đó, bản thân mã nguồn mở không tự động tạo ra sự an toàn, nó chỉ tạo ra khả năng xác minh. Việc xác minh có thực sự xảy ra hay không phụ thuộc vào động lực, kỹ năng và sự chú ý. Trong lịch sử, các FOSS xuất sắc sẽ được củng cố dần dần khi lỗ hổng được phát hiện, tiết lộ và sửa chữa, trở thành nền tảng vững chắc để người khác xây dựng. Linux kernel là một ví dụ điển hình - nó vận hành phần lớn máy chủ, cơ sở hạ tầng điện toán đám mây, thiết bị Android và hệ thống nhúng trên toàn cầu, là một trong những phần mềm được triển khai rộng rãi nhất trong lịch sử.
Bitcoin Core: Mẫu hình thực tế của mã nguồn mở
Bitcoin Core, với tư cách là bản triển khai tham chiếu của Bitcoin, là một trường hợp kinh điển khác về mã nguồn mở thuần túy quy mô lớn hoạt động trong thực tế. Nó sử dụng giấy phép MIT, và quá trình phát triển được thiết kế từ đầu là công khai.
Bất kỳ ai cũng có thể gửi pull request (yêu cầu hợp nhất). Rà soát mã là cơ chế lọc chính, cũng là con đường khuyến nghị cho người mới. Những người rà soát sử dụng thuật ngữ chính thức: Concept ACK (đồng ý mục tiêu), Approach ACK (đồng ý mục tiêu và phương pháp), ACK kèm mã hash commit cụ thể (đã kiểm thử và phê duyệt hợp nhất), hoặc NACK (không đồng ý, cần kèm lý do kỹ thuật).
Người bảo trì sẽ cân nhắc sự đồng thuận của người đóng góp và ưu điểm kỹ thuật trước khi hợp nhất. Các thay đổi then chốt đòi hỏi sự đồng thuận cao hơn, thường cần Đề xuất Cải tiến Bitcoin (BIP), và thảo luận kỹ lưỡng trong nhiều năm trên danh sách email bitcoin-dev và IRC.
Ở đây không có "Nhà phát triển Bitcoin Core" như một tầng lớp đặc quyền. Sự tin tưởng được giành lấy nhờ thể hiện năng lực lâu dài. Sự tồn tại của người bảo trì chỉ vì nhu cầu thực tế - kiểm toán mã hợp nhất, quản lý phát hành, rà soát cơ bản - nhưng sản phẩm đầu ra là mã nguồn mở thuần túy mà bất kỳ ai cũng có thể kiểm tra, biên dịch, phân nhánh hoặc chạy. Những người có mã được hợp nhất vào Bitcoin Core thường được gọi là Người đóng góp cho Bitcoin Core.
Nhà phát triển Bitcoin nguồn mở lâu năm Calle gần đây tổng kết: "Những người nghĩ rằng Core là một tổ chức nào đó vận hành trong bóng tối một cách mờ ám, hoặc là quá lười, hoặc quá ngu ngốc, lười đến mức không tự mình nhìn xem. Mọi thứ họ làm đều công khai, bất kỳ ai cũng có thể tham gia, và sản phẩm cuối cùng là mã nguồn mở thuần túy."
Công việc này chủ yếu được tài trợ bởi các cấu trúc phi lợi nhuận và tài trợ, ví dụ như Brink, OpenSats, Spiral, chứ không phải lộ trình sản phẩm của các công ty truyền thống. Thảo luận kỹ thuật diễn ra trên danh sách email công khai bitcoin-dev và kênh IRC #bitcoin-core-dev của Libera Chat, các đề xuất đều được xem xét nghiêm ngặt trước và sau khi gửi pull request. Các issue và pull request trên GitHub thường có lịch sử bình luận dài tới mười năm. Kết quả là một văn hóa phát triển ưu tiên theo đuổi tính đúng đắn và khả năng kiểm toán, thay vì tốc độ hoặc tốc độ lặp tính năng thương mại.
Kinh tế học của mã nguồn mở
Hầu hết người dùng phần mềm nguồn mở hoặc có thể xem mã nguồn, chưa bao giờ tự đọc mã. Họ dựa vào giả định "có người khác đang rà soát". Trong trường hợp Coldcard, một lỗ hổng nghiêm trọng về entropy đã ẩn náu trong firmware công khai khoảng năm năm, trước khi bị khai thác và do đó bị phát hiện.
Lỗi này được đưa vào trong một lần viết lại lớn vào năm 2021. Lần viết lại đó cũng loại bỏ mã GPL còn sót lại có nguồn gốc từ Trezor. Trezor là ví phần cứng đầu tiên, hiện là hãng lớn thứ hai trong ngành tự giữ tiền. Thư viện cốt lõi của vấn đề có tên libngu, nó thay thế trezor-crypto, nhưng được rà soát từ bên ngoài rất ít - sau hơn năm năm sử dụng trong môi trường sản xuất, chỉ có 7 sao, dưới 20 fork. Ngược lại, trezor-crypto có 512 sao và 212 fork, còn trezor-firmware hiện đại hơn có 793 fork và 1800 sao. Bản thân việc mã nguồn có thể xem đã không mang lại sự rà soát thực sự quan trọng. Những người chỉ trích cho rằng, nguyên nhân là do các công ty có vốn, có năng lực sinh lời khác bị hạn chế sử dụng, thiếu động lực thương mại. Chú thích: Star (Sao) và Fork (Phân nhánh) là hai chỉ số cốt lõi trên GitHub để đo lường mức độ phổ biến và hoạt động của dự án.
Các lợi ích liên quan trong lĩnh vực Bitcoin cao hơn hầu hết các lĩnh vực phần mềm khác. Một lỗ hổng then chốt có thể trực tiếp chuyển thành tiền mặt trên thị trường mở. Nửa đầu số tiền bị đánh cắp từ Coldcard vẫn được lưu trữ trong một số ít địa chỉ, hacker có thể một ngày nào đó bị bắt, nhưng những kẻ bắt chước sau này thận trọng hơn, một số đã thành công đánh cắp nhiều Bitcoin hơn và rửa tiền (theo dữ liệu từ Galaxy Research, tổng thiệt hại ít nhất đã lên tới 1700 BTC). Giao dịch Bitcoin chống kiểm duyệt và không thể sửa đổi vừa cung cấp động lực mạnh mẽ cho kẻ tấn công, vừa tạo ra sự sàng lọc Darwin: chỉ những dự án liên tục thu hút sự rà soát chất lượng cao, người dùng và công ty nghiêm túc thực hiện biện pháp bảo vệ, mới có khả năng tồn tại lâu dài.
Lựa chọn giấy phép sẽ định hình những động lực này. Giấy phép mã nguồn mở thuần túy có thể tối đa hóa nhóm người rà soát tiềm năng và phân nhánh. Trong khi đó, giấy phép "mã nguồn có thể xem" bị hạn chế, mặc dù có thể giảm việc "đi nhờ" thương mại, nhưng cũng thu hẹp nhóm người đồng thời có quyền hợp pháp và động cơ kinh tế để đầu tư chú ý sâu sắc. Kết quả, gánh nặng rà soát mã lại đổ dồn lên chính công ty, ở một mức độ nào đó khiến nó gần với mã nguồn đóng hơn là mã nguồn mở.
AI đang thay đổi phát triển mã nguồn mở và đóng như thế nào
Trí tuệ nhân tạo đang thay đổi sự cân bằng giữa mã nguồn mở và mã nguồn đóng.
Sau sự kiện Coldcard, một dự án tình nguyện do các nhà phát triển như Calle, Rob Hamilton từ AnchorWatch dẫn đầu, được OpenSats hỗ trợ, mang tên Bitcoin Red Team, đã sử dụng các mô hình AI tiên tiến để quét hàng trăm kho mã Bitcoin nguồn mở. Trong một giai đoạn tập trung, nhóm đã gửi hàng nghìn phát hiện, trong đó hàng chục mục được xác định là nghiêm trọng hoặc rất nghiêm trọng, bao phủ hàng trăm dự án. Trách nhiệm tiết lộ được gửi cho người bảo trì trước, sau đó mới công khai. Điều này chứng minh rằng việc rà soát có sự hỗ trợ của AI có hệ thống có thể phát hiện lỗ hổng với quy mô và tốc độ mà nhóm người trước đây khó có thể đạt được.
Đáng chú ý, Bitcoin Red Team phát hiện rằng các mô hình trọng số nguồn mở từ Trung Quốc đáng tin cậy hơn nhiều so với các mô hình đóng của Mỹ. Ngay cả các mô hình Mỹ có quyền truy cập mạng và quyền truy cập cấp cao nhất cũng từ chối trả lời các truy vấn của Bitcoin Red Team, điều này khiến các nhà phát triển Mỹ khá tiếc nuối.
Đồng thời, dòng chảy mã được tạo bởi AI cũng tạo áp lực "từ chối dịch vụ" mới cho những người bảo trì FOSS. Việc rà soát đầu ra từ AI thường tốn thời gian hơn việc tạo ra nó. Một số dự án nguồn mở ngoài Bitcoin đã bắt đầu hạn chế issue tracker, hoặc đặt ra quy tắc nghiêm ngặt chống đóng góp từ AI, chỉ để duy trì hoạt động cơ bản.
Ở phía mã nguồn đóng, lợi thế truyền thống "an toàn thông qua che giấu" đang bị xói mòn. Các mô hình AI hiện đại có thể đọc, giải mã làm rối, thăm dò điểm cuối và suy luận mã với tốc độ cực cao. Sự khác biệt thực tế giữa mã nguồn mở và đóng, ngày nay chủ yếu chỉ còn lại những mã backend chưa bao giờ được đưa lên mạng. Mã nguồn đóng cuối cùng chỉ có thể dựa vào chất lượng kiểm toán chuyên nghiệp, tốc độ triển khai bản vá, và cấu trúc động lực khiến những người có quyền truy cập tiếp tục rà soát nghiêm túc.
Bitcoin và ngành công nghiệp tiền mã hóa rộng hơn, đang tạo áp lực bất thường lên phần mềm tự do nguồn mở. Giá trị tiền tệ thực, nền kinh tế đối kháng, và bây giờ là phân tích quy mô AI, đang buộc các mô hình phần mềm không ngừng tiến hóa. Quay trở lại hệ thống số tiền kỹ thuật số mô phỏng trước đây, hầu như không phải là lựa chọn cho cơ sở hạ tầng hỗ trợ xã hội hiện đại. Chỉ những dự án được kiểm toán đầy đủ mới có khả năng tồn tại dưới áp lực của hacker được hỗ trợ AI và tài chính ưu tiên số hóa.





