Có một câu hỏi từng khiến mình băn khoăn khá lâu: một transaction thực sự thuộc về chain nào?

Khi tìm hiểu GRVT, mình mới thấy câu hỏi đó chưa đủ chính xác. Một giao dịch có thể được thực thi trên GRVT L2 nhưng tính đúng đắn lại được neo trên Ethereum L1. Vì vậy, GRVT duy trì hai Chain ID để phản ánh hai miền trách nhiệm khác nhau.

Ban đầu mình nghĩ Chain ID chỉ là định danh mạng. Nhưng càng đọc kiến trúc của GRVT, mình càng nhận ra mỗi Chain ID đang trả lời một câu hỏi riêng. Ethereum L1 Chain ID xác định nơi proof cuối cùng được công bố, còn GRVT L2 Chain ID xác định execution và signing domain, nơi intent được diễn giải, xác thực và tạo ra trạng thái mới.

Điều thú vị là GRVT không tách hai Chain ID vì có hai lớp hạ tầng. Họ tách chúng vì một transaction đang tồn tại trong hai hệ quy chiếu khác nhau. Một hệ quy chiếu mô tả nơi hành động được thực thi. Hệ quy chiếu còn lại mô tả nơi kết quả của hành động đó được bảo đảm và có thể xác minh lâu dài.

Đó cũng là lý do execution domain và settlement layer không dùng chung một định danh. Nếu chỉ có một Chain ID, execution và settlement sẽ bị đánh đồng dù chúng đảm nhiệm hai vai trò hoàn toàn khác nhau. Bằng cách tách riêng hai định danh, GRVT giữ cho mỗi chữ ký luôn gắn với đúng execution domain, còn mỗi proof luôn gắn với đúng settlement layer.

Đến đây mình mới thấy một transaction trong GRVT không chỉ thuộc về một chain. Nó luôn mang hai tọa độ: nơi intent được thực thi và nơi tính đúng đắn của intent được neo lại.
#grvt @grvt_io $TAC $LAB