Nguồn: Bitcoin Magazine; Dịch: Ngũ Châu, Vàng Tài chính
Rollups gần đây đã trở thành tâm điểm của việc mở rộng BTC, trở thành điều đầu tiên thực sự “lấy mất ánh sáng” từ Mạng Lighting Network, trong phạm vi quan tâm rộng hơn. Rollups nhằm trở thành một lớp off-chain không bị ràng buộc hoặc hạn chế bởi hạn chế thanh khoản cốt lõi của Mạng Lighting Network, nghĩa là người dùng cuối cùng cần có người cấp phát trước (hoặc “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ộ từ người gửi đến người nhận.
Những hệ thống này ban đầu chạy 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 nhằm 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ề các tính năng của Rollup lý tưởng mà mọi người đang theo đuổi trong dài hạn, điều này phụ thuộc vào khả năng mà BTC hiện tại không hỗ trợ trực tiếp, đó là khả năng xác minh chứng cớ không kiến thức (ZKP) trên BTC.
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 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 tài khoản trong Rollup. Tất cả các tài khoản này được ủy quyền bằng Khóa công khai/Khóa riêng, do đó để thực hiện chi trả off-chain, người dùng vẫn phải ký tên Chìa khoá bảo mật cho một số nội dung. Phần này của cấu trúc cho phép người dùng rời khỏi bất kỳ lúc nào mà không cần phép cấp, chỉ cần tạo giao dịch chứng minh tài khoản của họ là một phần của cây Merkle, họ có thể rút khỏi Rollup một cách đơn phương mà không cần phép cấp từ nhà khai thác.
Người vận hành Rollup phải bao gồm một ZKP trong giao dịch để cập nhật gốc merkle 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. Bằng chứng 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ư tài khoản off-chain đã được ủy quyền đúng đắn từ chủ sở hữu tài khoản và người vận hành đã không cập nhật số dư với ý đồ xấu để đánh cắp tiền của người dùng hoặc phân phối lại nó 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ó, thì làm sao họ đặt nhánh của mình vào cây để có thể thoát ra bất cứ lúc nào mà không cần phải được cấp phép?
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 cả cây, điều đó quá ngớ ngẩn, mà là thông tin cần thiết để tái tạo cây. Trong một cách 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 của 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 Khối (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 một chiều. Quy tắc rollup yêu cầu dữ liệu này được bao gồm trong rollup chính thức mà Khối chuỗi cung cấp cho người dùng, có nghĩa là các giao dịch không bao gồm tóm tắt tài khoản hoặc 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 cách khác để xử lý vấn đề khả năng sử dụng dữ liệu rút ra khỏi khối là đặt dữ liệu ở một nơi khác ngoài chuỗi Khối. Điều này đặt ra những vấn đề tinh vi, rollup vẫn cần đảm bảo rằng dữ liệu có sẵn ở nơi khác. Truyền thống, các 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 lớp khả năng sử dụng dữ liệu cho hệ thống như rollup.
Điều này tạo ra một thách thức về an ninh mạnh mẽ tương tự. Khi dữ liệu được phát hành trực tiếp trên Khối Bitcoin, các quy tắc Nhận thức chung có thể đảm bảo rằng nó hoàn toàn 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, tức là dữ liệu đã được phát hành trên một 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 các chứng chỉ on-chain khác, đây cuối cùng là một vấn đề Máy Oracle. Khối của Bitcoin không thể xác minh hoàn toàn bất cứ điều gì ngoại trừ những gì xảy ra trên chính nó on-chain, điều tốt nhất nó có thể làm là xác minh ZKP. Tuy nhiên, ZKP không thể xác minh xem 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 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 các cuộc tấn công giữ lại dữ liệu, tức là tạo cam kết với dữ liệu được xuất bản và sử dụng nó để thúc đẩy rollup, nhưng dữ liệu thực tế không sẵn có. Đ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à hoàn toàn phụ thuộc vào giá trị và cấu trúc động lực của hệ thống ngoài BTC.
Tiến hoặc rút lui
Điều này đưa ra tình thế khó khăn cho rollup. Khi liên quan đến vấn đề sẵn có dữ liệu, thực tế có sự lựa chọn nhị phân giữa việc công bố dữ liệu trên chuỗi khối BTC hoặc ở một nơi khác. Lựa chọn này ảnh hưởng lớn đến tính an toàn, chủ quyền và khả năng mở rộng của rollup.
Một phía, 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 khả năng mở rộng của rollup. Không gian Khối là hữu hạn, điều này đặt ra giới hạn cho số lượng rollup có thể tồn tại trong một lần cũng như tổng số giao dịch có thể được xử lý off-chain. Mỗi lần cập nhật rollup đều cần một không gian Khối tương ứng với số tài khoản đã thay đổi số dư từ lần cập nhật trước đến nay. Lý thuyết thông tin chỉ cho phép dữ liệu được nén đến một mức độ nhất định, tại điểm này, không còn tiềm năng mở rộng nào nữa.
Mặt khác, việc sử dụng các lớp khác nhau để đạt được tính khả dụng của 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 các vấn đề mới về bảo mật và chủ quyền. Trong Rollup sử dụng BTC để đạt được tính khả dụng của dữ liệu, nếu dữ liệu mà người dùng cần trích xuất không được tự động công bố trên blockchain, trạng thái của Rollup sẽ không thể thay đổi. 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 để 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 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 công nghệ Rollup lý tưởng trên BTC, thật sự thực hiện được rút tiền từ một phía của người dùng, đ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.
Tạp chí Bitcoin: Rollup đối mặt với khó khăn gì?
Nguồn: Bitcoin Magazine; Dịch: Ngũ Châu, Vàng Tài chính
Rollups gần đây đã trở thành tâm điểm của việc mở rộng BTC, trở thành điều đầu tiên thực sự “lấy mất ánh sáng” từ Mạng Lighting Network, trong phạm vi quan tâm rộng hơn. Rollups nhằm trở thành một lớp off-chain không bị ràng buộc hoặc hạn chế bởi hạn chế thanh khoản cốt lõi của Mạng Lighting Network, nghĩa là người dùng cuối cùng cần có người cấp phát trước (hoặc “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ộ từ người gửi đến người nhận.
Những hệ thống này ban đầu chạy 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 nhằm 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ề các tính năng của Rollup lý tưởng mà mọi người đang theo đuổi trong dài hạn, điều này phụ thuộc vào khả năng mà BTC hiện tại không hỗ trợ trực tiếp, đó là khả năng xác minh chứng cớ không kiến thức (ZKP) trên BTC.
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 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 tài khoản trong Rollup. Tất cả các tài khoản này được ủy quyền bằng Khóa công khai/Khóa riêng, do đó để thực hiện chi trả off-chain, người dùng vẫn phải ký tên Chìa khoá bảo mật cho một số nội dung. Phần này của cấu trúc cho phép người dùng rời khỏi bất kỳ lúc nào mà không cần phép cấp, chỉ cần tạo giao dịch chứng minh tài khoản của họ là một phần của cây Merkle, họ có thể rút khỏi Rollup một cách đơn phương mà không cần phép cấp từ nhà khai thác.
Người vận hành Rollup phải bao gồm một ZKP trong giao dịch để cập nhật gốc merkle 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. Bằng chứng 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ư tài khoản off-chain đã được ủy quyền đúng đắn từ chủ sở hữu tài khoản và người vận hành đã không cập nhật số dư với ý đồ xấu để đánh cắp tiền của người dùng hoặc phân phối lại nó 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ó, thì làm sao họ đặt nhánh của mình vào cây để có thể thoát ra bất cứ lúc nào mà không cần phải được cấp phép?
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 cả cây, điều đó quá ngớ ngẩn, mà là thông tin cần thiết để tái tạo cây. Trong một cách 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 của 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 Khối (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 một chiều. Quy tắc rollup yêu cầu dữ liệu này được bao gồm trong rollup chính thức mà Khối chuỗi cung cấp cho người dùng, có nghĩa là các giao dịch không bao gồm tóm tắt tài khoản hoặc 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 cách khác để xử lý vấn đề khả năng sử dụng dữ liệu rút ra khỏi khối là đặt dữ liệu ở một nơi khác ngoài chuỗi Khối. Điều này đặt ra những vấn đề tinh vi, rollup vẫn cần đảm bảo rằng dữ liệu có sẵn ở nơi khác. Truyền thống, các 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 lớp khả năng sử dụng dữ liệu cho hệ thống như rollup.
Điều này tạo ra một thách thức về an ninh mạnh mẽ tương tự. Khi dữ liệu được phát hành trực tiếp trên Khối Bitcoin, các quy tắc Nhận thức chung có thể đảm bảo rằng nó hoàn toàn 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, tức là dữ liệu đã được phát hành trên một 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 các chứng chỉ on-chain khác, đây cuối cùng là một vấn đề Máy Oracle. Khối của Bitcoin không thể xác minh hoàn toàn bất cứ điều gì ngoại trừ những gì xảy ra trên chính nó on-chain, điều tốt nhất nó có thể làm là xác minh ZKP. Tuy nhiên, ZKP không thể xác minh xem 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 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 các cuộc tấn công giữ lại dữ liệu, tức là tạo cam kết với dữ liệu được xuất bản và sử dụng nó để thúc đẩy rollup, nhưng dữ liệu thực tế không sẵn có. Đ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à hoàn toàn phụ thuộc vào giá trị và cấu trúc động lực của hệ thống ngoài BTC.
Tiến hoặc rút lui
Điều này đưa ra tình thế khó khăn cho rollup. Khi liên quan đến vấn đề sẵn có dữ liệu, thực tế có sự lựa chọn nhị phân giữa việc công bố dữ liệu trên chuỗi khối BTC hoặc ở một nơi khác. Lựa chọn này ảnh hưởng lớn đến tính an toàn, chủ quyền và khả năng mở rộng của rollup.
Một phía, 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 khả năng mở rộng của rollup. Không gian Khối là hữu hạn, điều này đặt ra giới hạn cho số lượng rollup có thể tồn tại trong một lần cũng như tổng số giao dịch có thể được xử lý off-chain. Mỗi lần cập nhật rollup đều cần một không gian Khối tương ứng với số tài khoản đã thay đổi số dư từ lần cập nhật trước đến nay. Lý thuyết thông tin chỉ cho phép dữ liệu được nén đến một mức độ nhất định, tại điểm này, không còn tiềm năng mở rộng nào nữa.
Mặt khác, việc sử dụng các lớp khác nhau để đạt được tính khả dụng của 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 các vấn đề mới về bảo mật và chủ quyền. Trong Rollup sử dụng BTC để đạt được tính khả dụng của dữ liệu, nếu dữ liệu mà người dùng cần trích xuất không được tự động công bố trên blockchain, trạng thái của Rollup sẽ không thể thay đổi. 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 để 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 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 công nghệ Rollup lý tưởng trên BTC, thật sự thực hiện được rút tiền từ một phía của người dùng, điều đó sẽ như thế nào?