Sự tiến hóa của nhân vật người bảo trì lõi Bitcoin

Bài viết này được dịch máy
Xem bản gốc

Tác giả: Juan Galt

Nguồn: https://bitcoinmagazine.com/print/the-core-issue-the-role-and-history-of-bitcoin-core-maintainers

Ban đầu, chỉ có Satoshi Nakamoto và một ý tưởng táo bạo. Satoshi Nakamoto bắt đầu phát triển Bitcoin không muộn hơn năm 2007 , và theo như chúng ta biết, nó được phát triển hoàn toàn bởi chính ông cho đến ngày 31 tháng 10 năm 2008 — vài tuần sau khi ông phát hành sách trắng về Bitcoin — khi Satoshi Nakamoto mời người đóng góp đầu tiên cho dự án, Hal Finney.

hal-finney

Các sự kiện sau đó cho thấy Finney đóng vai trò then chốt trong thành công ban đầu của Bitcoin. Theo Email 4 được tiết lộ gần đây, nút mạng của Satoshi Nakamoto đã không thể nhận "kết nối đến" trong vài ngày sau khi khai thác khối khởi tạo, khiến nút mạng của Finney trở thành nút duy nhất mà người dùng khác có thể kết nối đến. Satoshi Nakamoto đã nói với Finney trong một email riêng: "Việc nút mạng của bạn nhận được các kết nối đến là một yếu tố chính giúp mạng lưới tồn tại trong một hoặc hai ngày đầu tiên."

Finney cũng là người đầu tiên được biết đến là người đánh giá và đóng góp vào mã nguồn Bitcoin. Trước khi phần mềm được phát hành đầy đủ, Satoshi Nakamoto đã chia sẻ nó với Finney và một số ít những người theo chủ nghĩa mật mã huyền thoại. Ngay cả trước khi phiên bản đầu tiên của dự án Bitcoin được phát hành, Finney đã đóng góp mã nguồn—như Ray Dillinger đã tiết lộ, người cũng nhận được mã nguồn chưa được công bố từ Satoshi Nakamoto.

Trên blog của Dillinger có đăng một cuộc phỏng vấn với Nathaniel Popper. Trong cuộc phỏng vấn, Popper nói: "Đó là khi chúng tôi bắt đầu thảo luận về các kiểu dữ liệu dấu phẩy động trong mã kế toán, và tôi biết rằng Finney cũng tham gia. Vào thời điểm đó, Finney đang xem xét ngôn ngữ kịch bản cho các giao dịch, và mã của anh ấy, mã của tôi, đều tương tác với mã kế toán."

Mô tả này gần như trùng khớp với kho lưu trữ dự án Bitcoin lâu đời nhất được biết đến trên nền tảng mã nguồn SourceForge — Satoshi Nakamoto đã thêm Finney vào dự án vào ngày 18 tháng 12 năm 2008. Quyết định của Nakamoto đánh dấu trường hợp đầu tiên mà quyền "Người bảo trì" đối với dự án có thể được nắm giữ bởi người khác. Finney có thể, và rất có khả năng, đạt được tư cách nhà phát triển cho dự án Bitcoin trên nền tảng SourceForge, từ đó cho phép anh ta tải xuống, sửa đổi và tải lên các phiên bản mới cho dự án.

Sourceforge

Vậy, ngoài việc là người đóng góp mã nguồn, người đánh giá mã nguồn và người vận hành nút mạng, Hal Finney có phải là người duy trì dự án Bitcoin không?

Định nghĩa chặt chẽ nhất về "người bảo trì" là người có "quyền cam kết" (hoặc quyền ghi) trên nhánh phát triển chính của một dự án phần mềm. Đối với các dự án như Bitcoin, người đóng góp có thể "gửi" mã nguồn đến nhánh phát triển của dự án và gửi "PR" (yêu cầu hợp nhất) để tích hợp mã đó vào nhánh chính. Tuy nhiên, những bản cập nhật này chỉ có thể được "hợp nhất" vào nhánh chính thông qua "quyền cam kết" của người bảo trì ...

Dựa trên định nghĩa này, Finney có thể được gọi là người bảo trì đầu tiên sau Satoshi Nakamoto. Tuy nhiên, để trở thành người bảo trì Bitcoin Core, chỉ có quyền commit thôi là chưa đủ; người đó phải có uy tín tốt trong cộng đồng nhà phát triển và cũng phải là người đóng góp siêng năng và có năng lực.

Ghi chú của người dịch: Nói một cách khái quát, Satoshi Nakamoto đã tạo ra dự án "Bitcoin" trên nền tảng Sourceforce, đây là ứng dụng khách nút Bitcoin đầu tiên. Sau khi Nakamoto rời đi, mã nguồn hiện có đã được chuyển sang nền tảng GitHub, và tên dự án được đổi thành "Bitcoin Core". Như có thể thấy từ văn bản gốc, tác giả không nhấn mạnh sự khác biệt này, và thực tế coi cả hai là cùng một dự án, luôn sử dụng thuật ngữ "Bitcoin" để chỉ cả hai, thay vì đề cập cụ thể đến dự án cũ (hoặc giai đoạn trước đó). Do đó, "Bitcoin Core" được sử dụng ở đây chỉ đơn giản để chỉ ra rằng yêu cầu đối với người bảo trì đã tăng lên sau này.

Những người duy trì dự án Bitcoin đôi khi là những nhà phát triển tích cực, nổi tiếng trong giới duy trì dự án và dường như rất phù hợp với vai trò này; nhưng đôi khi, họ là những người đánh giá mã nguồn tích cực, chỉ đơn giản là hợp nhất những đóng góp mã nguồn đã đạt được sự đồng thuận và từ chối hợp nhất những đoạn mã chưa đạt được sự đồng thuận.

Ngược lại, những người quản lý dự án đã trở thành những nhân vật có uy tín trong ngành công nghiệp Bitcoin, nhưng họ cũng dễ bị ảnh hưởng bởi những sai lầm. Đôi khi, những người quản lý dự án nổi tiếng bị những người quản lý khác coi là tham nhũng và đặc quyền của họ bị thu hồi, chẳng hạn như Gavin Andresen 7 , người đã bảo lãnh cho kẻ lừa đảo Craig Wright là Satoshi Nakamoto. Những lúc khác, những người quản lý dự án từ chức để tránh bị quấy rối có chủ đích, chẳng hạn như Gregory Maxwell 8 .

