
Chi tiết công nghệ Rollup cho ứng dụng: Chìa khóa giúp ứng dụng dung lượng cao tiếp cận áp dụng phổ biến
Tuyển chọn TechFlowTuyển chọn TechFlow

Chi tiết công nghệ Rollup cho ứng dụng: Chìa khóa giúp ứng dụng dung lượng cao tiếp cận áp dụng phổ biến
Rollup là giải pháp hiện có tốt nhất để mở rộng các ứng dụng có thông lượng cao, đặc biệt là các trò chơi hoàn toàn trên chuỗi.
Tác giả: Mohamed Fouda
Biên dịch: TechFlow

Các Rollup ứng dụng đang nổi lên như giải pháp mở rộng rõ ràng cho một nhóm cụ thể các ứng dụng Ethereum. Những ứng dụng này hưởng lợi từ quyền sở hữu không cần ủy quyền và đảm bảo mạnh mẽ, nhưng không yêu cầu sự tương tác đồng thời giữa tất cả người dùng. Trò chơi hoàn toàn trên chuỗi (fully on-chain) là ví dụ điển hình nhất. Trò chơi trên chuỗi được hưởng lợi từ quyền sở hữu mạnh mẽ đối với tài sản trong game, cho phép tham gia ẩn danh và sửa đổi trò chơi một cách ẩn danh. Dù vậy, phần lớn các trò chơi không cần mọi người chơi phải tương tác đồng thời. Các ứng dụng khác có thể hưởng lợi từ chiến lược mở rộng Rollup ứng dụng bao gồm thị trường NFT, giao dịch vĩnh viễn (perpetual exchange) và suy luận AI trên chuỗi.

Rollup ứng dụng đã trở thành lựa chọn triển khai hàng đầu cho nhiều trường hợp sử dụng này. Tuy nhiên, các triển khai Rollup tiêu chuẩn, tức là EVMRollup, vẫn còn những giới hạn về khả năng mở rộng quan trọng. Chúng có thể đạt thông lượng khoảng 100 giao dịch mỗi giây. Với một số trò chơi trên chuỗi, thông lượng này có thể là đủ, tùy thuộc vào loại trò chơi. Nhưng phần lớn các trò chơi cần thông lượng cao hơn để hỗ trợ lượng lớn người chơi đồng thời (trên 1000). Bài viết này tập trung vào các phương pháp mở rộng Rollup ứng dụng nhằm phục vụ hàng trăm nghìn người tham gia đồng thời. Đối với từng phương pháp, tôi sẽ thảo luận về các loại ứng dụng/trò chơi phù hợp cũng như các thách thức mà chúng phải đối mặt.
Mở rộng theo chiều ngang
Khả năng mở rộng theo chiều ngang là phương pháp đơn giản nhất để mở rộng Rollup ứng dụng. Tuy nhiên, sự đơn giản này đi kèm với cái giá là mất tính kết hợp, khiến chúng chỉ phù hợp với một nhóm nhỏ ứng dụng, ví dụ như trò chơi đơn.
Ý tưởng của việc mở rộng theo chiều ngang là đơn giản: triển khai nhiều Rollup ứng dụng (Optimistic hoặc ZK), và triển khai cùng một hợp đồng thông minh trên tất cả các Rollup đó. Giao diện người dùng phía trước của ứng dụng sẽ chuyển hướng người dùng đến một trong các Rollup một cách liền mạch dựa trên dung lượng, vị trí hoặc tùy chọn ứng dụng cụ thể. Alt Layer gần đây đã minh họa khái niệm này bằng cách ra mắt một trò chơi 2048 FOCG có thể mở rộng. Trên giao diện trò chơi, người dùng có thể chọn tham gia Rollup nào dựa trên vị trí địa lý của họ. Nhờ sự đơn giản và sự hiện diện của các nhà cung cấp Rollup-as-a-Service như Caldera – xử lý toàn bộ cơ sở hạ tầng liên quan đến việc khởi động và quản lý các Rollup này – phương pháp này có thể dễ dàng được các nhà phát triển trò chơi áp dụng.

