Tuân thủ ở tầng giao thức
Module tuân thủ giữ ba loại dữ liệu: danh sách địa chỉ được phép cùng trạng thái và mã băm tham chiếu KYC, các vai trò, và tham số vận hành. Cần nhấn một điểm: trên chain chỉ có mã băm. Dữ liệu định danh cá nhân không bao giờ được ghi lên đó.
Năm lớp cưỡng chế
| Lớp | Cơ chế | Chặn được gì |
|---|---|---|
| 1 | Chặn ở khâu tiền xử lý giao dịch | Ai được ký và gửi giao dịch, cả Cosmos lẫn EVM |
| 2 | Hạn chế ở module ngân quỹ | Dòng tài sản; token nhiên liệu không chuyển nhượng |
| 3 | Móc vào máy ảo EVM | Quyền triển khai hợp đồng, và mẫu sinh hợp đồng con — đúng bằng phạm vi mà lớp này nhìn thấy |
| 4 | Middleware liên chuỗi | Tài sản từ ngoài đi vào: người nhận chưa duyệt thì báo lỗi ngược và hoàn tiền |
| 5 | Precompile | Cho chính hợp đồng tự hỏi "địa chỉ này có được phép không" |
Hình 20 — Mỗi lớp có nhánh từ chối riêng, và mọi lần từ chối đều để lại dấu vết.
Vì sao phải năm lớp thay vì một? Vì lớp một có một lỗ hổng đã biết, và tài liệu này nói ra thay vì giấu: khâu tiền xử lý không nhìn thấy lời gọi giữa hợp đồng với hợp đồng bên trong máy ảo. Một hợp đồng đã được phép có thể gọi tiếp hợp đồng khác mà lớp một không hay biết. Lớp năm tồn tại chính vì lỗ hổng đó. Nói "không thể lách" mà không nói câu này là quảng cáo sai.
Từ đó rút ra luật đọc cho cả bảng, và nó bền hơn bất kỳ bảng nào: mỗi lớp chỉ chặn được đúng thứ nó nhìn thấy. Chỗ nào một lớp không nhìn tới thì phải có lớp khác phủ; chỗ nào không lớp nào phủ thì phải được liệt kê ra, không được để trống trong im lặng. Vì thế phép đo đúng của một hệ cưỡng chế không phải đếm số lớp, mà là hỏi lớp nào nhìn thấy gì — và một hệ năm lớp cùng mù một chỗ thì vẫn chỉ mạnh bằng một lớp.
Tài sản từ ngoài đi vào
Hình 21 — Cổng kiểm ở biên: từ chối thì hoàn tiền, không bao giờ để tài sản mắc kẹt.
Tư cách của sơ đồ này cần nói đúng: nó mô tả một cổng đã dựng và đã đem ra thử, không phải một tuyến đang chở tài sản — kênh liên thông đầu tiên mở ra vẫn là một cổng chưa qua. Và cổng ở biên chỉ đáng tin bằng đúng mắt xích yếu nhất trong chuỗi đọc gói tin, nên luật của dự án là hướng từ chối: đọc không ra gói thì chặn, tuyệt đối không nhường xuống tầng dưới xử lý hộ. Một cổng chỉ chặn được thứ nó hiểu là một cổng mở cho thứ nó không hiểu.
Mọi thay đổi đều phát sự kiện, và bộ lập chỉ mục bên ngoài gom chúng thành báo cáo cho kiểm toán viên. Ở đây có một chi tiết đã trả giá và đáng giữ lại: khi middleware từ chối một gói, tầng dưới hoàn tác ngữ cảnh rồi phát lại sự kiện kèm một tiền tố khác. Bộ lập chỉ mục phải khớp cả dạng có tiền tố, nếu không nó sẽ đếm thiếu đúng những gói bị chặn — tức là mù đúng chỗ cần nhìn nhất.
Câu chốt: tuân thủ chỉ đáng tin khi nó không phụ thuộc vào thiện chí của người viết hợp đồng.