Nhìn chung, những người đóng góp kỳ vọng người duy trì dự án Bitcoin là các kỹ sư, chứ không phải chính trị gia. Ví dụ, trên các trang thảo luận của nhiều yêu cầu kéo (PR) trên GitHub, mọi người kỳ vọng các cuộc thảo luận sẽ tập trung vào các chi tiết kỹ thuật và triển khai cụ thể được đề cập trong mã nguồn, chứ không phải người khởi xướng yêu cầu đó, quan điểm chính trị hay lòng trung thành của họ. Các cuộc thảo luận liên quan đến sự đồng thuận và tranh cãi có thể gây ra tranh luận gay gắt thường được chuyển sang danh sách gửi thư của Bitcoin và các diễn đàn khác, cũng như các chủ đề chính trị.

Điểm mấu chốt là, xuyên suốt lịch sử của Bitcoin, quyền lực mà những người "duy trì" nắm giữ—bất kể cụ thể là gì—đã giảm dần khi dự án phát triển kể từ khi Satoshi Nakamoto khởi xướng. Thậm chí đã những trường hợp mã được hợp nhất vào nhánh chính chỉ để rồi bị loại bỏ trong các lần xem xét sau đó—cho thấy rằng quyết định của những người duy trì không còn là quyết định cuối cùng nữa.

Trong suốt lịch sử của Bitcoin, những người duy trì dự án đôi khi bị cáo buộc đóng vai trò như người gác cổng, từ chối tích hợp các bản cập nhật được một bộ phận cộng đồng ủng hộ—thường một phần vì một bộ phận khác trong cộng đồng phản đối chúng. Trong những trường hợp này, vai trò của người duy trì thực sự sở hữu một quyền lực "định hình thị hiếu" khó định lượng—quyết định xem một bản sửa đổi mã nguồn có đạt được sự đồng thuận hay không.

Quyền quyết định độc quyền về việc có nên hợp nhất (một số đoạn mã) hay không có thể là hoàn toàn cần thiết và không thể tránh khỏi đối với các dự án mã nguồn mở, bởi vì nếu bất kỳ ai cũng có thể hợp nhất bất kỳ đoạn mã nào vào bất kỳ lúc nào, dự án sẽ không thể được coi là an toàn và ổn định. Trong một môi trường thù địch, một hệ thống ưu tú xem xét mã nguồn chỉ dựa trên ý tưởng và giá trị của nó có thể được coi là mô hình tốt nhất mà chúng ta có thể theo đuổi; bất kỳ lựa chọn nào khác đều là một hệ thống chính trị độc đoán.

Thật không may, thông tin về giai đoạn đầu của dự án Bitcoin cực kỳ khan hiếm, chỉ cho phép chúng ta hiểu sơ lược về vai trò của Hal Finney trước khối khởi tạo. Trong phát triển phần mềm mã nguồn mở, lịch sử quyền hạn của người duy trì rất không minh bạch. Các nền tảng như Sourceforge và GitHub không công khai lịch sử quyền hạn commit hoặc quyền hạn chi tiết của thành viên. Việc Satoshi Nakamoto thêm Finney vào Sourceforge là một sự kiện rất hiếm hoi trong lịch sử những người duy trì Bitcoin.

Tuy nhiên, các hệ thống kiểm soát phiên bản như SVN và Git, mặc dù được triển khai vài tuần sau khi Bitcoin được phát hành lần đầu, vẫn theo dõi các lần commit mã và lịch sử nhánh dự án để công khai xem xét, cung cấp cho chúng ta thông tin công khai về những gì đã xảy ra. Kết quả là, kiến thức của chúng ta về lịch sử của những người duy trì dự án Bitcoin thường đến từ lần commit đầu tiên và cuối cùng của họ vào nhánh chính, các thông báo trên diễn đàn Bitcointalk (hoặc các diễn đàn khác) và (cực kỳ hiếm) tin tức về việc những người duy trì đang hoạt động thu hồi quyền của họ. Phần lớn bài viết này dựa trên hồ sơ lịch sử của Ava Chow, người duy trì Bitcoin Core.<sup> 10 </sup>

Khả năng theo dõi quyền cam kết (hoặc người bảo trì) đã được cải thiện vào năm 2014: dự án Bitcoin Core đã thêm một hệ thống "khóa công khai đáng tin cậy"¹¹ , bao gồm danh sách trắng các khóa công khai PGP có thể cam kết mã vào nhánh chính. Các khóa công khai chỉ có thể được thêm vào hoặc xóa khỏi danh sách này bằng cách hợp nhất mã với những người bảo trì đang hoạt động; và tất cả mã được cam kết vào nhánh chính đều được ký (bằng khóa riêng tương ứng), có thể được bất kỳ ai xác minh công khai — bằng cách so sánh chữ ký của phần mềm với khóa công khai PGP tương ứng.

Hệ thống khóa công khai đáng tin cậy (Trusted Public Key System) được Matt Corallo bổ sung như một biện pháp bảo mật. Ông nói với tạp chí Bitcoin rằng tính năng này là kết quả của một quá trình cải tiến và tối ưu hóa chung, chứ không phải là phản ứng trước bất kỳ tác nhân hoặc sự kiện cụ thể nào.

Lịch sử tóm lược về những người duy trì Bitcoin Core: Kỷ nguyên Satoshi Nakamoto

Vào ngày 3 tháng 1 năm 2009, Satoshi Nakamoto đã khai thác khối khởi tạo số 13 của mạng Bitcoin, chính thức đưa loại tiền điện tử này vào giai đoạn thử nghiệm công khai. Trong khối này, ông đã thêm một thông điệp—một tiêu đề từ một tờ báo quốc gia hàng ngày của Anh: “The Times 03/01/2009 Bộ trưởng Tài chính trên bờ vực gói cứu trợ thứ hai cho các ngân hàng”—neo giữ và ghi dấu thời điểm ra đời của Bitcoin trong thế giới thực. Tiêu đề này, được khắc ghi vĩnh viễn trên chuỗi khối Bitcoin, đóng vai trò như một lời nhắc nhở tinh tế nhưng bền vững về sứ mệnh của Bitcoin.

