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