Rollup là một giải pháp khả năng mở rộng cho Ethereum Layer 2, nhằm mục đích nâng cao thông lượng giao dịch của Ethereum bằng cách xử lý các giao dịch off-chain. Optimistic Rollup, như tên gọi cho thấy, sử dụng cơ chế optimistic. Optimistic Rollup giả định rằng tất cả các giao dịch trên Layer 2 đều hợp lệ và nén nhiều giao dịch thành một lần gửi tới Ethereum. Sau khi gửi, cần khoảng thời gian một tuần mà trong đó bất kỳ người dùng on-chain nào cũng đều có thể thách thức tính xác thực của các giao dịch. Nếu phát hiện gian lận trong quá trình cập nhật trạng thái, người thử thách có thể nhận được phần thưởng. Không còn nghi ngờ gì nữa, Optimistic Rollup là giải pháp sáng tạo và thiết thực nhất cho Ethereum Layer 2 với các chi tiết kỹ thuật đáng được khám phá của mình. Bài viết này sẽ cung cấp phân tích một cách ngắn gọn về các chi tiết triển khai của Optimistic Rollup và đi sâu vào các nguyên tắc kỹ thuật.
Trên Optimistic Rollup Layer 2, các giao dịch của người dùng được gửi đến người vận hành nút Optimistic Rollup. Các nút này đóng vai trò là "người xác thực" và "người tổng hợp", chịu trách nhiệm tổng hợp và xác thực các giao dịch. Chúng nén dữ liệu của nhiều giao dịch thành một giao dịch duy nhất, sau khi nén, giao dịch này sẽ đi vào nhóm giao dịch của Ethereum Layer 1, giống như bất kỳ giao dịch nào khác. Cuối cùng, các nút sẽ nhận và xử lý các giao dịch và xuất bản các khối trên Ethereum blockchain. Bất kỳ ai cũng có thể trở thành một nút Optimistic Rollup, nhưng tương tự như cơ chế Bằng chứng cổ phần (PoS), các nút được yêu cầu cung cấp một khoản nạp bảo mật cho mạng Ethereum như một sự đảm bảo cho tính toàn vẹn của chúng.
Trong quá trình gửi khối, các nút không xác minh tính hợp pháp của các chuyển đổi trạng thái. Tuy nhiên, họ cung cấp thời gian thử thách "bằng chứng gian lận" kéo dài một tuần cho khối. Nếu không có nút hoặc người dùng nào thách thức tính hợp pháp của khối trong khoảng thời gian này, khối sẽ được xác nhận. Nếu thử thách "bằng chứng gian lận" thành công được thực hiện, nút đã xuất bản khối sẽ mất tiền nạp bảo mật. Để khuyến khích việc phát hiện hành vi gian lận, khoản nạp bảo mật được thưởng cho người dùng chứng minh thành công hành vi gian lận. Thông qua cách tiếp cận này, Optimistic Rollup sử dụng các biện pháp khuyến khích của kinh tế học mã hoá để đảm bảo tính trung thực và độ tin cậy của các nút.
Một giao dịch Ethereum thông thường, chẳng hạn như gửi ETH, thường tiêu tốn khoảng 110 byte. Tuy nhiên, việc gửi ETH trên Optimistic Rollup chỉ tiêu tốn khoảng 12 byte. Để đạt được điều này, Optimistic Rollup sử dụng các kỹ thuật mã hóa nâng cao đơn giản hơn.
Trong các giao dịch Optimistic Rollup Layer 2, nonce hoàn toàn bị lược bỏ và thay vào đó được khôi phục từ trạng thái trước. Thông tin liên quan đến gas như Phí gas và Gas được chuyển ra khỏi giao dịch Layer 2. Các trường To và From không còn yêu cầu địa chỉ Ethereum; thay vào đó, một cây con được thêm vào trạng thái để lưu trữ sơ đồ dữ liệu của các chỉ báo tới các địa chỉ. Giá trị có thể được lưu trữ bằng ký hiệu khoa học, chỉ yêu cầu 3 chữ số để chuyển khoản. Đối với chữ ký, nhiều giao dịch có thể được tổng hợp bằng cách sử dụng chữ ký tổng hợp BLS, giảm mức tiêu thụ bộ nhớ cho từng chữ ký giao dịch riêng lẻ. Chữ ký tổng hợp này có thể kiểm tra hàng loạt toàn bộ thư và người gửi. Ngoài ra, các dữ liệu giao dịch này được lưu trữ trong trường Calldata on-chain, có phí gas tương đối thấp.
Dữ liệu được tải lên không chỉ bao gồm dữ liệu và nội dung giao dịch nói trên mà còn cả gốc cây Merkle trước và sau hàng loạt giao dịch (bao gồm dữ liệu trạng thái như tài khoản, số dư và mã hợp đồng, do đó được gọi là gốc trạng thái). Nó cũng bao gồm dữ liệu được sử dụng để chứng minh (hoặc xác minh) tính hợp pháp của quá trình chuyển đổi trạng thái. Các kỹ thuật nén này rất quan trọng để đạt được khả năng mở rộng bằng cách sử dụng Optimistic Rollup. Hiện tại, sau khi nén, Optimistic Rollup có thể cung cấp thông lượng cao hơn Ethereum hơn 30 lần.
Optimistic Rollup triển khai một hợp đồng thông minh cụ thể được gọi là hợp đồng Rollup trên Ethereum Layer1. Hợp đồng này chịu trách nhiệm quản lý trạng thái của Rollup, bao gồm theo dõi số dư của người dùng, xử lý nạp, rút và giải quyết tranh chấp. Trong Optimistic Rollup, các giao dịch được thu thập và tổng hợp bởi các nút off-chain, nhóm nhiều giao dịch thành một "khối Rollup". Khối này chứa nội dung giao dịch và gốc cây Merkle của trạng thái tài khoản mới.
Sau đó, các nút xuất bản dữ liệu tổng hợp dưới dạng calldata trên Ethereum. Calldata là một khu vực không thể sửa đổi và không liên tục trong hợp đồng thông minh, tương tự như bộ nhớ trong. Là một phần nhật ký lịch sử của blockchain, calldata không được lưu trữ như một phần trạng thái của Ethereum. Vì calldata không liên quan đến bất kỳ phần nào trong trạng thái của Ethereum, nên việc lưu trữ dữ liệu on-chain bằng calldata sẽ tiết kiệm chi phí hơn.
Như đã đề cập trước đây, dữ liệu được tải lên không chỉ bao gồm nội dung giao dịch mà còn cả gốc cây Merkle trước và sau giao dịch. Gốc cây Merkle đại diện cho trạng thái Optimistic Rollup tại bất kỳ thời điểm nào, bao gồm tài khoản, số dư, mã hợp đồng, v.v. Nó còn được gọi là "cây trạng thái" và đóng vai trò là hình thức tổ chức của trạng thái Optimistic Rollup. Các nút lá của cây Merkle đại diện cho trạng thái tài khoản và nút gốc đại diện cho giá trị cuối cùng. Các thay đổi trong giao dịch Layer 2 của Optimistic Rollup dẫn đến cập nhật trạng thái tài khoản, từ đó ảnh hưởng đến thông tin của các nút lá, cuối cùng dẫn đến thay đổi giá trị hash gốc. Người vận hành Layer 2 duy trì cục bộ cây trạng thái của các tài khoản Layer 2, ghi lại các giá trị hash gốc trước và sau khi các giao dịch hàng loạt xảy ra, đồng thời tải giá trị hash gốc này lên trong khi đang tải hàng loạt giao dịch.
Gốc cây Merkle này (gốc trạng thái) tham chiếu trạng thái mới nhất của Rollup, trải qua quá trình hash và được lưu trữ trong hợp đồng Rollup. Mỗi quá trình chuyển đổi trạng thái on-chain tạo ra một trạng thái Rollup mới và các nút gửi trạng thái này bằng cách tính toán gốc trạng thái mới.
Khi các nút xuất bản một khối, chúng cần gửi cả trạng thái gốc cũ và trạng thái gốc mới. Nếu gốc trạng thái cũ khớp với gốc trạng thái hiện có trong hợp đồng on-chain, thì gốc trạng thái sau sẽ bị loại bỏ và thay thế bằng gốc trạng thái mới. Các nút cũng cần gửi gốc cây Merkle cho chính các giao dịch đó. Điều này cho phép mọi người chứng minh rằng các giao dịch được bao gồm trong khối bằng cách cung cấp bằng chứng cây Merkle. Gốc cây Merkle rất quan trọng để chứng minh các thay đổi trạng thái trong Optimistic Rollup.
Optimistic Rollup cho phép mọi người cung cấp thông tin giao dịch và thông tin chuyển đổi trạng thái, đồng thời xuất bản các khối mà không cần cung cấp bằng chứng hợp lệ. Để đảm bảo tính bảo mật của Ethereum blockchain, Optimistic Rollup đã thiết lập thời hạn một tuần, trong thời gian đó người dùng có thể đưa ra nghi ngờ về các khối (bao gồm chuyển đổi trạng thái và thông tin khác).
Nếu ai đó nghi ngờ, giao thức Optimistic Rollup sẽ bắt đầu tính toán bằng chứng gian lận. Bằng cách lặp lại các giao dịch dẫn đến chuyển đổi trạng thái on-chain, gốc trạng thái mới được tính toán. Gốc trạng thái được tính toán này sau đó được so sánh với gốc trạng thái do trình sắp xếp thứ tự đề xuất. Nếu các nút hoặc người dùng khác phát hiện ra sự khác biệt giữa trạng thái khối cuối cùng và trạng thái do nút đề xuất, thì thử thách chứng minh gian lận đã thành công và quá trình chuyển đổi trạng thái bị hủy bỏ. Đồng thời, nút thách thức bị phạt và trái phiếu của họ bị tịch thu và trao cho người thách đấu.
Thực hiện lại các giao dịch trên Ethereum để phát hiện gian lận và yêu cầu xuất bản các cam kết trạng thái cho các giao dịch riêng lẻ cũng như thêm dữ liệu phải được xuất bản on-chain. Lặp lại các giao dịch cũng phát sinh chi phí gas đáng kể. Hiện tại, thời gian thử thách cho Optimistic Rollup là một tuần, nhưng do lo ngại về hiệu quả sử dụng vốn, cộng đồng đang tích cực thảo luận xem có nên rút ngắn thời gian thử thách hay không.
Optimistic Rollup không chỉ hỗ trợ khả năng mở rộng của Ethereum mà còn kết hợp toàn bộ chức năng của hợp đồng thông minh Ethereum vào khung Layer2, cung cấp một máy ảo OVM hoàn chỉnh Turing để phát triển và triển khai các dApp.
Máy ảo OVM là một môi trường thực thi đầy đủ tính năng, hoàn toàn tương thích với máy ảo Ethereum EVM và được thiết kế cho các hệ thống Layer2. Với máy ảo OVM, các nhà phát triển có thể thực hiện tất cả các hoạt động Ethereum và Rollup on-chain và tương tác với blockchain thông qua API. Ngoài ra, máy ảo OVM đơn giản hóa quá trình chuyển dApps sang Layer2. Thay vì triển khai các giải pháp mở rộng Layer2 khác nhau, các đội ngũ dự án có thể chỉ cần tích hợp với OVM và sử dụng các cấu trúc Layer2 khác nhau của nó.
Có hai mạng Layer2 được phát triển dựa trên giao thức Optimistic Rollup: Optimism và Arbitrum. Hiện tại, Optimism và Arbitrum là hệ sinh thái Layer 2 lớn nhất trong không gian Ethereum, với tổng giá trị bị khóa là 4 tỷ USD và vẫn đang có mức tăng trưởng đáng kể. Nhiều dự án nổi tiếng cũng đã tham gia Optimistic Rollup, chẳng hạn như UniSwap, SushiSwap và các dự án khác.
Tuy nhiên, Optimistic Rollup không phải là dự án duy nhất trong ngành và phải đối mặt với sự cạnh tranh từ ZK Rollup. Như đã đề cập trước đó, Optimistic Rollup dựa trên bằng chứng gian lận, trong đó hệ thống tin tưởng một cách lạc quan vào tính chính xác của dữ liệu giao dịch và đảm bảo tính hợp lệ của giao dịch thông qua logic kinh tế của các thách thức gian lận. Mặt khác, ZK Rollup là một giải pháp có khả năng mở rộng dựa trên bằng chứng zero-knowledge, trong đó các giao dịch off-chain được xử lý hàng loạt và bằng chứng về tính hợp lệ của mật mã học được tạo để xác minh tính xác thực của hàng loạt giao dịch. Sự vượt trội của dự án này so với dự án kia đòi hỏi phải thử nghiệm thêm trong một khoảng thời gian dài hơn.