Vào lúc 2 giờ chiều ngày 8 tháng 1 năm 2009, phiên bản 0.1.0 của phần mềm Bitcoin đã được phát hành và công bố trên nhiều diễn đàn (bao gồm cả danh sách gửi thư "Cypherpunks"). Satoshi Nakamoto đã viết trong thông báo: "Thông báo về phiên bản đầu tiên của phần mềm Bitcoin; một hệ thống tiền điện tử mới sử dụng mạng ngang hàng để ngăn chặn việc chi tiêu hai lần. Nó hoàn toàn phi tập trung, không có máy chủ hay cơ quan trung ương nào."

Trong lần phát hành ban đầu của Bitcoin, phiên bản cài đặt trên Windows được biên dịch bởi Satoshi Nakamoto, và mã nguồn của nó cũng được đóng gói trong một tệp nén .rar và phát hành trên SourceForge.net. Hành động này đương nhiên đã đưa Satoshi Nakamoto trở thành người sáng lập và người bảo trì chính của dự án Bitcoin—một vai trò gắn liền với các dự án phần mềm mã nguồn mở. Trong quá trình phát triển Bitcoin, Nakamoto sẽ thu thập mã do các nhà phát triển khác gửi, tải xuống hệ thống của mình, xem xét và hợp nhất mã, sau đó tạo ra một bản phát hành mới—nhiệm vụ cuối cùng này, phân biệt người bảo trì với người đóng góp, đã được duy trì trong suốt lịch sử của dự án Bitcoin. Quy trình làm việc này tiếp tục cho đến khi Satoshi Nakamoto qua đời vào tháng 10 năm 2010, ảnh hưởng đến các phiên bản từ 0.1.0 đến 0.3.19 của phần mềm Bitcoin.

Sau khi phát hành lần đầu, Bitcoin đã nhận được nhiều bản cập nhật. Vào cuối tháng 1 năm 2009, một nhà phát triển thứ ba chính thức trở thành người đóng góp cho dự án. Martti Malmi, sử dụng tên người dùng "sirius-m," đã tạo ra " lần commit đầu tiên" trên Sourceforge, đưa hệ thống kiểm soát phiên bản mã nguồn SVN lên mạng. SVN, tương tự như Git, là một hệ thống kiểm soát phiên bản phổ biến vào thời điểm đó. Malmi đã commit mã vào nhánh "Trunk", tương tự như nhánh "master" trên GitHub, do đó trở thành người bảo trì chính thức thứ hai trong lịch sử phát triển mã nguồn mở của Bitcoin. Năm 2009, Malmi cũng đã có nhiều đóng góp khác, bao gồm phiên bản Linux đầu tiên của Bitcoin , phiên bản 0.2.0 .

Vào tháng 8 năm 2010, Lazloh Hanyecz—đúng vậy, chính là người nổi tiếng vì đã chi 10.000 BTC cho một chiếc bánh pizza vào năm 2010—đã tham gia với tư cách là một người duy trì dự án, một tháng sau khi anh đóng góp phiên bản iOS đầu tiên của Bitcoin cho bản phát hành 0.3.0.

Với vai trò là người bảo trì chính, một khía cạnh trong vai trò của Satoshi Nakamoto là (theo nghĩa đen) quản lý toàn bộ mạng lưới. Nakamoto đã bí mật yêu cầu Lazloh—người đầu tiên sử dụng card đồ họa (GPU) để khai thác các khối Bitcoin—giảm tốc độ khai thác của mình để phù hợp với mạng lưới. "Càng trì hoãn cuộc chạy đua vũ trang GPU, thư viện OpenCL càng trở nên hoàn thiện hơn, và càng nhiều người có thể sử dụng card đồ họa tương thích với OpenCL," Nakamoto nói với Lazloh vào năm 2009,<sup>19</sup> nhằm kéo dài kỷ nguyên khai thác Bitcoin bằng CPU. Vào thời điểm đó, tương lai của Bitcoin hoàn toàn không chắc chắn, và khai thác là động lực chính để vận hành các node Bitcoin.

Vào ngày 17 tháng 7 năm 2010, phiên bản Bitcoin 0.3.2 được phát hành. Satoshi Nakamoto đã thêm "hệ thống điểm kiểm tra" như một biện pháp bảo mật, hệ thống này mã hóa cứng một giá trị băm làm giá trị băm hợp lệ cho một chiều cao khối nhất định. Mục đích của nó là để ngăn chặn việc chuỗi khối bị lắp ráp lại và đào sâu đến mức lật đổ "chuỗi khối được chấp nhận rộng rãi" (lời lẽ gốc của Satoshi Nakamoto trong thông báo) dưới các cuộc tấn công của thợ đào (về mặt lý thuyết, điều này là có thể). Nakamoto nói thêm, "Không cần thiết phải giữ lại khả năng không bằng không là có thể sửa đổi nó một lần nữa sau vài tháng; điều đó không được ưa chuộng."

Hệ thống điểm kiểm tra đã giao cho những người bảo trì tương lai một trách nhiệm mới—quyết định chiều cao khối và hàm băm chiến thắng của nó sẽ được mã hóa cứng trong các bản phát hành trong tương lai; điều này đã xảy ra khi Gavin Andresen lãnh đạo dự án Bitcoin.23 Hệ thống điểm kiểm tra này cuối cùng đã bị loại bỏ dần vì bằng chứng công việc khiến việc tái cấu trúc sâu trở nên không khả thi.

Quyền lực to lớn của Satoshi Nakamoto với tư cách là người duy trì và sáng lập dự án đã được thể hiện đầy đủ trong sự cố lỗi tràn số vào tháng 10 năm 2010: vào thời điểm đó, ba giao dịch đã tạo ra 184 tỷ BTC không tồn tại (và lẽ ra không nên tồn tại). Giao dịch này đã cố gắng chuyển một lượng tiền khổng lồ đến mức mã xác thực giao dịch tại thời điểm đó đã "bị tràn trong quá trình cộng", do đó phá vỡ sự đồng thuận.