Dù vậy, phương pháp mở rộng đa Rollup này gặp một vài vấn đề. Vấn đề đầu tiên là việc chuyển đổi mạng Rollup. Các ví hiện tại, ví dụ như Metamask, yêu cầu xác nhận thủ công khi kết nối tới một mạng mới – tức là một phiên bản Rollup. Điều này gây khó khăn và trải nghiệm người dùng rối rắm vì người chơi phải tự tay kết nối tới nhiều “mạng” để chơi cùng một trò chơi. May mắn thay, điều phức tạp này có thể được loại bỏ bằng các giải pháp Trừu tượng Tài khoản (AA), ví dụ như EIP 4337 và các ví nhúng như Privy và 0xPass.
Thách thức khác là quản lý trạng thái người chơi trong quá trình chuyển đổi giữa các Rollup. Trong một số trường hợp, ví dụ như khi giảm dung lượng, ứng dụng có thể cần hợp nhất nhiều phiên bản Rollup thành một để tiết kiệm tài nguyên. Trong trường hợp này, trạng thái của tất cả người chơi đang hoạt động cần được di dời sang phiên bản mới. Các giải pháp cầu nối hiện tại, đặc biệt là cầu zk, có thể đóng vai trò then chốt trong việc giải quyết vấn đề này. Với các giải pháp này, trạng thái trò chơi của người chơi có thể được cầu nối sang một phiên bản Rollup mới, đồng thời duy trì chứng minh tính hợp lệ của trạng thái đó. Tuy nhiên, độ trễ của các giải pháp cầu nối hiện tại có thể không tối ưu cho các trường hợp trò chơi.
Kênh trạng thái ZK
Một phương pháp mở rộng Rollup ứng dụng phù hợp hơn với các trò chơi nhiều người chơi (ví dụ như bài poker) là kênh trạng thái ZK. Trong các trò chơi này, sự tương tác giữa người chơi diễn ra giữa một số lượng nhỏ người chơi, ví dụ 2–10 người. Cách chơi giữa những người chơi này chỉ quan trọng trong lúc trò chơi diễn ra. Tuy nhiên, kết quả cuối cùng của trò chơi lại quan trọng hơn, vì nó ảnh hưởng đến số dư tài sản của mỗi người chơi. Do đó, việc lưu trữ kết quả ở một lớp lưu trữ chung là rất quan trọng.
Trong trường hợp này, Rollup ứng dụng đại diện cho lớp thông tin chia sẻ, nơi lưu kết quả trò chơi và nơi tồn tại tài sản trò chơi. Với mỗi trò chơi trên Rollup, có thể khởi chạy một kênh trạng thái ZK để phục vụ trò chơi đó. Trong quá trình chơi, mỗi người chơi tạo giao dịch và tạo ZKP để chứng minh rằng họ tuân theo luật chơi. Các bằng chứng tương tác giữa người chơi được tổng hợp đệ quy từ bằng chứng trước đó. Khi trò chơi kết thúc, ZKP cuối cùng được gửi lên Rollup ứng dụng để chứng minh tính hợp lệ của quá trình chơi và kết quả cuối cùng. Những thay đổi trạng thái do trò chơi tạo ra sẽ cập nhật trạng thái người chơi trên Rollup ứng dụng.

