
Vitalik: Di chuyển NFT lên Layer2, làm thế nào để chúng tương thích tốt khi di chuyển giữa các Rollup?
Tuyển chọn TechFlowTuyển chọn TechFlow

Vitalik: Di chuyển NFT lên Layer2, làm thế nào để chúng tương thích tốt khi di chuyển giữa các Rollup?
Chúng ta cần chuyển NFT sang hệ sinh thái lớp 2 (L2) để giảm phí. Tuy nhiên, để thực hiện điều này một cách chính xác cần có tiêu chuẩn di động liên Rollup tốt, nhờ đó hệ sinh thái có thể tránh bị khóa vào một L2 cụ thể.
Tác giả: Vitalik Buterin
Biên dịch: Khải Nhĩ, Babbitt
Hệ sinh thái NFT đang phát triển nhanh chóng và đã trở thành một phần quan trọng trong việc tiêu thụ gas trên chuỗi Ethereum. Tính non trẻ và chưa vững chắc tương đối của hệ sinh thái NFT, cùng với nhu cầu tránh phí cao hơn do bản chất phi tài chính của phần lớn NFT, khiến NFT trở thành mục tiêu hàng đầu để chuyển sang mạng lớp 2 (Layer 2). Tuy nhiên, điều này đặt ra câu hỏi về cách di chuyển NFT lên Layer 2.
Một đề xuất đơn giản là: phối hợp trong cộng đồng để chuyển toàn bộ hệ sinh thái NFT sang một nền tảng Rollup duy nhất (ví dụ như Arbitrum, vì hiện tại nó đã hỗ trợ triển khai hợp đồng tổng quát), nhưng phương án này có một số nhược điểm quan trọng:
- Tất cả các nền tảng rollup chính hỗ trợ EVM hiện nay đều có cửa hậu, bộ sắp xếp tập trung hoặc các tính năng thử nghiệm khác; việc giao toàn bộ hệ sinh thái cho một rollup duy nhất tiềm ẩn rủi ro, và còn chưa rõ liệu rollup đó sẽ phát triển vượt qua những đặc điểm này như thế nào.
- Hệ sinh thái NFT có thể trở nên quá lớn đến mức một rollup đơn lẻ không thể xử lý an toàn mọi giao dịch.
- Bất kỳ phần nào của hệ sinh thái NFT, thậm chí toàn bộ hệ sinh thái NFT, cũng không phải là một thế giới khép kín; chúng cần tương tác được với các phần khác của hệ sinh thái Ethereum.
Bài viết này đề xuất một giải pháp về cách làm cho NFT thân thiện với đa rollup, cho phép NFT di chuyển xuyên suốt hệ sinh thái Layer 2.
Giải pháp đề xuất 1
NFT sẽ được đăng ký trước tiên trên một rollup (hoặc chuỗi gốc). Thông qua việc tạo một NFT được bao bọc (wrapped), NFT có thể nhảy giữa các rollup khác nhau (hoặc chuỗi gốc).
Quy trình bao bọc NFT như sau:
1. Trên Rollup A, gửi NFT (gọi là X) vào hợp đồng quản lý bao bọc, chỉ định (i) rollup đích và (ii) chủ sở hữu ban đầu. Hợp đồng quản lý lưu lại một bản ghi trong bộ nhớ, cấp cho X một số thứ tự mới R, đồng thời lưu rollup đích (gọi là B) và chủ sở hữu ban đầu trên rollup đích (gọi tài khoản này là O1).
2. Trên Rollup B, bất kỳ ai cũng có thể sử dụng hợp đồng quản lý bao bọc trên Rollup B để tạo một NFT được bao bọc. Việc tạo NFT bao bọc yêu cầu chỉ định rollup nguồn và số thứ tự. Chỉ chủ sở hữu được chỉ định mới có thể tạo một NFT bao bọc "hợp lệ" của X bằng cách khai báo (R, A) làm số thứ tự và rollup nguồn. Lưu ý rằng có thể tạo một NFT bao bọc vô hiệu (không trỏ tới nội dung nào); Rollup B không biết cái nào là hợp lệ hay vô hiệu. Hợp đồng quản lý lưu trữ bộ dữ liệu (số thứ tự, rollup nguồn, chủ sở hữu ban đầu) và ngăn chặn việc tạo nhiều NFT từ cùng một bộ dữ liệu.
3. Để rút NFT khỏi trạng thái bao bọc, chủ sở hữu hiện tại của wrapped-X trên Rollup B phải gửi nó trở lại hợp đồng quản lý, hợp đồng này sẽ phát hành một biên nhận nói rằng “NFT với số thứ tự R, rollup nguồn A và chủ sở hữu ban đầu O1 vừa thoát khỏi trạng thái bao bọc, với chủ sở hữu mới mong muốn là O2”.
4. Hợp đồng quản lý có thể giao X cho O2 khi nhận được bằng chứng về biên nhận từ Rollup B, kiểm tra số thứ tự, rollup nguồn và chủ sở hữu ban đầu dựa trên thông tin đã lưu trữ, và xác minh tính hợp lệ.