Ghi chú của người dịch: Mô tả của tác giả ở đây mơ hồ và không chính xác. Trên thực tế, một giao dịch duy nhất đã tạo ra số lượng BTC này, được nhận bởi ba địa chỉ (một trong số đó là địa chỉ của thợ đào trong một giao dịch Coinbase). Mã xác minh giao dịch tại thời điểm đó chỉ đơn giản là trừ tổng số tiền đầu ra khỏi tổng số tiền đầu vào; miễn là kết quả dương (cho thấy số tiền đầu vào lớn hơn số tiền đầu ra), thì giao dịch được chấp nhận. Tuy nhiên, nếu số tiền đầu ra quá lớn, và tổng vượt quá số có thể được biểu diễn bằng một độ dài cố định, dẫn đến kết quả âm. Do đó, bất kể số tiền đầu vào là bao nhiêu, nó luôn luôn được xác minh. Về mặt kỹ thuật, nó không phá vỡ sự đồng thuận (khiến mạng lưới bị chia thành các phần loại trừ lẫn nhau). Xem chú thích của tác giả để biết thêm chi tiết.

Đây là lỗi nổi tiếng nhất trong lịch sử Bitcoin, đôi khi được gọi là "lỗi lạm phát", và có thể nói là lỗ hổng nguy hiểm nhất đối với sự tồn tại của dự án. Nhiều thành viên cộng đồng đã phát hiện ra giao dịch này chỉ vài giờ sau khi nó được khai thác và cảnh báo Satoshi Nakamoto để ông hành động. Với sự giúp đỡ của một số người đóng góp (bao gồm cả Andresen ), Satoshi Nakamoto đã tạo ra bản vá Bitcoin phiên bản 26 , thay đổi mã xác minh liên quan.

Satoshi Nakamoto đã chỉ thị cho các thợ đào chuyển sang phiên bản đã được vá lỗi này và đồng bộ hóa lại chuỗi khối 27 , dẫn đến toàn bộ mạng lưới quay trở lại trạng thái trước khi giao dịch không hợp lệ được xác nhận. Đây là một hard fork, đảo ngược các khối Bitcoin được khai thác trong vòng 19 giờ trước đó. Điều này có thể đại diện cho đỉnh điểm của sự tập trung hóa trong dự án Bitcoin dưới sự lãnh đạo của Satoshi Nakamoto, và là sự tập trung quyền lực vào vai trò người duy trì.

Sau sự cố "lỗi tràn số", Satoshi Nakamoto đã triển khai "Hệ thống Cảnh báo" 28 trong phiên bản 0.3.11. Hệ thống này—và có phần gây tranh cãi—sẽ hiển thị cảnh báo và vô hiệu hóa các chức năng cơ bản trên các node có nguy cơ nghiêm trọng. Hệ thống cảnh báo này chỉ có thể được kích hoạt bằng một thông báo được ký bằng khóa mà chỉ Nakamoto sở hữu. Ông lập luận, "Thà bị hoảng sợ bởi một thời gian ngừng hoạt động ngắn khi node của bạn gặp rủi ro nếu bạn không tạm dừng còn hơn là bị hoảng sợ bởi một tên trộm đã lấy hết toàn bộ khoản đầu tư của bạn." Vài tháng sau, Nakamoto đã vô hiệu hóa hệ thống cảnh báo này trong bản phát hành cuối cùng của mình.

Theo ghi chép của SVN, chỉ có Satoshi Nakamoto là người duy nhất hợp nhất mã nguồn từ các cộng tác viên khác và phát hành chính thức Bitcoin , ít nhất là cho đến khi Gavin Andresen trở thành người bảo trì chính vào ngày 19 tháng 12 năm 2010. Ngay từ ngày 30 tháng 2 năm đó, Andresen đã trực tiếp đóng góp mã nguồn cho Nakamoto; và vào ngày 11 tháng 10, ông đã thực hiện lần commit đầu tiên vào nhánh Trunk của SVN. Vài tháng sau, Nakamoto phát hành phiên bản cuối cùng của dự án Bitcoin: 0.3.19 , và sau đó biến mất khỏi lịch sử.

Tính đến thời điểm viết bài này, hơn 1.200 người đã đóng góp mã nguồn cho dự án Bitcoin Core.

Kỷ nguyên Gavin Andresen

Khi Satoshi Nakamoto ngừng đóng góp cho dự án, Gavin Andresen trở thành người đóng góp tích cực duy nhất có quyền commit. Khi Andresen tăng cường sự tham gia của mình, Malmi giảm bớt hoạt động, khiến Andresen trở thành người bảo trì chính thức. Mặc dù Satoshi Nakamoto chưa bao giờ công khai tuyên bố chuyển giao vai trò này cho Andresen, ông đã gửi một email cho Mike Hearn (một người đóng góp tích cực vào thời điểm đó ) , trong đó có câu nói nổi tiếng: "Tôi còn những việc khác phải làm. Gavin và những người khác sẽ hoàn thành việc này."

“Với sự chấp thuận của Satoshi Nakamoto,” 34 Andresen đã tiếp quản vị trí người đứng đầu nhóm bảo trì dự án Bitcoin, mở rộng đội ngũ bảo trì và bắt đầu chuyển từ Sourceforge sang GitHub 35. Quá trình này mất khá nhiều thời gian. Mãi đến ngày 14 tháng 7 năm 2011, chúng ta mới thấy bản commit đầu tiên, một nhánh từ tài khoản GitHub chính thức của Andresen, được hợp nhất vào dự án Bitcoin 36 , đánh dấu sự hoàn thành của quá trình này.

Không giống như thời Satoshi Nakamoto, việc hợp nhất này được hoàn thành thông qua nền tảng GitHub. Điều này về cơ bản trao cho GitHub.com một mức độ tin tưởng nhất định, đảm bảo rằng họ sẽ không can thiệp vào mã nguồn; trước đây, quá trình này được Satoshi Nakamoto thực hiện thủ công trên máy tính của mình. Điều đáng chú ý là bất kể phương pháp nào hay liệu GitHub có tham gia vào quá trình hợp nhất hay không, sự khác biệt giữa các phiên bản mã nguồn khác nhau đều có thể kiểm tra được vì bản thân dự án là mã nguồn mở. Trong thời đại này, việc hợp nhất mã nguồn có thể được xem xét bởi các nhà phát triển ở cả hai đầu của quy trình trước và sau khi hợp nhất trên GitHub (đại khái là như vậy), mặc dù sự thận trọng kỹ lưỡng này cuối cùng đã dẫn đến việc tạo ra một hệ thống khóa công khai đáng tin cậy. Tuy nhiên, điều này vẫn khởi đầu một xu hướng mới, quyết định cách các dự án Bitcoin sẽ hợp nhất mã nguồn trong ít nhất ba năm tới.