Kênh trạng thái ZK chuyển các tương tác trò chơi xuống ngoài chuỗi. Do đó, hoạt động và giao dịch trong trò chơi không ảnh hưởng đến thông lượng của Rollup ứng dụng. Với phương pháp này, Rollup ứng dụng có thể mở rộng quy mô lớn, hỗ trợ hàng ngàn người chơi đồng thời. Giao dịch trên Rollup ứng dụng chỉ còn là việc xác thực ZKP được tạo ra và giao dịch cập nhật trạng thái, với hệ số mở rộng từ 100 đến 1000 lần. Nhiều nhóm, bao gồm Ontropy, đang phát triển công nghệ này.
Nhược điểm của phương pháp này là yêu cầu người chơi phải chạy logic trò chơi và tạo ZKP trên thiết bị riêng của họ. Thông thường các bằng chứng này nhẹ, và nhờ các hệ thống chứng minh tiên tiến như Halo2, việc tạo bằng chứng có thể hoàn thành trong vài giây. Tuy nhiên, điều này vẫn có thể làm giảm trải nghiệm người chơi trên các thiết bị có tài nguyên hạn chế.
Một biến thể để giảm thiểu vấn đề này là chỉ định một trong các bên tham gia kênh zk làm bộ sắp xếp tạm thời (temporary sequencer). Bộ sắp xếp này sẽ nhận giao dịch từ mỗi người chơi, tạo ZKP tương ứng và chia sẻ ZKP với tất cả các bên tham gia kênh. Biến thể này có thể được xem như một L3 ZK ngắn hạn thanh toán về Rollup ứng dụng. Nhóm Cartridge đã thực hiện kiến trúc này bằng cách thiết kế bộ sắp xếp chuyên dụng tên là Katana.
Phương pháp kênh trạng thái zk có tiềm năng to lớn. Tuy nhiên, vẫn còn một số câu hỏi mở liên quan đến môi trường thực thi bên trong kênh zk và cách tối ưu hóa bằng chứng đệ quy. Môi trường zkEVM hiện tại chưa hiệu quả, và phần lớn hiện nay không hỗ trợ đệ quy bằng chứng. Các giải pháp thay thế bao gồm zkVM nhẹ, hoặc thậm chí sử dụng mạch zk chuyên dụng để xử lý tương tác người chơi nếu số hành động có thể của người chơi bị giới hạn.
Thay đổi môi trường thực thi
Phương pháp thứ ba để mở rộng Rollup ứng dụng là thay đổi môi trường thực thi của Rollup. Mặc dù công cụ phát triển EVM đã trưởng thành và phong phú, chúng không phù hợp với các ứng dụng hiệu suất cao như trò chơi. Hơn nữa, mô hình thực thi đơn luồng và lưu trữ của EVM dẫn đến thông lượng thấp hơn, điều này có thể được cải thiện.
Lợi thế chính của phương pháp này là tăng thông lượng Rollup mà không cần hy sinh tính kết hợp hay giới hạn số lượng trường hợp sử dụng. Miễn là môi trường thực thi có thể đạt được thông lượng cần thiết cho ứng dụng, phương pháp này có thể được dùng cho bất kỳ ứng dụng Web3 nào. Điều này khiến chúng trở thành giải pháp khả thi duy nhất cho các ứng dụng cần truy cập trạng thái chia sẻ, ví dụ như AMM, giao thức cho vay và các ứng dụng DeFi khác.
Mở rộng chức năng EVM qua tiền biên dịch
Đầu tiên, Rollup giữ khả năng tương thích EVM và vượt qua một số giới hạn thông lượng thông qua các địa chỉ tiền biên dịch (precompiles). Ý tưởng rất đơn giản. Tiền biên dịch nghĩa là dời các thao tác EVM tốn nhiều tính toán xuống cấp độ nút. Một thao tác cần hàng trăm hoặc hàng ngàn mã vận hành EVM và tiêu tốn hơn 100.000 Gas có thể được đơn giản hóa thành một thao tác duy nhất, với chi phí Gas giảm 100 lần. Các tiền biên dịch mở rộng môi trường Rollup thường được gọi là EVM+. Các ví dụ bao gồm hỗ trợ quyền riêng tư trên chuỗi và các lược đồ chữ ký hiệu quả hơn, ví dụ như chữ ký BLS. Ví dụ, trò chơi poker zkHoldem sử dụng các thao tác chuyên dụng FHE và zk để thực hiện việc chia bài và lật bài một cách riêng tư. Việc phát triển các tiền biên dịch chuyên dụng này thường là nỗ lực phối hợp giữa nhà phát triển Rollup ứng dụng và nhà cung cấp RaaS chịu trách nhiệm triển khai và duy trì cơ sở hạ tầng Rollup ứng dụng.
Sử dụng môi trường thực thi phi EVM
Một cách khác để cải thiện môi trường thực thi Rollup là từ bỏ EVM. Phương pháp này ngày càng phổ biến trong cộng đồng nhà phát triển mới tại hệ sinh thái Ethereum, cũng như những người cho rằng Solidity không phải là ngôn ngữ tốt nhất để phát triển các ứng dụng phức tạp.
Ngày nay, chúng ta đã có các ứng dụng Rollup chạy trên WASM, SVM, Cairo thậm chí cả môi trường chạy Linux. Hầu hết các phương pháp này cho phép nhà phát triển viết hợp đồng thông minh bằng các ngôn ngữ cấp cao như Rust hoặc C. Nhược điểm là thường mất tính tương tác với các hợp đồng Solidity hiện có. Tuy nhiên, vẫn có thể tạo khả năng tương thích với EVM. Ví dụ, Stylus của Arbitrum sử dụng coprocessor để giúp hợp đồng Stylus tương thích với EVM. Thiết kế này khiến Stylus gần hơn với kiến trúc EVM+ chứ không phải phi EVM.

