#dusk $DUSK @Dusk
Trước đây, tôi từng cho rằng một khi mã của blockchain đã được công khai mã nguồn, thì số lượng các nhóm triển khai nó không thực sự quan trọng. Giao thức là giao thức. Nếu các quy tắc được công khai, bất kỳ ai cũng có thể viết một phiên bản thứ hai, và thực tế là chưa ai cảm thấy cần đến chi tiết đó.
Sau đó tôi đi tìm phần mềm node của Dusk và phát hiện ra một điều đã thay đổi cách tôi đọc toàn bộ dự án.
Có một client duy nhất. Rusk, được viết bằng Rust. Bản cài đặt trước đó bằng Go vẫn còn trên GitHub, được công khai đánh dấu là đã không còn được duy trì/không khuyến nghị dùng và không còn cập nhật, kèm theo ghi chú hướng mọi người chuyển sang Rusk.
Vì vậy, mọi node trên mạng đều chạy cùng một mã.
Điều này đáng để suy ngẫm, vì phương án thay thế tồn tại vì một lý do. Ethereum khuyến khích nhiều client độc lập để khi có một lỗi ở một client thì chuỗi vẫn không bị dừng — các client còn lại vẫn tiếp tục tạo khối cho đến khi lỗi được khắc phục. Cách làm này tốn kém, chậm và được cố ý tạo ra sự trùng lặp. Sự trùng lặp chính là tính năng an toàn.
Với một client duy nhất, lỗi đồng thuận không dừng một phần. Nó là cả mạng.
Tôi không nghĩ đây là một sai lầm. Với một nhóm nhỏ, một client xuất sắc sẽ là cách sử dụng tài nguyên tốt hơn rất nhiều so với hai client trung bình, và Rusk đã được kiểm toán nhiều lần — thư viện node, lớp đồng thuận, giao thức mạng, tất cả đều được các công ty bên ngoài xem xét. Việc tập trung nguồn lực là một quyết định kỹ thuật có thể bảo vệ.
Nhưng nó cũng có nghĩa là một chuỗi được thiết kế cho thanh toán được quản lý hiện chưa có đa dạng hóa client. Thứ mà cơ sở hạ tầng thị trường truyền thống luôn ám ảnh — dự phòng, các nhánh hỏng độc lập, không có điểm đơn lẻ gây hỏng hóc — thì hiện vẫn chưa có.
Điều tôi không thể biết từ bên ngoài là liệu một phiên bản triển khai thứ hai có được lên kế hoạch hay không, hay liệu nó được xem là không cần thiết ở giai đoạn hiện tại của vòng đời mạng. Cả hai câu trả lời đều hợp lý. Tôi chỉ muốn biết đó là câu nào.
Từ đây, tôi ngừng đọc cụm “open source” như thể nó tự động đồng nghĩa với khả năng chống chịu. Mã nguồn mở là một lời mời. Đa dạng hóa client là điều xảy ra khi ai đó chấp nhận điều đó.