Theo quan điểm của tôi, canonicalization (chuẩn hoá) là bước mà Newton chuyển một Intent (ý định) mơ hồ thành một đầu vào đủ chính xác để một Policy (chính sách) có thể đánh giá một cách nhất quán.

Một Intent thô có thể đến dưới nhiều dạng khác nhau. Với cùng một yêu cầu hoán đổi, một người dùng có thể nhập 1 ETH, người khác có thể dùng 10¹⁸ wei, trong khi một người khác lại đề cập đến tài sản bằng ký hiệu token thay vì địa chỉ hợp đồng của nó. Có thể cung cấp thời hạn hoặc không cung cấp, vì người dùng cho rằng hệ thống sẽ tự suy ra.

Với con người, những cách diễn đạt này có thể trông có vẻ tương đương.

Nhưng đối với một công cụ Policy, chúng không phải là cùng một đầu vào.

Trước khi đánh giá, Newton cần phân tích Intent thành các thành phần đã được xác định: ai yêu cầu hành động, hành động nào được yêu cầu, tài sản và đích đến nào được liên quan, và những ràng buộc nào chi phối việc thực thi.

Chỉ khi đó, quá trình chuẩn hoá mới bắt đầu.

Các định danh tài sản, số lượng, chuỗi (chain), người nhận, thời hạn, mức trượt (slippage) và các ràng buộc khác cần có tham chiếu chuẩn, đơn vị, kiểu và định dạng thống nhất để thứ tự các trường không thể làm thay đổi ý nghĩa của Intent.

Các giá trị mặc định cũng cần có một quy tắc chung. Khi một trường bắt buộc bị thiếu hoặc một tham số cho phép nhiều cách hiểu, hệ thống không nên để từng toán tử tự đưa ra giả định của riêng mình. Intent nên được coi là không hợp lệ hoặc không đủ chi tiết trước khi Policy được chạy.

Khi các trường đã được xác thực và chuẩn hoá, Newton có thể xây dựng một biểu diễn canonical: một đối tượng ngữ nghĩa duy nhất đại diện cho Intent ban đầu. Sau đó, nó có thể được tuần tự hoá theo cùng các quy tắc, đảm bảo mọi toán tử nhận được cùng một cấu trúc, giá trị và ý nghĩa.

Đây là phần tôi cho là thiết yếu.

Policy không nên đánh giá những từ ngữ mà người dùng đã nhập. Thay vào đó, Policy phải đánh giá Intent đã được chuẩn hoá, sau khi đã loại bỏ các khác biệt về định dạng, đơn vị và cách diễn đạt.

Nếu bước này thất bại, ngay cả một Policy tất định (deterministic) cũng không thể cứu vãn hệ thống.

Newton chỉ có thể duy trì tính nhất quán về uỷ quyền khi mọi toán tử nhận được cùng một Intent canonical trước khi Policy đánh giá.
@NewtonProtocol $NEWT #Newt $LAB $BTW