
Thảo luận về cơ chế khuyến khích của Layer2: Ứng dụng tinh tế khác của heuristic Fiat-Shamir trong FOX
Tuyển chọn TechFlowTuyển chọn TechFlow

Thảo luận về cơ chế khuyến khích của Layer2: Ứng dụng tinh tế khác của heuristic Fiat-Shamir trong FOX
Bài viết này xuất phát từ vai trò quan trọng của phí giao dịch tại các nút, giới thiệu mối liên hệ giữa phí giao dịch với việc khuyến khích các nút tham gia duy trì hệ thống, đồng thời chỉ ra rằng cơ chế khuyến khích tốt có thể hiệu quả bảo vệ an toàn hệ thống.
Tác giả: Mạnh Huyền Tế, nhà khoa học trưởng Fox Tech; Khang Thủy Dược, CEO Fox Tech
Lời mở đầu
Layer1 như một hệ thống phân tán, để đạt được sự đồng thuận cần chi phí giao tiếp cao và lượng lớn tính toán cũng tiêu tốn lượng gas đắt đỏ. Do đó, thiết kế Layer2 như phần mở rộng của Layer1 có thể hiệu quả nâng cao hiệu suất của Layer1. Tuy nhiên từ góc độ này, thiết kế Layer2 vẫn đối mặt với một khó khăn lớn giống như Layer1, đó là làm thế nào cân bằng mức độ phi tập trung và hiệu quả.
zkRollup là giải pháp mở rộng Layer2 rất triển vọng, thông qua việc chuyển tính toán ra ngoài chuỗi và cung cấp bằng chứng kiến thức không (zero-knowledge proof) lên chuỗi Layer1 để thực hiện. Trong các phương án triển khai zkRollup, hệ thống FOX áp dụng cấu trúc chủ lưu hiện nay, gồm hai loại nút chính là Sequencer và Folder. Đơn giản nói, Sequencer chịu trách nhiệm sắp xếp, đóng gói các giao dịch do người dùng gửi lên, đồng thời cập nhật trạng thái trên chuỗi Layer2; Folder chịu trách nhiệm tạo bằng chứng cho các giao dịch mà Sequencer đã đóng gói và gửi lên Layer1.
Một câu hỏi ý nghĩa đặt ra là: liệu các nút Layer2 có nên được phi tập trung hóa hay không, nếu có thì làm thế nào để thiết kế cơ chế khuyến khích nhằm đảm bảo điều này? Bởi vì có thể hình dung rằng, bản chất hiệu suất thấp của Layer1 là do mỗi nút đều phải thực hiện lượng lớn tính toán và giao tiếp để đạt được sự phi tập trung. Khi sử dụng hệ thống Layer2, quá trình tính toán được tách rời; nếu ở phần này vẫn dùng mô hình phi tập trung hoàn toàn tương đương Layer1, lại sẽ dẫn đến tắc nghẽn Layer2 do cùng một lý do trên, do đó cần phải có sự cân nhắc hợp lý.
Thiết kế cơ chế khuyến khích là thông qua việc điều chỉnh cách thức các nút Layer2 nhận phí thưởng và cân bằng chi phí trả cho các nút Layer2, nhằm khuyến khích các nút tham gia duy trì hệ thống Layer2. Về bản chất, nguồn phí khuyến khích mà các nút Layer2 nhận được giống như Ethereum, đến từ phí Gas mà người dùng trả khi gửi giao dịch. Bài viết này sẽ thảo luận về việc các nút FOX trong hệ thống FOX tham gia thu phí giao dịch như thế nào và lý do tại sao lại làm như vậy.
Vai trò của Gas
Trước tiên, ta hãy xem lại vai trò của phí Gas trong hệ thống Ethereum. Tài nguyên tính toán của Layer1 là hữu hạn, khi người dùng gửi giao dịch sẽ chỉ định mức phí Gas, phí Gas cơ bản liên quan đến độ phức tạp của thao tác thực thi giao dịch, và người dùng sẵn sàng trả phí Gas cao hơn sẽ được ưu tiên thực thi giao dịch. Phần thưởng cho thợ đào đến từ tổng phí Gas trong khối được đóng gói. Ngoài ra, cơ chế phí Gas còn có thể hiệu quả ngăn chặn các hợp đồng độc hại (ví dụ như vòng lặp vô hạn), giới hạn kích thước khối, từ đó phần nào đảm bảo an toàn.
Do đó có thể thấy, việc sử dụng hợp lý phí Gas về bản chất là phân bổ hợp lý tài nguyên tính toán trên chuỗi, đồng thời cũng là cuộc cạnh tranh đa bên giữa dự án, thợ đào và người dùng. Thiết kế cơ chế khuyến khích tốt cùng với việc sử dụng và phân phối phí giao dịch cực kỳ quan trọng đối với vận hành hệ thống.
Quy trình giao dịch lên chuỗi
Người dùng gửi giao dịch vào pool giao dịch của hệ thống FOX đồng thời phải đính kèm một khoản phí nhằm khuyến khích các nút FOX. Sau đó, các nút Sequencer trong hệ thống sẽ lấy giao dịch từ pool để đóng gói và sắp xếp thứ tự, mỗi lần đóng gói như vậy tạo thành một khối Layer2. Đồng thời, Sequencer cần thực thi tính toán giao dịch và truyền kết quả tính toán tới hợp đồng FOX trên Layer1, đồng thời Sequencer cũng cần lưu trữ dữ liệu giao dịch vào ZK-Ringer để đảm bảo tính khả dụng dữ liệu. Tiếp theo, kết quả sắp xếp và kết quả tính toán của Sequencer sẽ được truyền tới các nút Folder. Folder tính toán đúng bằng chứng (bao gồm phần tổng hợp bằng chứng) và gửi vào hợp đồng trên Layer1. Trong quá trình này, kết quả thực thi giao dịch của Sequencer sẽ được cập nhật trực tiếp vào Layer2 ngay sau khi thực thi xong, còn thời điểm giao dịch thực sự được xác nhận bởi sự đồng thuận Layer1 có thể coi là sau khi bằng chứng của Folder được xác minh.
Có thể thấy, trong quy trình này, khoản phí ban đầu mà người dùng đính kèm cần bao gồm nhiều mục đích:
-
Phí trả cho Sequencer
-
Phí trả cho Folder
-
Phí Gas khi Sequencer gửi kết quả giao dịch lên Layer1
-
Phí khi Sequencer lưu thông tin vào ZK-Ringer
-
Phí Gas khi Folder gọi hợp đồng
Vì vậy, chúng ta cần làm rõ cơ chế cụ thể để khuyến khích các bên tham gia.
Cơ chế khuyến khích của FOX
Mô hình khuyến khích của FOX khá mới mẻ. Trước hết, để cân bằng vấn đề giữa phi tập trung và hiệu quả, chúng tôi chia vai trò nút thành Sequencer chịu trách nhiệm sắp xếp và thực thi giao dịch, và Folder chịu trách nhiệm tạo bằng chứng về tính đúng đắn của việc thực thi giao dịch và tổng hợp bằng chứng. Các nút Folder của FOX áp dụng mô hình phi tập trung, tức là bất kỳ thợ đào FOX nào cũng có thể tham gia mạng để đảm nhận vai trò tạo bằng chứng. Để khuyến khích nhiều nút tham gia hơn, Folder nào thành công gửi bằng chứng đúng lên hợp đồng Layer1 sẽ nhận được phần thưởng bằng token. Đồng thời, để tránh lãng phí năng lực tính toán, chúng tôi chỉ ra rằng không chỉ người nộp bằng chứng đầu tiên mới nhận được phần thưởng; trong một cửa sổ thời gian và cửa sổ số lượng nhất định (các tham số cụ thể sẽ được điều chỉnh tùy theo tình trạng hệ thống) sau khi người nộp đầu tiên thành công, tất cả các Folder nộp bằng chứng đúng đều có thể nhận được phần thưởng.

