Có một chi tiết trong Newton Protocol làm mình nghĩ khá lâu là khi offchain code được phép ảnh hưởng đến onchain authorization, ranh giới an toàn phải được đặt ở đâu?

PolicyData oracle của Newton không chạy kiểu tự do muốn chạm đâu thì chạm. Nó được compile thành WASM component, operator thực thi trong môi trường sandboxed Wasmtime, nhận input có cấu trúc rồi trả JSON để Rego policy dùng như runtime data.

Lúc đầu mình chỉ chú ý oracle lấy được dữ liệu gì nhưng phần quan trọng hơn lại là thứ nó không được phép chạm vào.

Newton chặn các request tới private network, loopback và link local address. Nói đơn giản, oracle không thể lén probe hệ thống nội bộ của operator hay chui vào các endpoint riêng tư. Nếu muốn gọi HTTP, endpoint đó phải là public URL. Oracle cũng có thể đi kèm JSON schema để kiểm tra input trước, tránh việc caller ném dữ liệu méo mó vào policy.

Thiết kế này hợp lý.

Một oracle policy vẫn là executable code. Nếu để nó vừa chạy code vừa chạm lung tung vào network nội bộ, authorization layer có thể biến thành một bề mặt tấn công rất rộng.

Nhưng đây cũng là điểm mình thấy đáng suy nghĩ.

Cô lập oracle không có nghĩa là mọi rủi ro biến mất. Nó chỉ chuyển một phần rủi ro sang chỗ khác. Nhiều hệ thống risk, compliance hoặc approval nội bộ vốn không được thiết kế để public. Muốn đưa dữ liệu đó vào #NEWT app có thể phải dựng gateway công khai, thiết kế lại access layer hoặc tìm cách xuất dữ liệu ra ngoài theo format an toàn hơn.

Sandbox bảo vệ operator khỏi oracle nhưng policy vẫn phụ thuộc vào chất lượng dữ liệu bên ngoài sandbox.

Nếu HTTP request lỗi, oracle có thể trả error dưới dạng dữ liệu có cấu trúc nhưng Rego policy phải được viết đủ chặt để deny khi thiếu dữ liệu hợp lệ. Còn nếu WASM execution fail hoàn toàn, đó không còn là policy denial bình thường mà có thể thành DataProviderError.

Với mình điểm mạnh của @NewtonProtocol là arbitrary code không được arbitrary reach nhưng câu hỏi còn lại là phần public interface bên ngoài sẽ được thiết kế tốt đến đâu.

$NEWT $BASED $BTW