“Libbitcoinkernel” là một bản nâng cấp face-lift code Bitcoin đang được tiến hành và có ảnh hưởng sâu rộng, có khả năng giúp các nhà phát triển thử nghiệm thay đổi đối với Bitcoin dễ dàng hơn.
Mục tiêu của dự án đầy tham vọng này là gỡ rối code Bitcoin Core – phần mềm chính làm nền tảng cho Bitcoin để phần lớn code “quan trọng về bảo mật” được tách ra khỏi phần còn lại. Bằng cách đó, phát minh có thể mở ra con đường dẫn đến những cải tiến mới cho Bitcoin.
Nâng cấp gỡ rối code này giúp công việc của các nhà phát triển trở nên thuận lợi hơn và những thay đổi tiềm năng cuối cùng cũng sẽ lan tỏa đến người dùng. Các nhà phát triển có thể viết ra các tính năng mới càng nhanh (cho dù là công cụ về quyền riêng tư, bảo mật hay ví dễ sử dụng hơn) thì người dùng càng có thể sử dụng chúng nhanh hơn.
Libbitcoinkernel có một cái tên dài dòng và mang nét bí ẩn vì ý tưởng cuối cùng sẽ là một thư viện mà các nhà phát triển có thể sử dụng. Nhưng ngay cả khi đặc biệt hướng tới các nhà phát triển, nó có thể mang lại hệ quả rộng lớn hơn cho vũ trụ BTC.
Nhà phát triển Bitcoin Carl Dong – người tiên phong của dự án chia sẻ:
“Điều thực sự thu hút tôi dành thời gian cho Libbitcoinkernel là khi tôi nhận ra nó có thể là một giải pháp kỹ thuật cho một số rào cản xã hội của Bitcoin Core”.
Dong hiện tại đã lùi bước, nhường cho nhà phát triển Sebastian Kung được Spiral hậu thuẫn, cộng tác viên kỳ cựu của Bitcoin Core Cory Fields và những người khác nắm quyền. Kung tin rằng Libbitcoinkernel là một trong những dự án có ảnh hưởng nhất đối với Bitcoin đang được thực hiện hiện nay.
Tránh “kịch bản ác mộng”
Để hiểu về Libbitcoinkernel, trước hết phải tìm hiểu code “đồng thuận”. Code đồng thuận là code quan trọng về bảo mật trong Bitcoin Core, phần mềm node cơ bản chính của Bitcoin. Đây là code giữ tất cả các node trong mạng đồng thuận với nhau.
Nếu một nửa mạng tuân theo một số quy tắc, trong khi nửa còn lại tuân theo các quy tắc hơi khác, điều này có thể dẫn đến “hard fork” không chủ ý, trong đó mạng thực sự bị chia thành hai. “Đó là kịch bản ác mộng khiến các nhà phát triển Bitcoin phải thức trắng đêm”, Dong nói trong một bài thuyết trình video giải thích công việc của mình với Libbitcoinkernel.
Vấn đề là code đồng thuận bị rối với tất cả phần còn lại của code Bitcoin Core. Đây là một vấn đề khó khăn đối với các nhà phát triển đang cố gắng thực hiện thay đổi vì không phải lúc nào họ cũng dễ dàng phát hiện ra khi họ chạm vào một đoạn code quan trọng về mặt bảo mật. Và ngay cả khi họ biết, có thể phải mất một thời gian để giải quyết.
Mục tiêu của Libbitcoinkernel là trích xuất từ từ tất cả code này vào một thư viện riêng, vì vậy các nhà phát triển làm việc trên các phần khác của code không cần phải lo lắng khi xem xét nó.
Nếu các nhà phát triển có thể dành ít thời gian hơn để cố gắng đảm bảo họ không vô tình chọc phải bất kỳ quả mìn nào trong code đồng thuận, thì họ có thể dành nhiều thời gian cho các tính năng BTC thú vị hơn hoặc sửa lỗi.
“Điều này giúp các nhà phát triển đưa ra đánh giá tập trung hơn về hơn đồng thuận quan trọng trong khi bớt lo lắng về phần còn lại của Bitcoin Core. Nó cũng cho phép các nhà phát triển lần đầu tiên nói về nội dung của code đồng thuận như một thực thể được xác định rõ ràng”, Kung nói.
Mục tiêu “hào nhoáng”: Nhiều máy khách Bitcoin
Ngoài ra còn có một mục tiêu dài hạn thứ hai có thể đạt được với sự trợ giúp của Libitcoinkernel. Bitcoin Core là phần triển khai chính của code Bitcoin. Người dùng chạy nó để kết nối với mạng Bitcoin và để xác minh các giao dịch.
Nhưng điều gì sẽ xảy ra nếu có những lựa chọn khác ngoài Bitcoin Core? Nếu đây là một lựa chọn, các nhà phát triển sẽ có cách thử nghiệm tính năng mới dễ dàng hơn. Dong giải thích:
“Việc triển khai cũng có thể ưu tiên các tính năng khác nhau để phục vụ người dùng mục tiêu tốt hơn”.
Thứ hai, nhiều triển khai Bitcoin có thể tăng khả năng phục hồi mạng. Cụ thể, nếu một triển khai bị lỗi không liên quan đến đồng thuận ảnh hưởng, thì các triển khai còn lại có thể không bị cùng lỗi ảnh hưởng, giữ cho Bitcoin nguyên vẹn. Điều này có thể thúc đẩy phân cấp Bitcoin, tức là toàn bộ M.O.
Nhưng để có được nhiều máy khách không phải là chuyện đơn giản. Nếu không có Libbitcoinkernel, nhiều nhà phát triển BTC bày tỏ lo ngại về việc phải có nhiều triển khai. Theo đó, vấn đề quay trở lại với code đồng thuận rối rắm. Trong trường hợp có “Bitcoin B” cố gắng sao chép code của Bitcoin Core. Nếu các nhà phát triển Bitcoin B mắc sai lầm khi triển khai lại code này, mạng có thể bị chia thành hai trong một hardfork không chủ ý.
Libitcoinkernel có thể thay đổi điều này. Bằng cách trích xuất code đồng thuận vào một thư viện riêng, Bitcoin Core và Bitcoin B có thể sử dụng cùng một code đồng thuận. Không còn cần phải lo lắng về những khác biệt khó nhận thấy trong đồng thuận gây cản trở hai quá trình triển khai.
Dong cho biết:
“Việc có một thư viện đồng thuận có thể tái sử dụng sẽ cho phép mọi người xây dựng các triển khai Bitcoin thay thế, vốn dĩ trước đây được cho là quá nguy hiểm vì những khả năng không tương thích về đồng thuận tiềm ẩn mà hiện đã bị loại bỏ”.
Học hỏi từ những nỗ lực
Trích xuất code đồng thuận từ phần còn lại không phải là một ý tưởng mới. Ngay từ đầu trong lịch sử Bitcoin, một số code đồng thuận đã được trích xuất, nhưng dự án vẫn chưa hoàn thành. Sau đó, nỗ lực hồi sinh dự án vào năm 2016 có lẽ đã “sụp đổ dưới sức nặng tham vọng của chính nó”, như Dong đã nói.
Với ý nghĩ đó, Dong và Kung đã thực hiện cách tiếp cận lặp đi lặp lại nhiều hơn trong việc trích xuất code đồng thuận từ phần còn lại, theo cách “chú ý quy mô công việc không giới hạn”.
Cùng với đó, dự án trở thành một dự án gồm nhiều bước, kéo dài nhiều năm mà những độc giả cực kỳ tò mò có thể theo dõi trên GitHub, nhà phát triển nguồn mở Mecca. Các nhà phát triển của dự án đã đóng góp hàng chục pull request (đề xuất thay đổi đối với Bitcoin Core) và vẫn còn nhiều việc phải làm.
Các nhà phát triển dự đoán toàn bộ dự án sẽ trải qua một số chu kỳ phát hành. Dong nói:
“Dự án này là một cuộc chạy marathon và đó là một chặng đường dài”.
Minh Anh
Theo Decrypt