Lưu ý rằng việc rút tài sản sẽ có độ trễ thời gian, vì root trạng thái của Optimistic Rollup cần khoảng 1 tuần để hoàn tất xác nhận nhằm xác minh biên nhận. Cho đến nay, cách duy nhất để thực hiện nhiều bước chuyển tiếp nhanh hơn là dùng nhiều lớp bao bọc.
Để người dùng xác minh wrapped-X có hợp pháp hay không, họ cần tự mình xác minh trạng thái trên Rollup B và biên nhận trên Rollup A.
Mở rộng: Thêm chức năng chuyển đổi giữa các Rollup
Trên Rollup B, chủ sở hữu của wrapped-X có thể gửi nó cho hợp đồng quản lý kèm theo chỉ thị phát hành một biên nhận khác: “NFT với số thứ tự R, rollup nguồn A và chủ sở hữu ban đầu O1 vừa được chuyển tới Rollup C, với chủ sở hữu mới mong muốn là O2”.
Trên Rollup C, bất kỳ ai cũng có thể tạo đối tượng wrapped-X bằng cách chỉ định rollup nguồn gốc (trong ví dụ này là Rollup A), số thứ tự và chủ sở hữu ban đầu, và wrapped-X này trên Rollup C có thể giao dịch tự do. Tuy nhiên, để có thể rút tài sản, cần gửi biên nhận từ Rollup B về Rollup A.
Điều thực sự xảy ra là khi NFT di chuyển từ một rollup sang rollup khác, chuỗi chuyển tiếp để lại một chuỗi biên nhận, mỗi biên nhận trong chuỗi này được phản chiếu (mirror) về Rollup A và xử lý theo thứ tự tại một thời điểm. Trong tương lai, khi trạng thái của các rollup khác được xác nhận cuối cùng (điều này có thể được tối ưu hóa về mặt dung lượng trong ngắn hạn bằng cam kết Kate, và về lâu dài bằng chứng ZK-SNARK cho toàn bộ chuỗi biên nhận).
Để người dùng xác minh wrapped-X là hợp pháp, họ cần xác minh toàn bộ chuỗi biên nhận trên mọi rollup liên quan đến việc chuyển đổi giữa các rollup (hoặc ít nhất là chuỗi biên nhận kể từ lần phản chiếu gần nhất về rollup).
Ngoài ra, xin lưu ý rằng giao thức này có thể được đơn giản hóa: “rút tài sản” chỉ là một lần chuyển đổi giữa các rollup về Rollup A, nếu hợp đồng bao bọc nhận diện được rằng số thứ tự cụ thể do Rollup A phát hành hiện đang thuộc về Rollup A, thì nó có thể trực tiếp đổi lấy NFT gốc.
Mở rộng 2: Phát hành tiết kiệm gas trên chuỗi gốc
Tất cả NFT có thể được phát hành theo cách mà chúng được “sở hữu” bởi hợp đồng quản lý bao bọc trên chuỗi gốc Ethereum. Để tiết kiệm gas, hợp đồng quản lý sẽ có chức năng tạo ra một loạt số thứ tự và chuyển chúng sang rollup. Thực tế, tất cả NFT đều được tạo sẵn, nhưng chưa được gán bất kỳ “ý nghĩa” nào (hãy hình dung: có 2**256 NFT “tế bào gốc” chưa phân biệt), và chúng được chuyển hàng loạt sang rollup.
Quá trình “phát hành” giờ đây trở thành quá trình trao ý nghĩa. Điều này có thể thực hiện bằng cách truyền “hash nội dung” trong biên nhận, giống như cách truyền chủ sở hữu: nếu NFT chưa có ý nghĩa (nó là một “tế bào gốc”), chủ sở hữu có thể gán cho nó một nội dung, biến nó thành một NFT “phân biệt”. Chuỗi gốc chỉ biết được nội dung của NFT sau khi xác minh chuỗi biên nhận, cho đến khi nội dung được gán (thực tế, việc xác minh biên nhận phải dùng ZK-SNARK thì mới khả thi).
Việc này cho phép tất cả NFT đều được “gốc rễ” trên chuỗi gốc thay vì trên rollup. Điều này hữu ích trong việc xử lý tình huống rollup bị gián đoạn hoặc trở nên không khả thi, cũng như các trường hợp ứng dụng cần di dời vĩnh viễn sang miền khác.
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









