Câu hỏi đầu tiên xuất hiện trong đầu tôi khi đọc về @NewtonProtocol lại bất ngờ rất đơn giản: điều gì xảy ra nếu mỗi trình xác thực nhìn thấy một phiên bản thực tế hơi khác nhau?
Lúc đầu tôi cho rằng việc này không phải là một vấn đề lớn. Phần lớn các hệ thống phi tập trung đã dựa vào nhiều nhà vận hành độc lập, nên tôi nghĩ rằng mỗi nút có thể tự lấy thông tin bên ngoài, đánh giá một chính sách, ký kết kết quả và tiếp tục. Tuy nhiên, càng tìm hiểu về Newton Mainnet Beta và tài liệu kỹ thuật của nó, tôi càng nhận ra rằng giả định đó âm thầm sụp đổ khi bạn đưa tính năng gộp chữ ký BLS vào. Chữ ký BLS cực kỳ hiệu quả vì hàng trăm chữ ký có thể trở thành một chứng minh gọn nhẹ, nhưng có một điểm “bẫy” rất dễ bỏ qua. Tất cả người tham gia đều phải ký đúng trên cùng một thông điệp. Chỉ cần có một khác biệt nhỏ trong dữ liệu được truy xuất cũng tạo ra một thông điệp hoàn toàn khác, khiến việc gộp chữ ký trở nên bất khả thi.
Ràng buộc đó hoàn toàn thay đổi cách tôi nhìn kiến trúc của Newton. Phần khó không phải là thu thập chữ ký. Phần khó là làm cho các máy hoạt động độc lập đi đến cùng một cái nhìn về thông tin bên ngoài mà không trao cho một người tham gia quyền lực hoàn toàn đối với câu trả lời. Sự cân bằng giữa độc lập và đồng thuận đó dường như là một trong những lựa chọn kỹ thuật thú vị nhất đằng sau @NewtonProtocol.
Giao thức tiếp cận vấn đề này thông qua một quy trình đồng thuận hai pha dạng streaming. Trong giai đoạn đầu, các nhà vận hành độc lập thực thi các nhà cung cấp dữ liệu WASM được “sandbox” bằng các kết nối mạng riêng của họ. Họ có thể lấy thông tin trừng phạt, giá thị trường, hoặc các đầu vào chính sách khác mà không dựa vào một máy chủ dùng chung. Mỗi nhà vận hành cũng tạo ra một bản xác nhận (attestation) mô tả chính xác họ đã quan sát được gì. Thay vì ép mọi người phải tin một oracle duy nhất từ đầu, giao thức cho phép quan sát độc lập trước, rồi mới đạt được đồng thuận sau.
Ban đầu tôi thắc mắc vì sao bước bổ sung này lại tồn tại. Chẳng phải sẽ nhanh hơn nhiều nếu cổng (gateway) chỉ phân phối một tập dữ liệu đã được phê duyệt cho mọi người? Điều đó chắc chắn nghe có vẻ đơn giản hơn từ góc độ kỹ thuật. Vấn đề là tính đơn giản đó sẽ âm thầm tạo ra một sự phụ thuộc trung tâm. Nếu mọi bộ xác thực nhận được thông tin giống hệt nhau từ một nguồn, thì phi tập trung sẽ trở thành chuyện thu thập chữ ký nhiều hơn là kiểm chứng độc lập. Newton dường như tránh lối tắt đó bằng cách để các nhà vận hành tự thu thập thông tin trước khi cơ chế đồng thuận xác định tập dữ liệu chuẩn.
Chỉ sau giai đoạn chuẩn bị này, việc đánh giá mới bắt đầu. Khi đã hình thành một tập dữ liệu đồng thuận, mọi nhà vận hành sẽ tải đúng phiên bản chính sách đó bằng bộ định danh nội dung (content identifier) IPFS, đánh giá các đầu vào giống hệt nhau, tạo ra cùng một digest, và cuối cùng tạo ra chữ ký BLS. Lúc này việc tổng hợp trở nên khả thi vì mỗi người tham gia cuối cùng ký lên một thông điệp đồng nhất, chứ không phải là những quan sát hơi khác nhau.
Điều tôi thấy đặc biệt thú vị là thiết kế này tách riêng hai vấn đề thường bị trộn lẫn với nhau. Một vấn đề là quyết định thế giới bên ngoài hiện trông như thế nào. Vấn đề còn lại là đánh giá các quy tắc ủy quyền mang tính xác định. Newton dường như tránh giải quyết cả hai cùng lúc. Trước tiên nó đạt được thỏa thuận trên dữ liệu, rồi mới đánh giá chính sách. Nghe có vẻ là một sự khác biệt tinh tế, nhưng hệ thống phân tán thường trở nên dễ suy luận hơn rất nhiều khi các đầu vào không xác định được cô lập trước khi bắt đầu tính toán xác định.
Một ví dụ thực tế giúp tôi hiểu rõ vì sao điều này lại quan trọng. Hãy tưởng tượng một tổ chức phát hành stablecoin kiểm tra xem liệu một ví đích có xuất hiện trong danh sách trừng phạt đã được cập nhật hay không trước khi cho phép chuyển tiền. Các nhà vận hành khác nhau có thể truy vấn những bản mirror khác nhau hoặc nhận các bản cập nhật cách nhau vài giây. Nếu không có phối hợp, một nhà vận hành có thể phê duyệt trong khi nhà khác từ chối. Chữ ký của họ sẽ không thể kết hợp thành một bằng chứng duy nhất, làm chậm giao dịch hoặc tạo ra tình trạng ủy quyền không nhất quán. Bằng cách đồng ý trên một tập dữ liệu chuẩn trước khi đánh giá, mạng các nhà vận hành tạo ra một kết quả ủy quyền thống nhất mà các smart contract phía sau có thể kiểm chứng hiệu quả.
Đọc sâu hơn cũng giúp tôi nhận ra một sự phụ thuộc rất dễ bỏ sót. Cổng (gateway) tính toán tập dữ liệu đồng thuận trước khi giai đoạn đánh giá bắt đầu. Nhìn thoáng qua, điều đó nghe như một trách nhiệm đáng kể, và tôi tự hỏi liệu nó có tạo ra một giả định tin cậy mới hay không. Tài liệu giải thích rằng các nhà vận hành tự xác nhận độc lập dữ liệu mà họ đã quan sát, cổng không thể giả mạo chữ ký của nhà vận hành, và vai trò điều phối được thiết kế để luân phiên theo thời gian thay vì duy trì tập trung vĩnh viễn. Ngoài ra còn có các cơ chế “ép đưa vào” nhằm vượt qua kiểm duyệt của cổng nếu cần. Tuy vậy, cổng vẫn giữ vai trò quan trọng về mặt vận hành vì chính việc phối hợp là một công việc khó. Điều đó không nhất thiết làm suy yếu phi tập trung, nhưng nó có nghĩa là chất lượng triển khai quan trọng tương đương với mật mã.
Một chi tiết khác mà tôi cứ nghĩ đến là độ trễ. Việc thu thập dữ liệu độc lập, hình thành đồng thuận, đánh giá chính sách, thu thập đủ số phiếu và tổng hợp chữ ký đều diễn ra trước khi quá trình ủy quyền hoàn tất. Với các thông tin có tính động cao như giá thị trường biến động nhanh, thời điểm có thể ngày càng trở nên quan trọng. Giao thức có chế độ đơn pha được giản lược cho dữ liệu xác định hoặc đã được lưu vào bộ nhớ đệm nhằm giảm chi phí không cần thiết, điều này cho thấy các nhà thiết kế nhận thức rằng không phải mọi yêu cầu ủy quyền đều đáng nhận chi phí phối hợp như nhau. Việc các ứng dụng có chọn đúng chế độ hay không có lẽ cuối cùng sẽ trở thành một trách nhiệm đáng kể của nhà phát triển.
Điều này cũng làm nổi bật một nguyên tắc kỹ thuật rộng hơn mở rộng vượt xa @NewtonProtocol. Hệ thống phân tán hiếm khi thất bại vì mật mã yếu. Thông thường, chúng gặp khó khăn vì các người tham gia độc lập quan sát những thực tại khác nhau. Các thuật toán đồng thuận thường được mô tả là các phương pháp để thống nhất về các khối hoặc giao dịch, nhưng sự thống nhất về thông tin bên ngoài cũng có thể khó khăn tương tự. Thiết kế oracle, đánh giá chính sách, AI phi tập trung, nhắn tin liên chuỗi và các khung ủy quyền cuối cùng đều chạm đến cùng một câu hỏi: làm sao các máy độc lập có thể hành động một cách tự tin trên dữ liệu luôn thay đổi?
Câu hỏi đó ngày càng trở nên phù hợp khi các tác nhân AI bắt đầu tương tác trực tiếp với hạ tầng blockchain. Con người tự nhiên chấp nhận sự mơ hồ và thông tin không đầy đủ. Máy móc thì thường không. Nếu một hệ thống tự chủ nhận các đầu vào bên ngoài xung đột, việc thực thi mang tính xác định sẽ trở nên mong manh một cách đáng ngạc nhiên. Hạ tầng chuẩn hóa các đầu vào đó trước khi những quyết định quan trọng được đưa ra có thể sẽ trở nên có giá trị tương đương, thậm chí chỉ kém, so với bản thân việc thực thi nhanh hơn.
Tôi cũng không nghĩ rằng thiết kế này loại bỏ mọi sự đánh đổi. Đồng thuận dựa trên trung vị hoạt động tốt cho nhiều giá trị số, nhưng không phải mọi nguồn dữ liệu bên ngoài đều khớp gọn với mô hình đó. Một số đầu vào chính sách mang tính định tính, những đầu vào khác có thể phụ thuộc vào các cơ sở dữ liệu thay đổi nhanh, và tài liệu đương nhiên không thể dự đoán mọi tình huống biên mà các nhà phát triển có thể đưa vào thông qua các nhà cung cấp dữ liệu WASM tùy chỉnh. Những câu hỏi vận hành đó vẫn thú vị đúng vì chúng chưa có câu trả lời được chấp nhận rộng rãi trên toàn bộ hệ sinh thái.
Sau khi dành thời gian nghiên cứu phần này của Newton Mainnet Beta, tôi ngừng xem việc tổng hợp BLS chỉ là một tối ưu hóa mật mã. Nó lặng lẽ định hình toàn bộ mô hình phối hợp của mạng. Khi việc ký lên các thông điệp giống hệt nhau trở thành yêu cầu, chỉ quan sát độc lập thôi sẽ không còn đủ nữa. Đồng thuận phải tồn tại trước khi chữ ký thậm chí bắt đầu.
Điều này khiến tôi tự hỏi liệu thế hệ hạ tầng phi tập trung tiếp theo sẽ dành ít thời gian hơn cho việc chứng minh các phép tính đã được thực thi đúng, và nhiều thời gian hơn cho việc chứng minh rằng mọi người tham gia thực sự xuất phát từ cùng một phiên bản thực tại được chia sẻ.