Vào ngày 13 tháng 9 năm 2011, dự án Bitcoin trên nền tảng SourceForge chính thức bị đóng cửa, và GitHub trở thành nền tảng hợp tác mới. Trang dự án Bitcoin cũ trở thành kho lưu trữ. Vì Malmi và Lazloh chủ yếu đóng góp mã nguồn trên SourceForge và không có tài khoản GitHub vào thời điểm đó, quyền commit của họ фактически đã chấm dứt với sự chuyển đổi chính thức này. Hơn nữa, với sự ra đi của Satoshi Nakamoto, tần suất đóng góp của họ đã giảm đi.

Vào ngày 27 tháng 4 năm 2011, phiên bản 0.3.21 được phát hành, phiên bản đầu tiên dưới sự lãnh đạo của Andresen. Đây cũng là phiên bản đầu tiên bao gồm tệp "Readme" chứa thông báo được ký bằng PGP, nêu chi tiết các bản cập nhật, các tệp cài đặt và mã băm đã phát hành, đồng thời bày tỏ lòng biết ơn đối với những người đóng góp. Trong số 16 người đóng góp được đề cử có một số nhà phát triển Bitcoin Core nổi tiếng, chẳng hạn như Luke Dashjr, Matt Corallo, Pieter Wuille và Jeff Garzik.

Trong những năm tiếp theo, có lẽ để phân bổ quyền lực và trách nhiệm mà Gavin đã có được thông qua vai trò người bảo trì, và để lấp đầy khoảng trống do sự ra đi của Satoshi Nakamoto, Malmi và Lazloh để lại, một số người bảo trì mới đã xuất hiện. Chris Moore, sử dụng tên "dooglas," có quyền thực hiện commit từ ngày 21 tháng 1 năm 2011 đến ngày 31 tháng 3 năm 2011; và vẫn là người đóng góp cho dự án kể từ đó.

Vài tháng sau, vào ngày đầu tiên của tháng 6 năm 2011, Pieter Wuille được cấp quyền commit. Wuille đã phát hiện ra Bitcoin vào năm 2010 và nhanh chóng bắt đầu đóng góp mã nguồn cho dự án. Sau khi được cấp quyền commit, Wuille dần trở thành một nhà phát triển Bitcoin Core nổi bật, được kính trọng nhờ nhiều cải tiến nhỏ về hiệu năng, những cải tiến đáng kể về trải nghiệm người dùng và nhiều đóng góp khác. Cho đến ngày nay, Wuille vẫn là người đóng góp nhiều thứ ba cho Bitcoin Core, và tên người dùng GitHub của anh ấy là " sipa ".

sipa

Vài ngày sau (ngày 6 tháng 6), Jeff Garzik trở thành người bảo trì dự án . Garzik đã đóng góp mã nguồn cho dự án Bitcoin từ phiên bản 0.3.21 và sau đó trở thành một nhà phát triển Bitcoin nổi tiếng. Ông đã mang kinh nghiệm của mình từ hệ sinh thái mã nguồn mở Linux vào dự án Bitcoin. Garzik thường được ca ngợi vì đã cải thiện tính ổn định của các ứng dụng khách Bitcoin.

Nhiều năm sau, vào mùa hè năm 2016, sau "nhiều tháng không hoạt động", quyền đóng góp mã của Garzik đã bị thu hồi (theo tài liệu của Chow). Trong những năm mà "cuộc chiến kích thước khối" của Bitcoin đang nóng lên, Garzik đã đứng về phía việc nâng cấp lên các khối lớn hơn; cuộc chiến kích thước khối đã gây ra nhiều tranh luận và mâu thuẫn giữa một số thành viên trong cộng đồng Bitcoin, đây có thể là một lý do khiến hoạt động phát triển của ông giảm sút. Sau đó, một năm sau khi cuộc chiến nổ ra, Garzik cũng dẫn đầu một phong trào phân nhánh thất bại, phiên bản số "Segwit2x".

Ghi chú của người dịch: Để giúp người đọc hiểu rõ hơn về chỉ số "số lượng commit" xuất hiện nhiều lần trong ngữ cảnh, một số giải thích được thêm vào đây.

Các hệ thống quản lý phiên bản như Git và SVN coi mã nguồn phần mềm như một kho lưu trữ mà trạng thái của nó có thể được thay đổi liên tục, đây là nền tảng cho việc hỗ trợ phát triển phân tán. Các nhà phát triển liên tục thêm và xóa mã, điều đó có nghĩa là họ liên tục thay đổi trạng thái của mã nguồn; và mỗi thay đổi trạng thái được đánh dấu bằng một "commit" (là một giá trị băm).

Như đã đề cập trước đó, trong các dự án phát triển mã nguồn mở (vốn dĩ được phân tán), mọi người đóng góp vào việc cập nhật mã nguồn gốc bằng cách "tạo bản sao" (fork), chỉnh sửa cục bộ (tạo một commit mới), và sau đó gửi "Yêu cầu kéo (Pull Request - PR)" đến mã nguồn gốc.

Để tạo điều kiện thuận lợi cho việc làm việc song song, các codebase thường tạo thành nhiều "nhánh". Hơn nữa, các yêu cầu kéo (pull request - PR) này có thể trải qua các sửa đổi tiếp theo sau khi được phát hành (dẫn đến các commit mới); cuối cùng, khi một PR được chấp thuận, người bảo trì sẽ hợp nhất nó (chứa nhiều commit) vào nhánh chính (việc hợp nhất này cũng tạo ra một commit).

Do đó, cái gọi là "số lần commit" đếm số lần người dùng tham gia vào việc sửa đổi trạng thái mã nguồn, chứ không phải số lượng yêu cầu kéo (pull request - PR). Đây là lý do tại sao tác giả đề cập rằng nhiều commit của người bảo trì chủ yếu là các thao tác hợp nhất (từ các PR của người khác). Nói cách khác, con số này phản ánh mức độ tham gia của một người vào quá trình phát triển, chứ không phải số lượng thay đổi mã mà họ đề xuất ban đầu.

