Tôi cứ quay lại một chi tiết trong thiết kế của Newton mà thoạt nhìn có vẻ nhỏ, cho đến khi bạn ngồi với nó. Trước khi các nhà khai thác có thể tạo ra một chữ ký chung, giao thức sẽ loại bỏ một thứ gì đó. Không phải ý kiến, không phải lợi ích, mà chính sự xác thực mà mỗi nhà khai thác đã tạo ra khi họ truy xuất dữ liệu chính sách. Đầu ra được gọi là bản tóm tắt đồng thuận (consensus digest), được tạo ra bằng cách xóa về 0 đúng những trường làm cho phần đóng góp của từng nhà khai thác trở nên khác biệt. Mọi người đều ký một phiên bản giống hệt, đã bị “rỗng hóa” của cùng một sự kiện.
Tôi không nghĩ đó là một thiếu sót. Tôi nghĩ đó có thể là cơ chế thực sự đáng để nghiên cứu.
Newton sử dụng chữ ký BLS để hàng trăm nhà vận hành có thể tạo ra một bằng chứng gọn thay vì hàng trăm bằng chứng tách rời. Nhưng việc gom nhóm bằng BLS chỉ hoạt động nếu mọi người ký đều đưa tên của họ vào đúng cùng một thông điệp. Các nhà vận hành tự mình kiểm tra dữ liệu chính sách bằng các khóa của riêng họ, và mỗi xác nhận đó là khác nhau, vì nó mang một chữ ký riêng. Nếu giao thức cố gắng gom nhóm dựa trên bản ghi đầy đủ, trung thực, thì các phép toán đơn giản là không thể khớp. Vì vậy Newton tính hai digest thay vì một. Một digest đồng thuận, trong đó các trường xác nhận được làm rỗng, được ký tập thể và được kiểm tra trên chuỗi thông qua một phương trình ghép cặp (pairing). Một digest đầy đủ, chứa mọi xác nhận gốc, được lưu trong bộ nhớ hợp đồng để dùng sau, trong trường hợp ai đó cần thách thức kết quả.
Nói theo thực tế thì điều đó có nghĩa là sự đồng thuận không được khám phá ở đây; nó được xây dựng. Các nhà vận hành không hội tụ tới một sự hiểu biết chung về dữ liệu. Họ hội tụ tới một hình dạng chung của dữ liệu, sau khi đã loại bỏ những phần có thể khiến họ bất đồng. Bức tranh đầy đủ vẫn tồn tại, nhưng chỉ như bằng chứng, chứ không phải là thứ được đồng thuận.
Có điều gì đó gần như mang tính hành chính trong chuyện đó. Một ủy ban không tranh luận các chú thích; họ bỏ phiếu cho bản tóm tắt, và các chú thích sẽ được lưu lại đề phòng khi có tranh chấp khiến ai đó phải quay lại kiểm tra.
Tôi thấy điều đó an ủi theo một nghĩa nào đó: thực sự không có gì bị mất đi cả; bản digest đầy đủ vẫn ở đó, có thể kiểm chứng, chờ sẵn. Nhưng đồng thời điều đó cũng có nghĩa là trạng thái mặc định của hệ thống là một phiên bản đã được rút gọn của các sự kiện, và phiên bản phong phú hơn chỉ được tham chiếu khi mọi thứ đã đi sai. Hầu hết các giao dịch sẽ không bao giờ kích hoạt một cuộc thách thức. Hầu hết các digest đồng thuận sẽ không bao giờ được đối chiếu với bản tương ứng đầy đủ của chúng. Việc nén trở thành vĩnh viễn theo mặc định, không phải vì dữ liệu đã biến mất, mà vì chẳng ai có lý do để quay lại xem xét.
Tôi không biết đó có hẳn là một điểm yếu không. Có thể chỉ là như cơ sở hạ tầng có thể kiểm chứng trông như thế nào khi ở quy mô lớn. Nhưng nó khiến tôi tự hỏi mức độ thường xuyên digest đầy đủ thực sự được kéo lên, và liệu một hệ thống được xây dựng dựa trên việc gần như không bao giờ kiểm chứng chi tiết bản ghi của chính nó có khác—về tinh thần—so với một hệ thống chưa từng giữ bản ghi đó hay không.
@NewtonProtocol #Newt $NEWT $XPIN $BEAT
