Bằng chứng tuân thủ ở tầng giao thức

Ví chưa cấp quyền bị node từ chối — không phải ở giao diện.

Trên 9Chain, quy tắc tuân thủ nằm trong giao thức: node tự chối giao dịch từ ví chưa được duyệt. Bạn không cần tin lời — hãy tự kiểm chứng ngay dưới đây bằng dữ liệu trực tiếp và ví MetaMask của bạn.

Trạng thái compliance (trực tiếp)ezc_39999-1
Chế độ duyệt phép
Token gas Ví được duyệt Kiểm tra người nhận
Đọc trực tiếp từ /rest/ez/compliance/v1/params trên node công khai.
Danh sách ví được duyệt
Địa chỉTrạng tháiKYC
Tra cứu: địa chỉ này có được phép giao dịch không?
Hỏi trực tiếp module x/compliance: is_allowed. Nhập địa chỉ EVM 0x… sẽ tự đổi sang c91….

Tự kiểm chứng bằng ví của bạn

Bốn bước: kết nối → bị chặn → xin cấp quyền → giao dịch được. Mọi thứ chạy thật trên testnet.

1Kết nối ví MetaMask
Chúng tôi đọc địa chỉ của bạn và đổi sang định dạng c91 để hỏi module compliance.
2Thử giao dịch khi CHƯA được cấp quyền
Gửi một giao dịch nhỏ. Node sẽ từ chối ngay ở AnteHandler — đây là tầng giao thức, không phải kiểm tra ở giao diện.
3Yêu cầu cấp quyền (mô phỏng KYC onboarding)
Faucet dùng ví có vai trò COMPLIANCE_OFFICER chạy giao dịch add-to-allowlist thật trên chain, rồi cấp một ít token gas.
4Gửi lại — lần này thành công
Cùng một giao dịch, nhưng giờ ví đã nằm trong allowlist. Node chấp nhận.

Vì sao không thể lách?

Tuân thủ được cài ở ba tầng độc lập trong giao thức — không phải một lớp kiểm tra ở app.

L1 · AnteHandler

Chặn người ký

Mỗi giao dịch (Cosmos lẫn EVM) bị kiểm tra trước khi vào mempool: người ký chưa allowlist → từ chối ngay.

L2 · SendRestriction

Chặn dịch chuyển coin

Cài thẳng vào module bank: mọi lần chuyển token tới ví chưa duyệt đều bị chặn; token gas danh nghĩa không chuyển nhượng được.

L3 · IBC middleware

Chặn gói liên chuỗi

Gói IBC (vd USDC) tới ví chưa duyệt sẽ bị từ chối và hoàn trả về chuỗi nguồn.

Tầng contract — token tự tuân thủ Phase 2

AnteHandler chặn người ký. Nhưng nếu một smart contract tự chuyển token cho ví khác thì sao? Token “tuân thủ” gọi precompile isAllowed ngay trong _transfer — chặn cả người gửi (freeze ví bị thu hồi) lẫn người nhận, ngay trong logic contract.

Token demo: EZ Compliant Demo (LOVE9D)0x6707…7727 ↗

Mô phỏng chuyển 1 LOVE9D — node chạy thử _transfer và từ chối nếu người gửi hoặc người nhận chưa được duyệt. Thử 3 kịch bản bên dưới (hoặc nhập ví người nhận để gửi từ ví đã duyệt):

Dùng eth_call mô phỏng (không tốn phí, không cần ví). Gating nằm TRONG contract, gọi precompile — không thể lách kể cả khi người ký đã được duyệt.