Vào ngày 5 tháng 7 năm 2011, Mara van der Laan (khi đó được biết đến với tên "Wladamir") đã giành được quyền quản trị, trở thành người bảo trì chính thức thứ tám của Bitcoin Core. Van der Laan đã hoạt động trên diễn đàn Bitcointalk từ tháng 11 năm 2010 và bắt đầu đóng góp cho dự án Bitcoin vào tháng 5 năm 2011, ban đầu tập trung vào giao diện đồ họa của ứng dụng khách Bitcoin QT, và mang theo mình kinh nghiệm học thuật sâu rộng về đồ họa máy tính. <sup>48 </sup>

Vào ngày 19 tháng 9 năm 2011, Nils Schneider (sử dụng biệt danh "tcatm") đã được cấp quyền commit sau khi thường xuyên đóng góp và tối ưu hóa hiệu năng nền của ứng dụng khách Bitcoin. Trong thời gian làm người bảo trì, ông đã có những đóng góp đáng kể cho việc quốc tế hóa ứng dụng khách: thêm một số bản cập nhật liên quan đến hỗ trợ đa ngôn ngữ <sup>49</sup> ; giám sát việc loại bỏ thư viện phụ thuộc "Crypto++", giảm bớt các phụ thuộc không cần thiết<sup> 50 </sup>. Nils giữ vai trò người bảo trì trong khoảng một năm, với lần commit cuối cùng được thực hiện vào ngày 31 tháng 3 năm 2012<sup> 15 </sup>

Vào ngày 11 tháng 2 năm 2012, Gregory Maxwell (sử dụng bút danh "gmaxwell") lần đầu tiên hợp nhất mã nguồn. Trước đó, ông đã đóng góp nhiều đoạn mã và tích cực tham gia bình luận kỹ thuật trên diễn đàn Bitcointalk trong suốt một năm . Điều này đánh dấu sự khởi đầu sự nghiệp ba năm của ông với tư cách là người bảo trì. Trong thời gian này, Maxwell tập trung chủ yếu vào lớp mạng P2P phía máy khách, cũng như các công việc liên quan đến cơ chế đồng thuận và xác minh. Cho đến ngày nay, ông vẫn được cộng đồng Bitcoin rộng lớn kính trọng và thỉnh thoảng tham gia vào các cuộc thảo luận và tranh luận kỹ thuật. Maxwell đã từ bỏ quyền commit vào tháng 12 năm 2015: khi cuộc chiến kích thước khối leo thang, sự ủng hộ của ông đối với các khối nhỏ đã dẫn đến việc bị quấy rối trực tuyến trên diện rộng.

Nhóm duy trì Bitcoin Core tiếp tục mở rộng trong suốt một năm. Vào ngày 27 tháng 9 năm 2012, Gavin đã công bố giai đoạn tiếp theo trong tầm nhìn cá nhân của ông về tương lai của Bitcoin: "Quỹ Bitcoin". Quỹ này , được mô phỏng theo Quỹ Linux - một ví dụ điển hình cho tầm nhìn của Gavin về hệ điều hành Linux như một dự án mã nguồn mở quy mô lớn thành công - đã thu hút nhiều sự chú ý và ủng hộ, nhưng cũng vấp phải không ít chỉ trích. Trong thông báo, Gavin tuyên bố: "Tôi muốn Quỹ Bitcoin là một tổ chức mở, do các thành viên điều hành, và tôi hy vọng rằng bạn và tổ chức của bạn không chỉ là thành viên mà còn giúp Quỹ đạt được sứ mệnh của mình." Trong vài năm tiếp theo, quỹ đã giúp trả lương cho nhiều người đóng góp và duy trì Bitcoin Core.

Kỷ nguyên Mara van der Laan

Vào tháng 4 năm 2014, Mara van der Laan được Gavin Andresen chọn làm người kế nhiệm ông trong vai trò người duy trì Bitcoin Core, vì Andresen đã quyết định chuyển sang một vai trò mang tính học thuật hơn, mà ông gọi là "Nhà khoa học trưởng". Trong một bài đăng trên blog trên trang web của Bitcoin Foundation, Andresen tuyên bố: "Mara van der Laan đã làm việc toàn thời gian cho Bitcoin Core trong vài tháng nay, nhận được tiền công - một lần nữa xin cảm ơn tất cả các thành viên của Foundation đã đóng góp và tài trợ cho việc phát triển Bitcoin Core - và đã làm rất tốt công việc của mình. Anh ấy đã đồng ý kế nhiệm tôi với tư cách là 'Người duy trì Bitcoin Core'."

Từ đó trở đi, Ven der Laan, sử dụng các tên "Laanwj" và "wumpus," đã dẫn dắt việc phát triển Bitcoin Core trong chín năm. Cho đến nay, ông vẫn là người đóng góp nhiều mã nguồn nhất cho kho mã nguồn "bitcoin" (7419 lần theo thống kê của GitHub - phần lớn là các lần hợp nhất mã). Theo ghi chép của Chow, "vì lý do cá nhân," Ven der Laan đã từ chức khỏi vai trò người bảo trì vào tháng 2 năm 2023.

laanwj

Khi Ven der Laan trở thành người bảo trì, thay đổi đầu tiên mà ông mang lại (và là một trong những thay đổi quan trọng nhất) là việc triển khai hệ thống khóa công khai đáng tin cậy đã đề cập ở trên, được Matt Corallo cam kết vào ngày 20 tháng 12 năm 2014.58 Hệ thống này đã giúp giải quyết tính không minh bạch của vai trò người bảo trì bằng cách thêm một tệp chứa dấu vân tay khóa công khai PGP (cùng với một loạt các công cụ liên quan) 59 vào nhánh chính của cơ sở mã "bitcoin". Một công cụ đảm bảo rằng các cam kết của người bảo trì được ký bằng PGP, trong khi một tập lệnh khác có thể xác minh chữ ký của cam kết so với danh sách các khóa công khai PGP đáng tin cậy.