Môi trường thực thi lai
Phương pháp thứ ba, đặc biệt được ưa chuộng bởi FOG, là kết hợp ưu điểm tốt nhất từ hai phương pháp trên. Phương pháp này kết hợp khả năng tương thích EVM với môi trường thực thi phi EVM chuyên dụng. Môi trường phi EVM tập trung vào việc thực thi hiệu suất cao các nguyên lý cốt lõi của trò chơi. Quản lý tài sản trò chơi, ví dụ như giao dịch NFT trong game, có thể được xử lý bởi các hợp đồng Solidity tiêu chuẩn.
Lợi thế của phương pháp này là khả năng tương thích EVM đảm bảo sự hài hòa với hệ sinh thái nhà phát triển lớn hơn và các sản phẩm hiện có. Nó cũng cho phép tính kết hợp không cần cấp phép. Nhà phát triển có thể thêm các hợp đồng thông minh EVM/Solidity để sửa đổi và mở rộng logic trò chơi. Đồng thời, động cơ trò chơi phi EVM chuyên dụng đạt được thông lượng cao mà EVM không thể đáp ứng.
Các ví dụ về phương pháp này là World Engine của Argus và Keystone của Curio. World Engine tách việc thực thi logic trò chơi sang một lớp riêng biệt, gọi là Game Shard, chạy trên lớp tương thích EVM. Game Shard cũng được thiết kế để cho phép mở rộng theo chiều ngang, điều chỉnh tổng thông lượng Rollup theo nhu cầu. Tương tự, kiến trúc Keystone của Curio tích hợp động cơ trò chơi thông lượng cao với EVM làm môi trường thực thi Rollup. Thách thức ở đây là đạt được tính tương tác liền mạch giữa động cơ EVM và động cơ trò chơi.

Các yếu tố về tính sẵn sàng dữ liệu
Trong phần thảo luận trước, trọng tâm là tăng thông lượng giao dịch Rollup, đây là khía cạnh chính trong việc mở rộng Rollup ứng dụng. Các chủ đề khác liên quan đến thông lượng tăng cao này bao gồm tính sẵn sàng dữ liệu (DA), phi tập trung bộ sắp xếp và tốc độ thanh toán. Đối với các Rollup ứng dụng thông lượng cao, tính sẵn sàng dữ liệu là vấn đề cấp bách nhất trong số các vấn đề này.
Thông lượng của một Rollup ứng dụng đơn lẻ có thể vượt quá 10.000 giao dịch mỗi giây. Việc sử dụng Ethereum làm lớp sẵn sàng dữ liệu cho các giao dịch này là không thể. Trước hết, chi phí trung bình để đăng dữ liệu chuyển ETH L2 đơn giản lên L1 có thể vượt quá 0,1 đô la Mỹ. Chi phí này quá cao đối với phần lớn các Rollup ứng dụng. Quan trọng hơn, L1 Ethereum hiện tại không thể hỗ trợ hơn khoảng 8.000 giao dịch mỗi giây cho các Rollup sử dụng L1 làm lớp sẵn sàng dữ liệu.
Các Rollup ứng dụng sẽ chủ yếu phụ thuộc vào các giải pháp DA bên ngoài. Celestia và EigenDA hiện đang được định vị là lựa chọn khả thi nhất cho các Rollup ứng dụng. Ví dụ, Eclipse dự định sử dụng Celestia làm lớp sẵn sàng dữ liệu cho Rollup nền tảng SVM thông lượng cao của mình. Argus và động cơ trò chơi thông lượng cao cũng dự kiến ban đầu sử dụng Celestia. Tương tự, EigenDA hứa hẹn thông lượng dữ liệu lên đến 10MB mỗi giây, cũng có thể cung cấp giải pháp khả thi cho nhiều Rollup ứng dụng.
Tuy nhiên, nhược điểm chính khi tích hợp Celestia hoặc EigenDA là rò rỉ giá trị kinh tế. Rollup ứng dụng phải trả phí cho lớp DA, cũng như phí thanh toán trên L1 Ethereum. Phí thanh toán rất quan trọng đối với Rollup ứng dụng vì nó liên kết bảo mật của Rollup với bảo mật của Ethereum. Tuy nhiên, đảm bảo DA ít quan trọng hơn trong bối cảnh FOG khi giá trị giao dịch thấp hơn nhiều so với các mạng này. Ngoài ra, Celestia và EigenDA hứa hẹn mức phí thấp vì các mạng này vừa mới khởi động và ban đầu tỷ lệ sử dụng sẽ thấp. Khi các mạng DA này đạt tỷ lệ sử dụng cao, phí DA cũng có thể trở nên quá cao. Theo tôi, các Rollup ứng dụng nên sử dụng một Ủy ban Sẵn sàng Dữ liệu (DAC) đơn giản để chứng minh tính sẵn sàng của dữ liệu Rollup.
Tóm lại, tôi cho rằng Rollup ứng dụng là giải pháp hiện có tốt nhất để mở rộng các ứng dụng thông lượng cao, đặc biệt là trò chơi hoàn toàn trên chuỗi. Việc mở rộng các Rollup ứng dụng này là chìa khóa để đạt được sự chấp nhận phổ biến vượt xa người dùng tiền mã hóa thuần túy.
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














