Nguồn: Bitcoin Magazine; Biên dịch: Ngũ Châu, Vàng Tài chính
Rollups gần đây đã trở thành trọng tâm của việc mở rộng quy mô BTC, trở thành điều đầu tiên thực sự “đánh cắp chương trình” từ Lighting Network, về mặt chú ý rộng rãi hơn. Rollups được thiết kế để trở thành một lớp off-chain 2 không bị ràng buộc hoặc hạn chế bởi các hạn chế thanh khoản cốt lõi của Lighting Network, tức là người dùng cuối cần ai đó phân bổ (hoặc “cho vay”) tiền trước để nhận tiền, hoặc tuyến đường trung gian Nút cần số dư kênh để tạo điều kiện thuận lợi cho toàn bộ dòng tiền thanh toán từ người gửi đến người nhận.
Những 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 đã tập trung chuyển đổ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 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 của Rollup lý tưởng mà mọi người đang theo đuổi từ lâu, điều đó phụ thuộc vào khả năng xác minh trực tiếp Bằng chứng không kiến thức (ZKP) trên BTC, điều này hiện tại BTC 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 tồn tại dưới dạng Merkle root của cây Merkle, cam kết cho tất cả số dư hiện tại của các tài khoản hiện có trong Rollup. Tất cả các tài khoản này được ủy quyền bằng cách sử dụng khóa công khai / khóa riêng, vì vậy để chi tiêu off-chain, người dùng vẫn phải ký vào một số nội dung bằng chìa khóa 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, 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 độc lập mà không cần phép của 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 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 chuỗi. Bằng chứng này cho phép mọi người xác minh liệu tất cả các thay đổi đối với tài khoản off-chain có được phê duyệt đúng đắn từ chủ sở hữu tài khoản và liệu người vận hành có cập nhật số dư một cách bất lương để đánh cắp tài sản của người dùng hoặc phân phối lại chúng cho người dùng khác một cách không trung thực hay không.
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 để có thể rút tiền mà không cần phép lệnh 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 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 cài đặt đơ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 cao cấp hơn, sử dụng sự khác biệt số dư. Điều này về cơ bản là tóm tắt về tài khoản nào đã tăng hoặc giảm số tiền trong quá trình cập nhật. Điều này cho phép mỗi cập nhật Rollup chỉ chứa các thay đổi số dư tài khoản được thực hiện. Sau đó, người dùng có thể quét chuỗi và “tính toán” từ đầu Rollup để có được trạng thái số dư tài khoản hiện tại, điều này cho phép họ xây dựng cây Merkle cho số dư hiện tại.
Cách này có thể tiết kiệm chi phí lớn 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 thông tin cần thiết để thoát khỏi một chiều truy cập. Quy tắc rollup yêu cầu bao gồm các dữ liệu này trong rollup chính thức được cung cấp cho người dùng bằng Khối chuỗi, 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 phương pháp 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 đặt ra một vấn đề tinh vi, rollup vẫn cần đảm bảo 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 sẵn có dữ liệu cho các 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 xuất bản trực tiếp lê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 lê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 xuất bản lên một hệ thống khác.
Điều này đòi hỏi chứng minh rằng dữ liệu tồn tại trên một số Máy Oracle khác on-chain, cuối cùng đây là một vấn đề của 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 trừ những gì xảy ra trên chính 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 Khối chứa dữ liệu rollup đã được phổ biến công khai sau khi được tạo. 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ữ lại dữ liệu, tức là tạo cam kết đối với việc phát hành dữ liệu 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. Duy nhất giải pháp thực sự là hoàn toàn phụ thuộc vào giá trị và cơ cấu động viên của hệ thống ngoài BTC.
Tiến lùi vô cùng
Điều này đưa ra một tình huống khó khăn đối với rollup. Khi liên quan đến vấn đề sẵn có dữ liệu, thực tế tồn tại 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 ở nơi khác. Sự lựa chọn này có tác động lớn đến tính an toàn, chủ quyền và khả năng mở rộng của rollup.
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 khả năng 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 cho số lượng rollup có thể tồn tại một lần cũng như 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 không gian Khối tỷ lệ với số lượng tài khoản có số dư thay đổi 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, tại điểm này, không còn khả năng mở rộng nữa.
Một phía 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 của khả năng mở rộng, nhưng nó cũng mang lại các vấn đề an ninh và chủ quyền mới. 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 muốn rút không được tự động đăng lên blockchain, trạng thái của Rollup sẽ không thể thay đổi. Vớ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.
Bây giờ, bất kỳ nhà sản xuất Khối nào trên hệ thống khả dụng dữ liệu ngoại vi 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 phải phát sóng thực tế của Khối đó, để dữ liệu khả dụng.
Vậy nếu chúng ta thực sự áp dụng Rollup lý tưởng trên BTC và thực hiện rút tiền một chiều cho 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.
Bitcoin Magazine: Rollup đối mặt với khó khăn gì?
Nguồn: Bitcoin Magazine; Biên dịch: Ngũ Châu, Vàng Tài chính
Rollups gần đây đã trở thành trọng tâm của việc mở rộng quy mô BTC, trở thành điều đầu tiên thực sự “đánh cắp chương trình” từ Lighting Network, về mặt chú ý rộng rãi hơn. Rollups được thiết kế để trở thành một lớp off-chain 2 không bị ràng buộc hoặc hạn chế bởi các hạn chế thanh khoản cốt lõi của Lighting Network, tức là người dùng cuối cần ai đó phân bổ (hoặc “cho vay”) tiền trước để nhận tiền, hoặc tuyến đường trung gian Nút cần số dư kênh để tạo điều kiện thuận lợi cho toàn bộ dòng tiền thanh toán từ người gửi đến người nhận.
Những 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 đã tập trung chuyển đổ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 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 của Rollup lý tưởng mà mọi người đang theo đuổi từ lâu, điều đó phụ thuộc vào khả năng xác minh trực tiếp Bằng chứng không kiến thức (ZKP) trên BTC, điều này hiện tại BTC 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 tồn tại dưới dạng Merkle root của cây Merkle, cam kết cho tất cả số dư hiện tại của các tài khoản hiện có trong Rollup. Tất cả các tài khoản này được ủy quyền bằng cách sử dụng khóa công khai / khóa riêng, vì vậy để chi tiêu off-chain, người dùng vẫn phải ký vào một số nội dung bằng chìa khóa 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, 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 độc lập mà không cần phép của 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 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 chuỗi. Bằng chứng này cho phép mọi người xác minh liệu tất cả các thay đổi đối với tài khoản off-chain có được phê duyệt đúng đắn từ chủ sở hữu tài khoản và liệu người vận hành có cập nhật số dư một cách bất lương để đánh cắp tài sản của người dùng hoặc phân phối lại chúng cho người dùng khác một cách không trung thực hay không.
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 để có thể rút tiền mà không cần phép lệnh 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 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 cài đặt đơ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 cao cấp hơn, sử dụng sự khác biệt số dư. Điều này về cơ bản là tóm tắt về tài khoản nào đã tăng hoặc giảm số tiền trong quá trình cập nhật. Điều này cho phép mỗi cập nhật Rollup chỉ chứa các thay đổi số dư tài khoản được thực hiện. Sau đó, người dùng có thể quét chuỗi và “tính toán” từ đầu Rollup để có được trạng thái số dư tài khoản hiện tại, điều này cho phép họ xây dựng cây Merkle cho số dư hiện tại.
Cách này có thể tiết kiệm chi phí lớn 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 thông tin cần thiết để thoát khỏi một chiều truy cập. Quy tắc rollup yêu cầu bao gồm các dữ liệu này trong rollup chính thức được cung cấp cho người dùng bằng Khối chuỗi, 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 phương pháp 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 đặt ra một vấn đề tinh vi, rollup vẫn cần đảm bảo 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 sẵn có dữ liệu cho các 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 xuất bản trực tiếp lê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 lê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 xuất bản lên một hệ thống khác.
Điều này đòi hỏi chứng minh rằng dữ liệu tồn tại trên một số Máy Oracle khác on-chain, cuối cùng đây là một vấn đề của 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 trừ những gì xảy ra trên chính 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 Khối chứa dữ liệu rollup đã được phổ biến công khai sau khi được tạo. 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ữ lại dữ liệu, tức là tạo cam kết đối với việc phát hành dữ liệu 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. Duy nhất giải pháp thực sự là hoàn toàn phụ thuộc vào giá trị và cơ cấu động viên của hệ thống ngoài BTC.
Tiến lùi vô cùng
Điều này đưa ra một tình huống khó khăn đối với rollup. Khi liên quan đến vấn đề sẵn có dữ liệu, thực tế tồn tại 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 ở nơi khác. Sự lựa chọn này có tác động lớn đến tính an toàn, chủ quyền và khả năng mở rộng của rollup.
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 khả năng 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 cho số lượng rollup có thể tồn tại một lần cũng như 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 không gian Khối tỷ lệ với số lượng tài khoản có số dư thay đổi 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, tại điểm này, không còn khả năng mở rộng nữa.
Một phía 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 của khả năng mở rộng, nhưng nó cũng mang lại các vấn đề an ninh và chủ quyền mới. 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 muốn rút không được tự động đăng lên blockchain, trạng thái của Rollup sẽ không thể thay đổi. Vớ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.
Bây giờ, bất kỳ nhà sản xuất Khối nào trên hệ thống khả dụng dữ liệu ngoại vi 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 phải phát sóng thực tế của Khối đó, để dữ liệu khả dụng.
Vậy nếu chúng ta thực sự áp dụng Rollup lý tưởng trên BTC và thực hiện rút tiền một chiều cho người dùng, điều đó sẽ như thế nào?