Vì các khóa công khai này nằm trong nhánh chính của mã nguồn, chỉ những người bảo trì mới có thể thêm và xóa các khóa công khai khỏi tệp kê khai (với chữ ký hợp lệ). Điều này tạo ra một bản ghi trong hệ thống kiểm soát phiên bản của Git. Chúng ta cũng có thể sử dụng các yêu cầu kéo (PR) để thêm và xóa người bảo trì, và những người đóng góp có thể bình luận trên trang PR.

Vào ngày 13 tháng 11 năm 2015, Jonas Schnelli, sử dụng tên người dùng "jonasschnelli," đã được cấp quyền commit. Van der Laan đã giao cho anh ta vai trò người bảo trì thư viện GUI và thông báo điều này trên danh sách gửi thư của bitcoin. Schnelli đã đóng góp mã nguồn cho Bitcoin từ năm 2013, trở thành một trong 10 người đóng góp hàng đầu cho dự án Bitcoin trên GitHub; nhiều commit dường như đã được thực hiện khi anh ta còn là người bảo trì, hợp nhất mã cho kho lưu trữ. Anh ta đã giữ vai trò người bảo trì trong sáu năm trước khi từ bỏ quyền commit vào ngày 21 tháng 10 năm 2021; anh ta đã đăng trên Twitter để thể hiện kinh nghiệm của mình và bày tỏ sự tin tưởng mạnh mẽ vào tương lai của cộng đồng nhà phát triển Bitcoin.

Theo Corallo, vai trò chính của các hệ thống khóa công khai đáng tin cậy là "tránh tin tưởng GitHub" khi hợp nhất mã nguồn của nhà phát triển - một thông lệ phổ biến trong thời kỳ Andresen. Sau đó, người quản lý sẽ hợp nhất mã nguồn cục bộ và cập nhật kho lưu trữ.

jonasschnelli

Ghi chú của người dịch: Về hình thức, có hai dự án trên trang web Github: (1) dự án "Bitcoin", bao gồm thư viện "bitcoin" (có thể biên dịch mã cho phần mềm Bitcoin Core ) và thư viện "BIPs"; (2) dự án "Bitcoin Core", bao gồm thư viện "GUI" đã đề cập ở trên (có thể biên dịch phiên bản giao diện đồ họa của Bitcoin Core gọi là Bitcoin QT ), cũng như các thư viện mã khác.

Vào ngày 13 tháng 4 năm 2016, Marco Falke (tên người dùng "maflcko") được cấp quyền commit. Van der Laan đã thông báo quyết định này trên danh sách gửi thư của Bitcoin, nói rằng, "Tôi xin thông báo Marco Falke là người bảo trì 'Kiểm thử & Đảm bảo chất lượng' mới cho Bitcoin Core." Falke tiếp tục đóng góp mã nguồn cho Bitcoin Core cho đến năm 2023, khi ông từ bỏ quyền commit và vị trí người bảo trì vì lý do cá nhân.

Chưa đầy một tháng sau, vào ngày 6 tháng 5 năm 2016, quyền lập trình của Gavin Andresen đã bị thu hồi. Quyết định này được đưa ra bởi Van der Laan, 65 sau khi Andresen ủng hộ Criag Wright (người hiện được biết đến rộng rãi là kẻ mạo danh Satoshi Nakamoto). Vào thời điểm đó, nhiều người trong cộng đồng Bitcoin đã nghi ngờ những tuyên bố của Wright, và lập trường của Andresen nhanh chóng được tiết lộ là kết quả của sự lừa dối từ phía Wright. Vài tháng trước đó, Mike Hearn, một người đóng góp cho một dự án Bitcoin được cho là có mối quan hệ mật thiết với Andresen, đã ủng hộ trên một podcast rằng Andresen nên thu hồi quyền lập trình của tất cả những người bảo trì khác, trở thành một "nhà độc tài nhân từ" của dự án Bitcoin, 66 như nhiều dự án mã nguồn mở khác đã làm. Andresen đã không nghe theo lời khuyên của Hearn, nhưng sự việc này đã làm nổi bật bầu không khí căng thẳng trong cộng đồng Bitcoin. Khi cuộc chiến khối bắt đầu, Wright cũng tham gia vào.

Nhiều năm sau, Andresen bày tỏ sự hối tiếc về những sự kiện này, nói rằng, "Giờ tôi biết rằng việc tin tưởng Craig Wright quá nhiều là một sai lầm. Tôi hối tiếc vì đã tham gia vào trò chơi 'tìm ra ai là (và ai không phải là) Satoshi Nakamoto'. Tôi sẽ không bao giờ chơi trò đó nữa."

Nhiều năm sau, một người đóng góp khác đã giành được quyền commit. Vào ngày 4 tháng 12 năm 2018, Samuel Dobson (tên người dùng "MeshCollider") được Van der Laan đề cử làm người bảo trì mô-đun ví. Dobson đã đóng góp mã nguồn cho dự án Bitcoin ít nhất từ mùa hè năm 2017, và trong suốt sự nghiệp là một nhà phát triển Bitcoin, ông đã thực hiện hơn 300 commit, chủ yếu tập trung vào mô-đun ví Bitcoin Core. Để theo đuổi bằng tiến sĩ, Dobson đã từ bỏ quyền commit và vai trò người bảo trì vào tháng 2 năm 2023.

Vào ngày 7 tháng 6 năm 2019, Michael Ford được cấp quyền commit; ông là một trong những người đầu tiên thuộc thế hệ người duy trì dự án mới nhất vẫn còn hoạt động cho đến ngày nay. Tên người dùng của Ford là "Fanquake", và ông có thể là người đóng góp đầu tiên được cấp quyền commit thông qua sự đồng thuận nội bộ (được đề cử tại hội nghị nhà phát triển Bitcoin Core ở Amsterdam). Sau giai đoạn này, việc cấp quyền commit dựa trên sự đồng thuận của người đóng góp trở thành một xu hướng, cho thấy sự chuyển dịch hướng tới phi tập trung hóa trong phát triển dự án Bitcoin; các cuộc họp được tổ chức ở nhiều địa điểm và môi trường khác nhau , thậm chí thông qua IRC (Phòng trò chuyện Internet).

Ford đã đóng góp mã nguồn cho dự án Bitcoin từ tháng 2 năm 2012, điều này khiến ông trở thành một trong những người bảo trì kỳ cựu nhất trong lịch sử dự án. Theo GitHub, Ford có 4920 lượt commit, đứng thứ hai về số lượng commit tính đến nay; nhiều trong số các commit này là hợp nhất và cập nhật duy trì từ các cộng tác viên khác.

