Nguồn: Bitcoin Magazine; Dịch: Ngũ Châu, Kinh tế màu vàng
Rollups gần đây đã trở thành trung tâm mở rộng BTC, trở thành cái đầu tiên thực sự ‘lấy đi cái vinh quang’ từ Mạng ánh sáng, trong phạm vi quan tâm rộng hơn. Rollups nhằm trở thành một lớp thứ hai ngoại chuỗi không bị ràng buộc hoặc hạn chế bởi sự hạn chế về thanh khoản cốt lõi của Mạng ánh sáng, nghĩa là người dùng cuối cùng cần phải có ai đó cấp phát trước (hoặc ‘cho vay’) tiền để nhận tiền, hoặc các nút trung gian cần có số dư kênh để tạo điều kiện cho số tiền thanh toán di chuyển toàn bộ hành trình từ người gửi đến người nhận.
Những hệ thống này ban đầu đã hoạt động trên Ethereum và các hệ thống Turing hoàn thành khác, nhưng gần đây, sự tập trung đã chuyển sang việc di dời chúng sang blockchain dựa trên UTXO (ví dụ: BTC). Bài viết này không dự định thảo luận về tình hình triển khai hiện tại trên BTC, mà là để thảo luận về tính năng Rollup lý tưởng mà mọi người đang theo đuổi trong thời gian dài, điều này phụ thuộc vào khả năng không được hỗ trợ hiện tại của BTC, tức là khả năng xác minh zk-SNARK trực tiếp trên BTC.
Cấu trúc cơ bản của Roll như sau: Mỗi tài khoản đơn lẻ (gọi là UTXO trong BTC) lưu trữ toàn bộ số dư của tất cả người dùng trong Rollup. UTXO này bao gồm một cam kết, cam kết này tồn tại dưới dạng gốc Merkle của cây Merkle, cam kết tất cả số dư hiện tại của các tài khoản trong Rollup. Tất cả các tài khoản này đều được ủy quyền bằng cặp Khóa công khai/Khóa riêng, do đó để thực hiện các chi phí off-chain, người dùng vẫn phải ký một số nội dung bằng Chìa khoá bảo mật. Phần này của cấu trúc cho phép người dùng rời đi bất cứ lúc nào mà không cần phải được phép, chỉ cần tạo ra chứng minh giao dịch rằng tài khoản của họ là một phần của cây Merkle, họ có thể rời khỏi Rollup một cách đơn phương mà không cần phải được phép từ người vận hành.
Người vận hành của Rollup phải bao gồm một ZKP trong giao dịch để cập nhật merkle root của số dư tài khoản trên chuỗi on-chain trong quá trình hoàn tất giao dịch off-chain, nếu thiếu ZKP này, giao dịch sẽ không hợp lệ và không thể được bao gồm trong Khối. Chứng minh này cho phép mọi người xác minh xem tất cả các thay đổi đối với số dư off-chain của tài khoản đã được phê duyệt đúng mức độ từ chủ sở hữu tài khoản và xem xét xem người vận hành có cập nhật số dư một cách đúng đắn để đánh cắp tiền của người dùng hay không, hoặc phân phối lại một cách không trung thực cho người dùng khác.
Vấn đề là nếu chỉ có gốc cây merkle được xuất bản trên chuỗi, người dùng có thể xem và truy cập nó, vậy họ làm thế nào để đặt nhánh của họ vào cây, để họ có thể rút khỏi mà không cần phép thuật khi họ muốn?
Rollup phù hợp
Trong Rollup thích hợp, mỗi khi xác nhận giao dịch off-chain mới và trạng thái của tài khoản Rollup thay đổi, thông tin sẽ được đưa trực tiếp vào chuỗi khối. Không phải toàn bộ cây, điều đó quá ngớ ngẩn, mà là thông tin cần thiết để xây dựng lại cây. Trong một cách triển khai đơn giản, tóm tắt của tất cả tài khoản hiện có trong Rollup sẽ bao gồm số dư, và tài khoản chỉ được thêm vào trong giao dịch cập nhật Rollup.
Trong các triển khai nâng cao hơn, phương sai cân bằng được sử dụng. Đây thực chất là một bản tóm tắt về tài khoản tăng hoặc giảm tiền trong quá trình cập nhật. Điều này làm cho mỗi bản Cập Nhật rollup chỉ chứa các thay đổi số dư tài khoản xảy ra. Sau đó, người dùng có thể chỉ cần quét chuỗi và “thực hiện phép tính” từ đầu Rollup để đến trạng thái hiện tại của số dư tài khoản, cho phép họ xây dựng lại cây Merkle của số dư hiện tại.
Điều này giúp tiết kiệm một lượng lớn chi phí và không gian (do đó tiết kiệm tiền), đồng thời vẫn cho phép người dùng đảm bảo truy cập thông tin cần thiết để thoát khỏi một cách đơn phương. Các quy tắc rollup yêu cầu rằng dữ liệu này được bao gồm trong rollup chính thức do Khối chuỗi cung cấp cho người dùng, nghĩa là các giao dịch không bao gồm tóm tắt tài khoản hoặc sự khác biệt tài khoản được coi là giao dịch không hợp lệ.
Thời hạn
Một cách khác để xử lý vấn đề sẵn có dữ liệu người dùng là đặt dữ liệu ở một nơi khác ngoài chuỗi Khối. Điều này đưa ra vấn đề tinh tế, rollup vẫn cần đảm bảo rằng dữ liệu có sẵn ở nơi khác. Truyền thống, chuỗi Khối khác được sử dụng cho mục đích này, được thiết kế đặc biệt để làm nơi có sẵn dữ liệu cho hệ thống như rollup.
Điều này đã tạo ra một tình huống khó khăn về bảo mật. Khi dữ liệu được phát hành trực tiếp lên Khối Bitcoin, Nhận thức chung có thể đảm bảo rằng nó tuyệt đối chính xác. Tuy nhiên, khi nó được phát hành trên hệ thống bên ngoài, điều tốt nhất mà nó có thể làm là xác minh chứng chỉ SPV, nghĩa là dữ liệu đã được phát hành trên hệ thống khác.
Điều này yêu cầu xác minh dữ liệu tồn tại trên Khối on-chain khác, điều này cuối cùng là vấn đề Máy Oracle. Chuỗi BTC Khối không thể xác minh hoàn toàn bất cứ điều gì ngoại trừ những điều xảy ra trên Khối của nó on-chain, điều tốt nhất mà nó có thể làm là xác minh ZKP. Tuy nhiên, ZKP không thể xác minh Khối chứa dữ liệu rollup đã được phát sóng công khai thực sự sau khi được tạo ra. Nó không thể xác minh rằng thông tin bên ngoài thực sự được công khai cho tất cả mọi người.
Điều này đã mở ra cánh cửa cho cuộc tấn công giữ dữ liệu, nghĩa là tạo cam kết đối với dữ liệu đã được xuất bản và sử dụng nó để thúc đẩy rollup, nhưng thực tế dữ liệu không khả dụng. Điều này dẫn đến người dùng không thể rút tiền. Cách duy nhất để giải quyết thực sự là phụ thuộc hoàn toàn vào giá trị và cấu trúc kích thích của hệ thống ngoài BTC.
Tiến lùi vươn vòi
Điều này đặt ra một tình huống khó khăn cho rollup. Khi đối mặt với vấn đề khả năng sử dụng dữ liệu, tồn tại một sự lựa chọn nhị phân giữa việc đăng dữ liệu lên chuỗi khối BTC hoặc nơi khác. Lựa chọn này có ảnh hưởng lớn đến tính bảo mật, chủ quyền và khả năng mở rộng của rollup.
Một mặt, việc sử dụng Blockchain Bitcoin như một lớp dữ liệu khả dụng sẽ đặt một giới hạn cứng cho khả năng mở rộng của rollup. Không gian Khối là có hạn, điều này đặt giới hạn cho số lượng rollup có thể tồn tại cùng một lúc và tổng số giao dịch có thể xử lý off-chain của tất cả rollup. Mỗi lần cập nhật rollup đều yêu cầu không gian Khối tỷ lệ với số lượng tài khoản có số dư thay đổi kể từ lần cập nhật trước đó. Lý thuyết thông tin chỉ cho phép dữ liệu được nén đến một mức nhất định, và điều này đồng nghĩa với việc không còn tiềm năng mở rộng nữa.
Mặt khác, việc sử dụng các lớp khác nhau để thực hiện tính khả dụng dữ liệu sẽ loại bỏ giới hạn cứng về khả năng mở rộng, nhưng nó cũng mang đến các vấn đề về an ninh và chủ quyền mới. Trong việc sử dụng Rollup để thực hiện tính khả dụng dữ liệu bằng BTC, nếu dữ liệu mà người dùng cần trích xuất không được tự động xuất bản lên chuỗi khối, trạng thái của Rollup sẽ không thể thay đổi. Việc sử dụng Validiums, sự đảm bảo này hoàn toàn phụ thuộc vào khả năng của hệ thống bên ngoài được sử dụng để chống lại gian lận và ẩn dữ liệu.
Hiện tại, bất kỳ nhà sản xuất Khối nào trên hệ thống khả dụng dữ liệu bên ngoài đều có thể chiếm đoạt tiền của người dùng BTCRollup bằng cách sản xuất Khối mà không cần phải phát sóng thực tế khối đó, từ đó làm cho dữ liệu có sẵn.
Vậy nếu chúng ta thực sự thực hiện một phiên bản Rollup lý tưởng trên BTC, thực hiện rút tiền một chiều cho người dùng, thì điều đó sẽ như thế nào?
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
Bitcoin Magazine: Rollup đối mặt với những khó khăn gì?
Nguồn: Bitcoin Magazine; Dịch: Ngũ Châu, Kinh tế màu vàng
Rollups gần đây đã trở thành trung tâm mở rộng BTC, trở thành cái đầu tiên thực sự ‘lấy đi cái vinh quang’ từ Mạng ánh sáng, trong phạm vi quan tâm rộng hơn. Rollups nhằm trở thành một lớp thứ hai ngoại chuỗi không bị ràng buộc hoặc hạn chế bởi sự hạn chế về thanh khoản cốt lõi của Mạng ánh sáng, nghĩa là người dùng cuối cùng cần phải có ai đó cấp phát trước (hoặc ‘cho vay’) tiền để nhận tiền, hoặc các nút trung gian cần có số dư kênh để tạo điều kiện cho số tiền thanh toán di chuyển toàn bộ hành trình từ người gửi đến người nhận.
Những hệ thống này ban đầu đã hoạt động trên Ethereum và các hệ thống Turing hoàn thành khác, nhưng gần đây, sự tập trung đã chuyển sang việc di dời chúng sang blockchain dựa trên UTXO (ví dụ: BTC). Bài viết này không dự định thảo luận về tình hình triển khai hiện tại trên BTC, mà là để thảo luận về tính năng Rollup lý tưởng mà mọi người đang theo đuổi trong thời gian dài, điều này phụ thuộc vào khả năng không được hỗ trợ hiện tại của BTC, tức là khả năng xác minh zk-SNARK trực tiếp trên BTC.
Cấu trúc cơ bản của Roll như sau: Mỗi tài khoản đơn lẻ (gọi là UTXO trong BTC) lưu trữ toàn bộ số dư của tất cả người dùng trong Rollup. UTXO này bao gồm một cam kết, cam kết này tồn tại dưới dạng gốc Merkle của cây Merkle, cam kết tất cả số dư hiện tại của các tài khoản trong Rollup. Tất cả các tài khoản này đều được ủy quyền bằng cặp Khóa công khai/Khóa riêng, do đó để thực hiện các chi phí off-chain, người dùng vẫn phải ký một số nội dung bằng Chìa khoá bảo mật. Phần này của cấu trúc cho phép người dùng rời đi bất cứ lúc nào mà không cần phải được phép, chỉ cần tạo ra chứng minh giao dịch rằng tài khoản của họ là một phần của cây Merkle, họ có thể rời khỏi Rollup một cách đơn phương mà không cần phải được phép từ người vận hành.
Người vận hành của Rollup phải bao gồm một ZKP trong giao dịch để cập nhật merkle root của số dư tài khoản trên chuỗi on-chain trong quá trình hoàn tất giao dịch off-chain, nếu thiếu ZKP này, giao dịch sẽ không hợp lệ và không thể được bao gồm trong Khối. Chứng minh này cho phép mọi người xác minh xem tất cả các thay đổi đối với số dư off-chain của tài khoản đã được phê duyệt đúng mức độ từ chủ sở hữu tài khoản và xem xét xem người vận hành có cập nhật số dư một cách đúng đắn để đánh cắp tiền của người dùng hay không, hoặc phân phối lại một cách không trung thực cho người dùng khác.
Vấn đề là nếu chỉ có gốc cây merkle được xuất bản trên chuỗi, người dùng có thể xem và truy cập nó, vậy họ làm thế nào để đặt nhánh của họ vào cây, để họ có thể rút khỏi mà không cần phép thuật khi họ muốn?
Rollup phù hợp
Trong Rollup thích hợp, mỗi khi xác nhận giao dịch off-chain mới và trạng thái của tài khoản Rollup thay đổi, thông tin sẽ được đưa trực tiếp vào chuỗi khối. Không phải toàn bộ cây, điều đó quá ngớ ngẩn, mà là thông tin cần thiết để xây dựng lại cây. Trong một cách triển khai đơn giản, tóm tắt của tất cả tài khoản hiện có trong Rollup sẽ bao gồm số dư, và tài khoản chỉ được thêm vào trong giao dịch cập nhật Rollup.
Trong các triển khai nâng cao hơn, phương sai cân bằng được sử dụng. Đây thực chất là một bản tóm tắt về tài khoản tăng hoặc giảm tiền trong quá trình cập nhật. Điều này làm cho mỗi bản Cập Nhật rollup chỉ chứa các thay đổi số dư tài khoản xảy ra. Sau đó, người dùng có thể chỉ cần quét chuỗi và “thực hiện phép tính” từ đầu Rollup để đến trạng thái hiện tại của số dư tài khoản, cho phép họ xây dựng lại cây Merkle của số dư hiện tại.
Điều này giúp tiết kiệm một lượng lớn chi phí và không gian (do đó tiết kiệm tiền), đồng thời vẫn cho phép người dùng đảm bảo truy cập thông tin cần thiết để thoát khỏi một cách đơn phương. Các quy tắc rollup yêu cầu rằng dữ liệu này được bao gồm trong rollup chính thức do Khối chuỗi cung cấp cho người dùng, nghĩa là các giao dịch không bao gồm tóm tắt tài khoản hoặc sự khác biệt tài khoản được coi là giao dịch không hợp lệ.
Thời hạn
Một cách khác để xử lý vấn đề sẵn có dữ liệu người dùng là đặt dữ liệu ở một nơi khác ngoài chuỗi Khối. Điều này đưa ra vấn đề tinh tế, rollup vẫn cần đảm bảo rằng dữ liệu có sẵn ở nơi khác. Truyền thống, chuỗi Khối khác được sử dụng cho mục đích này, được thiết kế đặc biệt để làm nơi có sẵn dữ liệu cho hệ thống như rollup.
Điều này đã tạo ra một tình huống khó khăn về bảo mật. Khi dữ liệu được phát hành trực tiếp lên Khối Bitcoin, Nhận thức chung có thể đảm bảo rằng nó tuyệt đối chính xác. Tuy nhiên, khi nó được phát hành trên hệ thống bên ngoài, điều tốt nhất mà nó có thể làm là xác minh chứng chỉ SPV, nghĩa là dữ liệu đã được phát hành trên hệ thống khác.
Điều này yêu cầu xác minh dữ liệu tồn tại trên Khối on-chain khác, điều này cuối cùng là vấn đề Máy Oracle. Chuỗi BTC Khối không thể xác minh hoàn toàn bất cứ điều gì ngoại trừ những điều xảy ra trên Khối của nó on-chain, điều tốt nhất mà nó có thể làm là xác minh ZKP. Tuy nhiên, ZKP không thể xác minh Khối chứa dữ liệu rollup đã được phát sóng công khai thực sự sau khi được tạo ra. Nó không thể xác minh rằng thông tin bên ngoài thực sự được công khai cho tất cả mọi người.
Điều này đã mở ra cánh cửa cho cuộc tấn công giữ dữ liệu, nghĩa là tạo cam kết đối với dữ liệu đã được xuất bản và sử dụng nó để thúc đẩy rollup, nhưng thực tế dữ liệu không khả dụng. Điều này dẫn đến người dùng không thể rút tiền. Cách duy nhất để giải quyết thực sự là phụ thuộc hoàn toàn vào giá trị và cấu trúc kích thích của hệ thống ngoài BTC.
Tiến lùi vươn vòi
Điều này đặt ra một tình huống khó khăn cho rollup. Khi đối mặt với vấn đề khả năng sử dụng dữ liệu, tồn tại một sự lựa chọn nhị phân giữa việc đăng dữ liệu lên chuỗi khối BTC hoặc nơi khác. Lựa chọn này có ảnh hưởng lớn đến tính bảo mật, chủ quyền và khả năng mở rộng của rollup.
Một mặt, việc sử dụng Blockchain Bitcoin như một lớp dữ liệu khả dụng sẽ đặt một giới hạn cứng cho khả năng mở rộng của rollup. Không gian Khối là có hạn, điều này đặt giới hạn cho số lượng rollup có thể tồn tại cùng một lúc và tổng số giao dịch có thể xử lý off-chain của tất cả rollup. Mỗi lần cập nhật rollup đều yêu cầu không gian Khối tỷ lệ với số lượng tài khoản có số dư thay đổi kể từ lần cập nhật trước đó. Lý thuyết thông tin chỉ cho phép dữ liệu được nén đến một mức nhất định, và điều này đồng nghĩa với việc không còn tiềm năng mở rộng nữa.
Mặt khác, việc sử dụng các lớp khác nhau để thực hiện tính khả dụng dữ liệu sẽ loại bỏ giới hạn cứng về khả năng mở rộng, nhưng nó cũng mang đến các vấn đề về an ninh và chủ quyền mới. Trong việc sử dụng Rollup để thực hiện tính khả dụng dữ liệu bằng BTC, nếu dữ liệu mà người dùng cần trích xuất không được tự động xuất bản lên chuỗi khối, trạng thái của Rollup sẽ không thể thay đổi. Việc sử dụng Validiums, sự đảm bảo này hoàn toàn phụ thuộc vào khả năng của hệ thống bên ngoài được sử dụng để chống lại gian lận và ẩn dữ liệu.
Hiện tại, bất kỳ nhà sản xuất Khối nào trên hệ thống khả dụng dữ liệu bên ngoài đều có thể chiếm đoạt tiền của người dùng BTCRollup bằng cách sản xuất Khối mà không cần phải phát sóng thực tế khối đó, từ đó làm cho dữ liệu có sẵn.
Vậy nếu chúng ta thực sự thực hiện một phiên bản Rollup lý tưởng trên BTC, thực hiện rút tiền một chiều cho người dùng, thì điều đó sẽ như thế nào?