Cuối tuần trước mình ghé một quán Pizza Hut ở C3, West Bay Tower.
Lúc gọi món, mình để ý menu không hề ghi quán có thể phục vụ bao nhiêu chiếc pizza mỗi giờ, một chiếc mất bao nhiêu phút để nướng hay căn bếp hoạt động nhanh đến mức nào. Thay vào đó, gần như toàn bộ menu chỉ tập trung vào một việc: mình có thể tạo ra chiếc pizza theo bao nhiêu cách khác nhau. Chọn đế mỏng hay dày, thêm phô mai, đổi sốt, bỏ hành, thêm thịt xông khói, đổi kích cỡ... Mỗi lựa chọn mới lại tạo ra thêm một cách kết hợp khác.
Lúc đó mình chợt nghĩ, có những hệ thống không cạnh tranh bằng việc làm mọi thứ nhanh hơn. Chúng cạnh tranh bằng việc cho người dùng diễn tả được nhiều lựa chọn hơn.
Đến khi đọc docs của Newton Protocol, cảm giác đó lại xuất hiện.
Mình đi tìm những con số mà hầu hết các protocol đều rất thích công bố.
TVL bao nhiêu. TPS đạt mức nào. Có bao nhiêu validator, bao nhiêu developer, bao nhiêu Policy đang chạy hay benchmark nhanh hơn hệ thống nào.
Nhưng càng tìm, mình càng nhận ra một điều khá lạ. Newton Protocol gần như không xây narrative của mình quanh những chỉ số đó. Thay vào đó, phần lớn tài liệu lại dành để giải thích cách viết Policy, cách kết hợp nhiều Data Oracle, cách mô phỏng trước khi deploy, cách tổ chức Policy Packs hay cách Policy được đánh giá trước mỗi transaction.
Ban đầu mình nghĩ đó chỉ là khác biệt trong cách viết docs.
Nhưng càng đọc, mình càng thấy sự khác biệt nằm ở thứ Newton Protocol đang cố tối ưu.
Performance thường trả lời một câu hỏi khá trực tiếp: hệ thống xử lý được bao nhiêu giao dịch, nhanh đến mức nào hay mở rộng tới đâu. Những con số đó phản ánh năng lực xử lý của protocol.
Trong khi đó, gần như toàn bộ tài liệu của Newton lại xoay quanh một câu hỏi khác: protocol có thể mô tả được bao nhiêu loại decision.

Developer có thể giới hạn theo giá trị giao dịch, theo contract, theo function, theo thời gian, theo tần suất, theo dữ liệu từ nhiều Oracle, rồi tiếp tục kết hợp tất cả chúng trong cùng một Policy. Điều Newton liên tục mở rộng không phải tốc độ thực thi, mà là không gian biểu đạt của decision.
Theo mình, đây là lúc Newton Protocol bắt đầu ưu tiên Expressiveness hơn Performance.
Điều thú vị là hai hướng tối ưu này dẫn tới hai cách phát triển rất khác nhau.
Nếu cạnh tranh bằng Performance, mỗi thế hệ mới của protocol sẽ phải chứng minh mình nhanh hơn, rẻ hơn hoặc xử lý được nhiều transaction hơn thế hệ trước. Đó là một cuộc đua mà mỗi bước tiến đều nhanh chóng trở thành tiêu chuẩn mới của toàn ngành.
Nhưng nếu cạnh tranh bằng Expressiveness, câu hỏi lại đổi khác. Không còn là "xử lý bao nhiêu transaction", mà là "có thêm bao nhiêu loại decision mà trước đây chưa thể mô tả". Giá trị của protocol không chỉ đến từ năng lực thực thi, mà từ khả năng biểu đạt ngày càng nhiều quy tắc của thế giới thực thành Policy.
Đó cũng là lý do mình thấy Newton Protocol đầu tư rất nhiều vào Rego, Data Oracle, Policy Packs, Simulation hay CLI. Những thành phần này không trực tiếp làm transaction nhanh hơn. Chúng mở rộng số lượng ý tưởng mà developer có thể diễn đạt trước khi transaction được phép xảy ra.
Tất nhiên, đây cũng là một lựa chọn có đánh đổi.
Một protocol đặt Performance lên hàng đầu thường rất dễ được so sánh. TPS, latency hay throughput đều có thể đặt cạnh đối thủ trong cùng một bảng benchmark. Người dùng cũng dễ hiểu tại sao một hệ thống được xem là tốt hơn.
Còn khi ưu tiên Expressiveness, lợi thế lại khó đo lường hơn nhiều. Không có một benchmark đơn giản nào cho khả năng biểu đạt của decision. Giá trị của protocol chỉ thực sự xuất hiện khi developer bắt đầu gặp những bài toán mà các rule đơn giản không còn đủ để mô tả.
Có lẽ đó chính là trade-off mà Newton Protocol đang chấp nhận. @NewtonProtocol từ bỏ một cuộc cạnh tranh mà kết quả có thể được chứng minh bằng vài con số quen thuộc, để theo đuổi một hướng mà lợi thế chỉ bộc lộ khi hệ thống phải diễn tả ngày càng nhiều loại decision phức tạp của thế giới thực.