trận động đất

Kỷ nguyên đồng thuận của người đóng góp

Vào ngày 21 tháng 1 năm 2021, Van der Laan đã đăng một bài viết trên blog (73) phá vỡ truyền thống do Satoshi Nakamoto và Andresen thiết lập—bằng cách bổ nhiệm một người dẫn đầu bảo trì cho việc phát triển Bitcoin Core. Trong bài viết này, Van der Laan tuyên bố rằng cô sẽ dần dần ủy quyền nhiều trách nhiệm của người dẫn đầu bảo trì cho người khác, giải thích rằng Bitcoin đã trở thành một dự án lớn đến mức mô hình do Satoshi Nakamoto và Andresen thiết lập không còn khả thi nữa, và đã đến lúc phải phân quyền phát triển Bitcoin Core.

Van der Laan đã vạch ra một loạt trách nhiệm mà những người khác nên gánh vác và cung cấp một lộ trình để làm cho quy trình phát hành phần mềm của dự án Bitcoin trở nên khó bị kiểm duyệt hơn. Ví dụ bao gồm việc chuyển quyền sở hữu trang web Bitcoincore.org cho một tổ chức thay vì để bà kiểm soát, đồng thời khuyến khích việc tạo ra các trang web sao chép; phân phối các phiên bản mới của tệp cài đặt thông qua torrent (hoặc thậm chí IPFS); đặt câu hỏi về Github.com và kêu gọi tìm kiếm các nền tảng đóng góp mã nguồn thay thế; một lược đồ chữ ký ngưỡng để sử dụng giữa những người bảo trì, cho phép họ ký các phiên bản phát hành thông qua một số hình thức đồng thuận mật mã, thay vì chỉ có một người ký PGP cuối cùng cho một phiên bản; và vân vân.

Bài viết này thực chất đánh dấu sự kết thúc vai trò của Van der Laan với tư cách là người bảo trì chính và là một cột mốc tượng trưng cho sự trưởng thành của dự án Bitcoin, chỉ vài tháng sau khi phát hành phiên bản 0.20.0 và vài ngày trước khi phát hành phiên bản 0.21.0.

Hannadii Stepanov (tên người dùng "hebasto") đã được cấp quyền commit vào ngày 19 tháng 3 năm 2021, trở thành người bảo trì thư viện giao diện người dùng đồ họa (GUI) của ứng dụng Bitcoin. Stepanov đã đóng góp mã nguồn cho Bitcoin Core từ tháng 8 năm 2018, tích lũy hơn một nghìn lượt commit trước khi trở thành người bảo trì, xếp thứ 5 trên GitHub về số lượt commit cho dự án Bitcoin, với tổng cộng 2070 lượt commit cho đến nay. Stepanov vẫn là người bảo trì tại thời điểm viết bài này.

hebsto

Ava Chow đã có được quyền thực hiện commit (77) vào ngày 12 tháng 12 năm 2020, trở thành người bảo trì mô-đun ví; cô ấy đã đóng góp mã (78 ) kể từ tháng 1 năm 2016. Tên người dùng của cô ấy là "achow101", và cô ấy là một người đóng góp nổi tiếng cho cộng đồng phát triển Bitcoin, những đóng góp của cô ấy không chỉ giới hạn ở các commit trên GitHub mà còn bao gồm nghiên cứu lịch sử sâu rộng về những người bảo trì Bitcoin Core. Chow cũng được biết đến với việc phát trực tiếp quá trình đánh giá mã Bitcoin Core (79) của mình trên Twitch; luồng phát trực tiếp này đã thu hút một lượng khán giả đáng kể và thúc đẩy giáo dục công nghệ Bitcoin. Chow xếp thứ tư trên GitHub với 2198 commit và vẫn sở hữu quyền thực hiện commit tại thời điểm viết bài này.

achow101

Gloria Zhao được cấp quyền commit vào ngày 7 tháng 8 năm 2022 và được đề cử bởi sự đồng thuận của người đóng góp ( số 80) . Vai trò của cô là người duy trì chiến lược nhóm giao dịch (số 81 ). Zhao bắt đầu đóng góp mã nguồn vào tháng 3 năm 2020 và đã thực hiện ít nhất 200 lần commit trước khi được cấp quyền commit. Hiện tại, cô đứng thứ 9 với 777 lần commit. Zhao vẫn là người duy trì cho đến ngày nay.

glozow

Russ Yanofsky đã có được quyền cam kết vào ngày 10 tháng 6 năm 2023 (83) , được đề cử bởi sự đồng thuận của người đóng góp (84) , và vai trò của anh ấy là người duy trì giao diện. Russ chuyên về tính mô đun và công việc đa luồng, điều này đã giúp anh ấy có được vai trò người duy trì. Anh ấy đã đóng góp mã từ tháng 10 năm 2016 (85) , với tổng cộng 970 lần cam kết cho đến nay, xếp hạng thứ 7. Tên người dùng của Yanofsky là "rynofsky", và anh ấy vẫn là người duy trì.

rynofsky

Tài liệu tham khảo

1. https://www.metzdowd.com/pipermail/cryptography/2008-November/014863.html

2. https://Nakamoto.nakamotoinstitute.org/emails/cryptography/1/

3. https://web.archive.org/web/20090106201347/http://sourceforge.net/projects/bitcoin/

4. https://www.coindesk.com/markets/2020/11/26/previously-unpublished-emails-of-Nakamoto-nakamoto-present-a-new-puzzle

5. https://www.ofnumbers.com/2018/10/01/interview-with-ray-dillinger/

6. https://bitcoin.stackexchange.com/questions/99674/how-do-devs-decide-who-should-have-commit-access-what-is-the-process/99676#comment112930_99676

7. https://web.archive.org/web/20230406134017/http://gavinandresen.ninja/Nakamoto

8.

Nguồn
Tuyên bố từ chối trách nhiệm: Nội dung trên chỉ là ý kiến của tác giả, không đại diện cho bất kỳ lập trường nào của Followin, không nhằm mục đích và sẽ không được hiểu hay hiểu là lời khuyên đầu tư từ Followin.
Thích
Thêm vào Yêu thích
Bình luận