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 điều đầu tiên thực sự ‘cướp đi sự chú ý’ từ Mạng Lighting, và thu hút sự quan tâm rộng rãi 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 giới hạn thanh khoản của Lighting Network, nghĩa là người dùng cuối cần có người cấp phát trước (hoặc ‘mượn’) tiền để nhận tiền hoặc các nút trung gian cần có số dư kênh để thúc đẩy sự di chuyển toàn bộ số tiền thanh toá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 sự tập trung đã chuyển sang việc di dời chúng sang các blockchain dựa trên UTXO (ví dụ như BTC). Bài viết này không nhắm đến thảo luận về tình hình hiện tại của việc triển khai trên BTC, mà nhằm thảo luận về các tính năng của Rollup được lý tưởng hóa mà mọi người đã theo đuổi trong thời gian dài, và điều này phụ thuộc vào khả năng trực tiếp kiểm chứng không kiến thức (ZKP) trên BTC hiện tại 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 chứa 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 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, vì vậy để 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ộc, 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ời Rollup một cách đơn phương mà không cần phép 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 gốc merkle của tài khoản on-chain khi hoàn tất quá trình giao dịch off-chain. Nếu không có 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 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à liệu người vận hành có cập nhật số dư một cách đáng tin cậy để đánh cắp tài sản của người dù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 hay không.
Vấn đề là nếu chỉ có gốc cây merkle được công bố trên chuỗi, người dùng có thể xem và truy cập nó, vậy họ sẽ làm thế nào để đặt nhánh của họ vào cây để có thể rút khỏi 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 blockchain. Không phải toàn bộ cây, điều đó quá ngớ ngẩn, mà chỉ là thông tin cần thiết để xây dựng lại cây. Trong một hiện thực đơn giản, tóm tắt của tất cả các tài khoản Rollup hiện có sẽ chứa số dư và các tài khoản chỉ được thêm vào trong các giao dịch cập nhật Rollup.
Trong việc triển khai cao cấp hơn, sử dụng sự khác biệt về số dư. Điều này về bản chất là tóm tắt về việc tài khoản nào đã tăng hoặc giảm vốn trong quá trình cập nhật. Điều này khiến cho mỗi cập nhật Rollup chỉ chứa các thay đổi về số dư tài khoản đã xảy ra. Sau đó, người dùng có thể đơn giản quét chuỗi và “tính toán” từ đầu của Rollup để biết được trạng thái số dư tài khoản hiện tại, điều này cho phép họ tái tạo 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ối không gian (do đó tiết kiệm vốn), đồng thời vẫn cho phép người dùng bảo đảm truy cập thông tin cần thiết để rời đi một cách đơn phương. 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, 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 xem 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 đề sẵn sàng dữ liệu rút ra của người dùng là đặt dữ liệu ở một nơi khác ngoài Khối. Điều này đưa vào 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, các 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 sẵn sàng dữ liệu cho các hệ thống như rollup.
Điều này dẫn đến tình trạng khó khăn đối với bảo mật. Khi dữ liệu được xuất bản trực tiếp trên 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 xuất bản 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 thực SPV, nghĩa là dữ liệu đã được xuất bản trên một hệ thống khác.
Điều này đòi hỏi xác minh dữ liệu tồn tại trên các bằng chứng on-chain khác, cuối cùng đây là một vấn đề Máy Oracle. Chuỗi Khối BTC không thể xác minh hoàn toàn bất cứ điều gì ngoài việc xảy ra trên Khối on-chain của nó, đ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ó được phát sóng công khai sau khi được tạo ra hay không. 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ữ 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 thực tế dữ liệu 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 lùi khó khăn
Điều này đặt ra một vấn đề nan giải cho rollups. Khi nói đến tính khả dụng của dữ liệu, về cơ bản có một sự lựa chọn nhị phân giữa việc xuất bản dữ liệu lên blockchain BTC hoặc ở nơi khác. Sự lựa chọn này có tác động đáng kể đến an ninh và chủ quyền của các bản tổng hợp, cũng như khả năng mở rộng của chúng.
Một mặt, việc sử dụng BTCKhối Blockchain làm lớp khả dụng 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à có hạn, điều này đặt giới hạn cho số lượng rollup có thể tồn tại một lần 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 cần một không gian Khối tương ứng với số lượng tài khoản có số dư thay đổi so với 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à từ đó không còn khả năng mở rộng nữa.
Một mặt khác, việc sử dụng các lớp khác nhau để đạt được tính khả dụng dữ liệu sẽ loại bỏ giới hạn cứng của lợi ích về khả năng mở rộng, nhưng cũng mang đến những vấn đề bảo mật và chủ quyền mới. Trong Rollup sử dụng BTC để đạt được tính khả dụng 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. 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 mà ngăn chặn sự lừa đảo 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 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ế của 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 triển khai Rollup lý tưởng trên BTC, thực sự thực hiện được rút tiền một cách đơn phương, thì 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, Kinh tế màu vàng
Rollups gần đây đã trở thành trung tâm mở rộng BTC, trở thành điều đầu tiên thực sự ‘cướp đi sự chú ý’ từ Mạng Lighting, và thu hút sự quan tâm rộng rãi 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 giới hạn thanh khoản của Lighting Network, nghĩa là người dùng cuối cần có người cấp phát trước (hoặc ‘mượn’) tiền để nhận tiền hoặc các nút trung gian cần có số dư kênh để thúc đẩy sự di chuyển toàn bộ số tiền thanh toá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 sự tập trung đã chuyển sang việc di dời chúng sang các blockchain dựa trên UTXO (ví dụ như BTC). Bài viết này không nhắm đến thảo luận về tình hình hiện tại của việc triển khai trên BTC, mà nhằm thảo luận về các tính năng của Rollup được lý tưởng hóa mà mọi người đã theo đuổi trong thời gian dài, và điều này phụ thuộc vào khả năng trực tiếp kiểm chứng không kiến thức (ZKP) trên BTC hiện tại 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 chứa 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 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, vì vậy để 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ộc, 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ời Rollup một cách đơn phương mà không cần phép 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 gốc merkle của tài khoản on-chain khi hoàn tất quá trình giao dịch off-chain. Nếu không có 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 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à liệu người vận hành có cập nhật số dư một cách đáng tin cậy để đánh cắp tài sản của người dù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 hay không.
Vấn đề là nếu chỉ có gốc cây merkle được công bố trên chuỗi, người dùng có thể xem và truy cập nó, vậy họ sẽ làm thế nào để đặt nhánh của họ vào cây để có thể rút khỏi 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 blockchain. Không phải toàn bộ cây, điều đó quá ngớ ngẩn, mà chỉ là thông tin cần thiết để xây dựng lại cây. Trong một hiện thực đơn giản, tóm tắt của tất cả các tài khoản Rollup hiện có sẽ chứa số dư và các tài khoản chỉ được thêm vào trong các giao dịch cập nhật Rollup.
Trong việc triển khai cao cấp hơn, sử dụng sự khác biệt về số dư. Điều này về bản chất là tóm tắt về việc tài khoản nào đã tăng hoặc giảm vốn trong quá trình cập nhật. Điều này khiến cho mỗi cập nhật Rollup chỉ chứa các thay đổi về số dư tài khoản đã xảy ra. Sau đó, người dùng có thể đơn giản quét chuỗi và “tính toán” từ đầu của Rollup để biết được trạng thái số dư tài khoản hiện tại, điều này cho phép họ tái tạo 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ối không gian (do đó tiết kiệm vốn), đồng thời vẫn cho phép người dùng bảo đảm truy cập thông tin cần thiết để rời đi một cách đơn phương. 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, 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 xem 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 đề sẵn sàng dữ liệu rút ra của người dùng là đặt dữ liệu ở một nơi khác ngoài Khối. Điều này đưa vào 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, các 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 sẵn sàng dữ liệu cho các hệ thống như rollup.
Điều này dẫn đến tình trạng khó khăn đối với bảo mật. Khi dữ liệu được xuất bản trực tiếp trên 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 xuất bản 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 thực SPV, nghĩa là dữ liệu đã được xuất bản trên một hệ thống khác.
Điều này đòi hỏi xác minh dữ liệu tồn tại trên các bằng chứng on-chain khác, cuối cùng đây là một vấn đề Máy Oracle. Chuỗi Khối BTC không thể xác minh hoàn toàn bất cứ điều gì ngoài việc xảy ra trên Khối on-chain của nó, đ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ó được phát sóng công khai sau khi được tạo ra hay không. 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ữ 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 thực tế dữ liệu 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 lùi khó khăn
Điều này đặt ra một vấn đề nan giải cho rollups. Khi nói đến tính khả dụng của dữ liệu, về cơ bản có một sự lựa chọn nhị phân giữa việc xuất bản dữ liệu lên blockchain BTC hoặc ở nơi khác. Sự lựa chọn này có tác động đáng kể đến an ninh và chủ quyền của các bản tổng hợp, cũng như khả năng mở rộng của chúng.
Một mặt, việc sử dụng BTCKhối Blockchain làm lớp khả dụng 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à có hạn, điều này đặt giới hạn cho số lượng rollup có thể tồn tại một lần 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 cần một không gian Khối tương ứng với số lượng tài khoản có số dư thay đổi so với 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à từ đó không còn khả năng mở rộng nữa.
Một mặt khác, việc sử dụng các lớp khác nhau để đạt được tính khả dụng dữ liệu sẽ loại bỏ giới hạn cứng của lợi ích về khả năng mở rộng, nhưng cũng mang đến những vấn đề bảo mật và chủ quyền mới. Trong Rollup sử dụng BTC để đạt được tính khả dụng 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. 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 mà ngăn chặn sự lừa đảo 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 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ế của 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 triển khai Rollup lý tưởng trên BTC, thực sự thực hiện được rút tiền một cách đơn phương, thì sẽ như thế nào?