7.2. Phần mềm Core Bitcoin
Bitcoin Core là một phần mềm mã nguồn mở là tâm điểm của các cuộc thảo luận và tranh luận về các quy tắc của Bitcoin. Phần mềm được cấp phép theo giấy phép MIT, đây là giấy phép mã nguồn mở rất dễ sử dụng. Nó cho phép phần mềm được sử dụng cho hầu hết mọi mục đích miễn là nguồn được phân bổ và giấy phép MIT không bị tước bỏ. Bitcoin Core là phần mềm Bitcoin được sử dụng rộng rãi nhất và ngay cả những người không sử dụng nó cũng có xu hướng làm theo các định nghĩa của nó về các quy tắc Bitcoin. Đó là, những người xây dựng phần mềm Bitcoin thay thế thường bắt chước các phần xác định quy tắc của phần mềm Bitcoin Core—những phần kiểm tra tính hợp lệ của các giao dịch và khối.
Đề xuất cải tiến Bitcoin
Bất kỳ ai cũng có thể đóng góp các cải tiến kỹ thuật thông qua “yêu cầu kéo” cho Bitcoin Core, một quy trình quen thuộc trong thế giới phần mềm nguồn mở. Nhiều thay đổi quan trọng hơn, đặc biệt là sửa đổi giao thức, sử dụng một quy trình được gọi là “Đề xuất cải tiến Bitcoin” (BIP). Đây là những đề xuất chính thức cho những thay đổi đối với Bitcoin. Thông thường, một BIP bao gồm một đặc tả kỹ thuật cho một thay đổi được đề xuất cũng như một cơ sở lý luận cho nó. Vì vậy, nếu bạn có ý tưởng về cách cải thiện Bitcoin bằng cách thực hiện một số thay đổi kỹ thuật, bạn nên viết một trong những tài liệu này và xuất bản nó như một phần của loạt bài BIP và sau đó sẽ bắt đầu một cuộc thảo luận trong cộng đồng về những gì cần làm. Mặc dù quy trình chính thức mở cho bất kỳ ai, nhưng có một đường cong học tập để tham gia, giống như đối với bất kỳ dự án mã nguồn mở nào.
BIP được xuất bản trong một loạt bài được đánh số. Mỗi loạt đều có một nhà vô địch, nghĩa là một tác giả truyền giáo ủng hộ nó, điều phối cuộc thảo luận và cố gắng xây dựng sự đồng thuận trong cộng đồng để tiếp tục hoặc thực hiện đề xuất cụ thể của mình.
Những điều trên áp dụng cho các đề xuất thay đổi công nghệ. Các BIP khác hoàn toàn là thông tin và tồn tại để phổ biến kiến thức về Bitcoin hoặc để tiêu chuẩn hóa một số phần của giao thức trước đây chỉ được chỉ định trong mã nguồn. Tuy nhiên, các BIP khác được định hướng theo quy trình và thảo luận về cách mọi thứ nên được quyết định trong cộng đồng Bitcoin.
Tóm lại, Bitcoin có một cuốn sách quy tắc cũng như một quy trình để đề xuất, chỉ định và thảo luận về những thay đổi quy tắc, cụ thể là BIP.
Nhà phát triển cốt lõi Bitcoin
Để hiểu vai trò của phần mềm Bitcoin Core đòi hỏi bạn phải hiểu vai trò của các nhà phát triển Bitcoin Core. Mã ban đầu được viết bởi Satoshi Nakamoto, người mà chúng ta sẽ thảo luận trong Phần 7.4. Nakamoto không còn hoạt động; thay vào đó, một nhóm các nhà phát triển duy trì Bitcoin Core. Hàng trăm nhà phát triển đã đóng góp mã cho dự án, nhưng chỉ một số ít có quyền truy cập “cam kết” trực tiếp vào kho lưu trữ Core. Các nhà phát triển Core dẫn đầu nỗ lực tiếp tục phát triển phần mềm và chịu trách nhiệm về những gì mã được đưa vào các phiên bản mới của Bitcoin Core.
Những người này có sức mạnh như thế nào? Theo một nghĩa nào đó, họ rất mạnh mẽ, bởi vì bạn có thể tranh luận rằng bất kỳ quy tắc nào thay đổi đối với mã mà họ thực hiện sẽ được vận chuyển trong Bitcoin Core và sẽ được tuân theo mặc định. Đây là những người có thể viết vào sổ quy tắc trên thực tế của Bitcoin. Theo một nghĩa khác, họ không mạnh mẽ chút nào. Bởi vì nó là phần mềm mã nguồn mở, bất kỳ ai cũng có thể sao chép và sửa đổi nó (tức là rẽ nhánh phần mềm bất kỳ lúc nào), và vì vậy nếu các nhà phát triển chính bắt đầu hành xử theo cách mà cộng đồng không thích, thì cộng đồng có thể đi theo một hướng khác.
Theo một nghĩa nào đó, các nhà phát triển hàng đầu đang dẫn đầu cuộc diễu hành. Họ đang ở phía trước, diễu hành, và đoàn diễu hành thường sẽ theo sau họ khi họ rẽ vào một góc. Nhưng nếu họ cố gắng dẫn cuộc diễu hành đi xuống một con đường thảm khốc, thì các thành viên diễu hành có thể quyết định đi theo một hướng khác. Các nhà phát triển chính có thể thúc giục cộng đồng, nhưng họ không có quyền lực chính thức để buộc mọi người làm theo họ nếu họ đưa hệ thống đi theo hướng kỹ thuật mà cộng đồng không thích.
Hãy xem xét những gì bạn với tư cách là người dùng của hệ thống có thể làm nếu bạn không thích cách các quy tắc đang có xu hướng hoặc cách nó đang được chạy và so sánh nó với một loại tiền tệ tập trung như tiền tệ fiat. Trong một loại tiền tệ tập trung nếu bạn không thích những gì đang diễn ra, bạn có quyền thoát ra, tức là bạn có thể ngừng sử dụng nó. Bạn sẽ phải cố gắng bán bất kỳ loại tiền tệ nào bạn nắm giữ và bạn có thể phải chuyển đến một nơi nào đó với một loại tiền tệ fiat khác. Với một loại tiền tệ tập trung, chọn không tham gia thực sự là lựa chọn thay thế duy nhất của bạn để tham gia.
Với Bitcoin, bạn chắc chắn có quyền thoát, nhưng vì nó hoạt động như một hệ thống mã nguồn mở, nên bạn cũng có quyền phân nhánh các quy tắc. Điều đó có nghĩa là bạn và một số bạn bè và đồng nghiệp của bạn có thể quyết định rằng bạn muốn hoạt động theo một bộ quy tắc khác và bạn có thể tách các quy tắc và đi theo hướng khác với các nhà phát triển chính. Quyền fork mang lại nhiều quyền lực hơn cho người dùng hơn là quyền thoát ra, và do đó cộng đồng có nhiều quyền lực hơn trong một hệ thống mã nguồn mở như Bitcoin hơn là trong một hệ thống tập trung thuần túy. Vì vậy, mặc dù các nhà phát triển chính có thể trông giống như một thực thể tập trung kiểm soát mọi thứ, nhưng trên thực tế, họ không có quyền lực mà một người quản lý hoặc chủ sở hữu phần mềm hoàn toàn tập trung sẽ có.
Forks trong các quy tắc
Một cách để phân tách phần mềm và các quy tắc là bắt đầu một chuỗi khối mới với một khối gốc mới. Đây là một tùy chọn phổ biến để tạo altcoin, mà chúng ta sẽ thảo luận trong Chương 10. Nhưng bây giờ chúng ta hãy xem xét một loại fork khác trong các quy tắc, trong đó những người fork cũng quyết định fork chuỗi khối.
HÌNH 7.2. Một rẽ nhánh trong tiền tệ. Nếu một lần fork trong các quy tắc dẫn đến một đợt hard fork trong chuỗi khối, thì bản thân tiền tệ sẽ phân tách và sẽ dẫn đến kết quả hai loại tiền tệ mới.
Nếu bạn nhớ lại sự phân biệt giữa hard fork và soft fork từ Chương 3, chúng ta đang nói về một hard fork ở đây. Tại thời điểm có bất đồng về các quy tắc, một fork sẽ xảy ra trong chuỗi khối, dẫn đến hai nhánh. Một nhánh hợp lệ theo bộ quy tắc A nhưng không hợp lệ theo bộ quy tắc B và ngược lại. Một khi các thợ đào hoạt động theo hai bộ quy tắc tách biệt, chúng không thể quay lại với nhau, bởi vì mỗi nhánh sẽ chứa các giao dịch hoặc khối không hợp lệ theo bộ quy tắc khác (Hình 7.2).
Chúng ta có thể nghĩ về loại tiền tệ đã tồn tại cho đến khi fork là Bitcoin—Bitcoin hạnh phúc lớn mà mọi người đều đồng ý. Sau đợt fork, cứ như thể có hai loại tiền mới xuất hiện, A-coin tương ứng với bộ quy tắc A và B-coin tương ứng với bộ quy tắc B. Tại thời điểm fork, mọi người sở hữu một bitcoin sẽ nhận được một A-coin và một B-coin. Kể từ thời điểm đó, A-coin và B-coin hoạt động như các loại tiền tệ riêng biệt và chúng có thể hoạt động độc lập. Hai nhóm có thể tiếp tục phát triển các quy tắc của họ theo những cách khác nhau.
Chúng ta nên nhấn mạnh rằng không chỉ phần mềm, hoặc các quy tắc, hoặc phần mềm thực hiện các quy tắc được phân nhánh—bản thân tiền tệ đã được phân nhánh. Đây là một sự kiện thú vị có thể xảy ra trong tiền điện tử nhưng không thể xảy ra với tiền tệ truyền thống, nơi mà tùy chọn fork không có sẵn cho người dùng. Theo hiểu biết của chúng ta, cả Bitcoin hay bất kỳ altcoin nào đều chưa từng fork theo cách này, nhưng đó là một khả năng hấp dẫn.
Làm thế nào mọi người có thể phản ứng với một rẽ nhánh như vậy? Nó phụ thuộc vào lý do tại sao fork xảy ra. Trường hợp đầu tiên là nơi fork không nhằm mục đích bất đồng về các quy tắc, mà thay vào đó là một cách để bắt đầu một altcoin. Ai đó có thể bắt đầu một altcoin bằng cách phân nhánh chuỗi khối của Bitcoin nếu họ muốn bắt đầu với một bộ quy tắc tương tự như Bitcoin. Điều này không thực sự gây ra vấn đề cho cộng đồng—altcoin đi theo cách riêng của nó, các chi nhánh cùng tồn tại một cách hòa bình và một số người sẽ thích sử dụng bitcoin trong khi những người khác sẽ thích altcoin hơn. Nhưng như chúng ta đã nói trước đó, theo như chúng ta biết, không ai đã từng bắt đầu một altcoin bằng cách fork Bitcoin hoặc chuỗi khối của altcoin hiện có khác. Họ luôn bắt đầu với một khối genesis mới.
Trường hợp thú vị là nếu rẽ nhánh phản ánh cuộc chiến giữa hai nhóm về những gì tương lai của Bitcoin nên—nói cách khác, là một cuộc nổi dậy trong cộng đồng Bitcoin, nơi một nhóm con quyết định phá bỏ, bởi vì họ nghĩ rằng họ có ý tưởng tốt hơn về cách hệ thống nên được vận hành. Trong trường hợp đó, hai chi nhánh là đối thủ của nhau và sẽ tranh giành thị phần. Mỗi loại tiền A và B sẽ cố gắng thuyết phục nhiều thương gia chấp nhận nó và nhiều người mua nó hơn. Mỗi đồng tiền sẽ muốn được coi là “Bitcoin thực”. Có thể có một cuộc chiến quan hệ công chúng, nơi mỗi bên tuyên bố tính hợp pháp và miêu tả bên kia như một nhóm chia nhỏ kỳ lạ.
Kết quả có thể xảy ra là một nhánh cuối cùng sẽ giành chiến thắng và nhánh kia sẽ tàn lụi. Những loại cuộc thi này có xu hướng nghiêng về một hướng. Một khi một trong hai đồng tiền này được coi là hợp pháp hơn và chiếm được thị phần lớn hơn, thì hiệu ứng mạng lưới sẽ chiếm ưu thế và đồng tiền kia trở thành một loại tiền tệ thích hợp và cuối cùng sẽ biến mất. Bộ quy tắc và cấu trúc quản trị của người chiến thắng sẽ trở thành bộ quy tắc và cấu trúc quản trị trên thực tế của Bitcoin.