Hiện tại, nhiều người vẫn thường lẫn lộn giữa các Layer-2, đặc biệt là các Rollup. Thật ra, mình cũng từng gặp phải điều này. Hôm nay, chúng ta cùng khám phá chi tiết về hai loại Rollup mới, gồm Based Rollups và Sovereign Rollups!
So sánh giữa Based Rollups và Sovereign RollupsMột số thông tin tổng quan
Trước khi vào so sánh, mình nghĩ nên đi sâu vào các khái niệm của một cấu trúc Blockchain có tính module. Bạn có thể tham khảo thêm các bài viết sau:
- Khám phá về Monolithic Blockchain và Modular Blockchain
- Tổng quan về hệ sinh thái Modular Blockchain
Để tóm gọn, có 3 nhiệm vụ chính mà một blockchain cần thực hiện:
- Consensus (thường đi kèm với Data Availability): Đồng thuận để bảo vệ và đóng băng dữ liệu quá khứ, giảm thiểu nguy cơ bị tấn công lặp lại giao dịch;
- Settlement: Dàn xếp, cung cấp các yếu tố cần thiết để xác thực và đồng thuận;
- Execution: Nhận và thực thi yêu cầu giao dịch từ người dùng.
Các loại Rollup phổ biến mà anh em thường sử dụng như Arbitrum, Optimism,
Vì sao cần phải nói về Sovereign và Based?
Ngoài tính chất tài sản khác so với Layer-1 (mà hầu hết các Rollup đều phải đối mặt), Smart Contract Rollup có một số hạn chế khiến nhiều DApp cần cân nhắc khi chọn nền tảng xây dựng sản phẩm. Những hạn chế này bao gồm:
Chi phí cao và độ trễ
Chú ý, độ trễ ở đây được định nghĩa là 'thời gian giao dịch trên Layer-2 được đính kèm và đóng băng dữ liệu (Finality) ở Layer-1'. Điều này quan trọng vì tốc độ xác nhận mềm (Soft Confirmations) của Smart Contract Rollups vẫn khá nhanh, dẫn đến người dùng thấy giao dịch trên Layer-2 thực hiện và số dư thay đổi. Tuy nhiên, ở dưới Layer-1, quá trình xác thực vẫn chưa hoàn tất, có thể dẫn đến việc các giao dịch trên Smart Contract Rollups bị đảo ngược.
Tương tự, chi phí ở đây không phải là chi phí mà các giải pháp Layer-2 thu từ người dùng, mà đó là chi phí để tương tác giữa Layer-2 và Layer-1.
Vì Smart Contract Rollups chỉ giữ lại phần Execution, các tác vụ khác đều phải tương tác với Layer-1. Mỗi lần tương tác xác thực, cần phải chờ đợi vì mạng Layer-1 vận hành chậm so với Layer-2.
Đi lại giữa các chuỗi gặp khó khăn
Nếu Dapp chọn phát triển trên Smart Contract Rollup, họ sẽ bị 'cô lập' trên mạng lưới này, và định dạng token trên các chuỗi sẽ bị phân mảnh như đã nêu ở lý do trước. Việc đi lại cũng vô cùng khó khăn, vì mỗi lần có một block giao dịch mới, tất cả đều phải gửi trạng thái xuống Layer-1 để xác thực.
Các cầu nối cũng cần có thông tin về 'State Transition' ở Rollups ban đầu để thực hiện lệnh mở khoá hoặc tạo token mới trên chuỗi đích.
Sự ràng buộc trong quá trình phát triển
Nếu thiết lập một Smart Contract Rollup truyền thống, các mạng Layer-2 sẽ phụ thuộc nhiều vào quy tắc của Layer-1, từ đó bị ràng buộc về nhiều khía cạnh khác như quy chuẩn đồng thuận, hệ thống máy ảo và ngôn ngữ lập trình phát triển.
Sovereign Rollups là gì?
Oke, bây giờ chúng ta sẽ định nghĩa lại Sovereign. Khác với Smart Contract Rollup, Sovereign Rollup sẽ thực hiện cả khâu Execution và Settlement (dàn xếp các bằng chứng chuẩn bị cho khâu xác thực). Việc này giúp giảm công đoạn gửi State về Layer-1 và xử lý hạn chế như đã đề cập ở phần trước.
Về vấn đề Data Availability, Sovereign cũng phụ thuộc vào Layer-1 như Smart Contract Rollups. Tuy nhiên, với Rollup này kiêm luôn mảng Settlement, việc xác thực tính hợp lệ của giao dịch sẽ nằm trong nội bộ của mạng lưới, không cần phụ thuộc vào Layer-1 như Smart Contract Rollups. Cách tiếp cận này tinh gọn các bước tương tác giữa Layer-2 và Layer-1, tuy nhiên sẽ đối mặt với vấn đề tính tập trung khi xác thực State của Rollups nếu số lượng node của Layer-2 không đủ lớn.
Như vậy, tóm lại thì Sovereign giải quyết được 2/3 vấn đề đã nói ở phần trước:
- Giảm chi phí thực hiện giao dịch và tăng tốc độ tiếp nhận yêu cầu.
- Mạng lưới tự do hơn trong quản trị/phát triển so với Smart Contract Rollups.
Tuy nhiên, vấn đề đồng bộ hóa giữa 'di chuyển giữa các Layer-2' và 'chuyển từ Layer-2 về Layer-1' vẫn là một thách thức lớn.
Based Rollups là gì?
Theo định nghĩa, Based Rollup vẫn thực hiện phần Execution, nhưng giải pháp này sẽ giao luôn cả khâu Sequencing (sắp xếp thứ tự giao dịch) cho Layer-1 mà không cần thông qua một mạng lưới Sequencer cục bộ ở Layer-2. Sequencing là thao tác sắp xếp thứ tự giao dịch trước khi tạo khối và gửi thông tin về cho Layer-1. Do đó, có thể hiểu rằng Based thậm chí còn đẩy thêm một phần công việc trong phần Execution sang Layer-1.
Quá trình Settlement và Data Availability sẽ hoàn toàn dựa vào Layer-1 của Ethereum.
Như vậy, với phương pháp này, Based Rollup giải quyết được các vấn đề sau:
- Đánh đổi một phần về tốc độ xử lý giao dịch, khi việc Sequencer được đưa trở lại Layer-1. Tuy nhiên, tốc độ xác nhận của mô hình này sẽ cao hơn so với Smart Contract Rollups truyền thống, bởi vì hoạt động trên Layer-2 được xác nhận trước (pre-confirm) và ngay lập tức được đính kèm vào block dưới Layer-1.
- Giảm thiểu sự tập trung, không còn phụ thuộc vào mạng lưới Sequencer trên Layer-2. Ngoài ra, quá trình rút tài sản từ Layer-2 về Layer-1 sẽ nhanh hơn so với Smart Contract Rollups. Nguyên nhân là giao dịch trên Layer-2 đạt trạng thái Finality ở Layer-1 nhanh hơn nhờ quá trình đính kèm trực tiếp từ các Proposer / Validator.
Tuy nhiên, mô hình Based Rollup hoàn toàn phụ thuộc vào cấu trúc ở Layer-1, do đó không có sự tự do trong hướng phát triển. Ngoài ra, thời gian tiếp nhận yêu cầu, pre-confirm và Finality giao dịch sẽ bị giới hạn bởi Slot time ở Layer-1. Điều này cũng đã được nhà sáng lập Ethereum Vitalik Buterin nhấn mạnh trong những bài blog gần đây.
Những nhận thức sai lầm phổ biến về các khái niệm khác nhau
Sovereign và Based
Đầu tiên, chúng ta sẽ tìm hiểu về 2 khái niệm chính này. Về mặt cấu trúc, hai loại Rollup này khác nhau hoàn toàn. Sovereign sẽ bao gồm cả khâu Settlement và không cần phải gửi state về Layer-1, từ đó có thể nói Sovereign sẽ hướng tới sự tự do hơn, ít phụ thuộc vào Ethereum. Ngược lại, Based sẽ cố gắng đẩy hết các khâu xuống Layer-1 càng nhiều càng tốt (chỉ giữ lại Execution), nhằm tận dụng độ an toàn từ Ethereum một cách tối đa.
Based Rollups và Shared Sequencer
Mình đã đọc một số tweet chia sẻ rằng 2 khái niệm này có vẻ giống nhau. Tuy nhiên, theo cá nhân mình, Based Rollups đáp ứng đầy đủ tiêu chí để trở thành một Layer-2. Trong khi đó, Shared Sequencer gần như là một tập hợp các Sequencer từ các Rollup hiện có, hơn là một Layer-2. Điều này bởi vì Shared Sequencer không thực hiện phần Execution, điều quan trọng để định nghĩa Layer-2.
Tổng quan, cả hai giải pháp này đều nhắm tới giải quyết vấn đề chi phí cho Layer-2 Sequencer (phí giao dịch, MEV,...) và tăng tính Liveness (giảm nguy cơ mạng lưới bị sập, không ghi nhận được yêu cầu người dùng).
Based Rollups và Enshrined Rollups
Khi đọc về hai khái niệm này lần đầu, có thể bạn sẽ hiểu lầm rằng chúng tương tự nhau, vì cả hai đều cố gắng 'giống' Layer-1 Ethereum nhất có thể và đưa càng nhiều tác vụ xuống tầng này nhất có thể.
Tuy nhiên, Enshrined sẽ gần giống với Smart Contract Rollups, và thực tế là nó cũng đặt một Contract ở Layer-1 để ghi nhận các bằng chứng từ Layer-2 chuyển về. Sự khác biệt của Enshrined so với Smart Contract Rollups là nó đưa khâu đồng thuận, quản lý mạng lưới về luôn cho Layer-1, trong khi Smart Contract Rollup thì có các DAO, hội đồng biểu quyết mỗi khi muốn update bất cứ thứ gì trong Smart Contract gốc. Chính vì sự khác nhau này, Enshrined gặp khó trong việc tích hợp EIP-4844 và không nhanh bằng các đối thủ sử dụng cơ chế Smart Contract Rollups.
Quay lại so sánh với Based, Enshrined về cơ bản vẫn sẽ có một mạng lưới Sequencer nội bộ trên Layer-2. Điểm khác biệt thứ hai là việc đặt Smart Contract ở Layer-1 như đã đề cập ở trên.
Tóm lại
Trên đây là những so sánh sơ bộ giữa các mô hình và khái niệm có thể gây hiểu lầm cho anh em. Nhìn chung, vì lộ trình phát triển của Ethereum là Modular (tức là phân tách các tác vụ ra và giao cho từng tổ chức để vận hành), nên để dễ dàng so sánh giữa các phương pháp tiếp cận, điểm mạnh yếu, anh em nên dựa vào các tác vụ chính của Blockchain như đã nêu ở trên.
Hi vọng bài viết này sẽ phần nào giúp anh em đỡ rối trong việc phân biệt và nhận biết các dạng Rollups mới. Rất mong sớm được gặp lại anh em trong một bài viết mới.
Mytour