Hình 1: Mô hình khuyến khích phiên bản gốc
Tuy nhiên, dưới cơ chế này, Folder độc hại có thể thực hiện một kiểu tấn công rất tinh vi.
Khi một Folder độc hại, ký hiệu là Adv, hoàn thành việc tạo bằng chứng, một mặt nó gửi bằng chứng lên hợp đồng Verifier trên Layer1 để xác minh, mặt khác nó thông đồng với một vài nút (hoặc là các nút do chính Adv kiểm soát), tiết lộ bằng chứng đã tính toán cho những nút này, sau đó họ có thể không cần tự tính toán mà trực tiếp gửi bằng chứng mà Adv đã tính, cũng có thể nhận được một phần phần thưởng, trong khi quá trình này họ không tốn bất kỳ năng lực tính toán nào. Nói cách khác, Adv thu được lợi nhuận nhiều lần với ít năng lực tính toán hơn, đồng thời khiến các nút khác dù tạo được bằng chứng đúng cũng khó cạnh tranh lại Adv.

Hình 2: Cách tấn công của Folder độc hại
Trong cuộc tấn công này, nguyên nhân phát sinh vấn đề là Verifier không thể phân biệt được mỗi bằng chứng có phải do Folder đó tự tạo hay không, vì giá trị bằng chứng đều giống nhau. Để tránh vấn đề này, chúng ta cần đưa thông tin địa chỉ độc nhất của Folder vào bằng chứng mà Folder gửi lên, nhờ đó mỗi bằng chứng mà Folder gửi lên chỉ có thể do chính họ tạo ra, không thể do nút khác gửi thay.
Phương pháp tích hợp thông tin này rất tinh tế, sử dụng Fiat-Shamir heuristic (độc giả có thể tham khảo bài viết trước đây của FOX “Làm thế nào biến chứng minh tương tác thành không tương tác? Fiat-Shamir Heuristic!” để hiểu chi tiết kỹ thuật). Theo quá trình tạo bằng chứng, một bước trong đó, người chứng minh (tức Folder) cần dùng hàm băm để tạo một giá trị thử thách ngẫu nhiên, chỉ cần yêu cầu đưa địa chỉ Folder vào đầu vào của hàm băm này, có thể đảm bảo giá trị thử thách tương ứng với địa chỉ Folder, đồng thời vẫn là một số ngẫu nhiên mà Folder không thể dự đoán hay kiểm soát.
Việc chứng minh nghiêm ngặt tính an toàn của phương pháp này cần đến các khái niệm sâu hơn trong mật mã học như hàm ngẫu nhiên an toàn về mặt lý thuyết và tính không phân biệt... Chúng tôi không đi sâu vào chi tiết ở đây. Đơn giản nói, có thể cho rằng, do tính an toàn của bản thân hàm băm và cấu trúc Fiat-Shamir heuristic, việc thêm một giá trị cố định làm tiền ảnh của hàm băm sẽ không phá vỡ tính không thể dự đoán của đầu ra, do đó tính an toàn của thuật toán zkp ban đầu vẫn được đảm bảo.
Như vậy, mỗi Folder buộc phải tự mình tạo bằng chứng, không thể trực tiếp sử dụng kết quả của nút khác, từ đó đạt được mục tiêu của chúng tôi.

Hình 3: Mô hình khuyến khích sau khi sửa đổi
Kết luận
Bài viết này xuất phát từ vai trò quan trọng của phí nút, giới thiệu mối liên hệ giữa phí giao dịch và việc khuyến khích các nút tham gia duy trì hệ thống, đồng thời chỉ ra rằng cơ chế khuyến khích tốt có thể hiệu quả duy trì an toàn hệ thống. Trên cơ sở này, chúng tôi đã thảo luận chi tiết về cơ chế khuyến khích dành cho các nút Folder Layer2 trong FOX, giải thích tính hợp lý của cách làm này, cũng như kỹ thuật khéo léo sử dụng Fiat-Shamir heuristic để thực hiện điều này.
Tài liệu tham khảo
《Sâu sắc|Lặp lại và cạnh tranh — Con đường mở rộng Layer2 của Ethereum》Viện nghiên cứu Blockchain Guosheng https://www.theblockbeats.info/news/24443
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News














