Nguồn: Bitcoin Magazine; Dịch: Ngũ Châu, Kinh Tế Vàng
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ự “đánh cắp ánh sáng” từ 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 thứ hai không bị ràng buộc hoặc hạn chế bởi hạn chế về thanh khoản cốt lõi của Lighting Network, tức là người dùng cuối cần phải có người cấp phát trước (hoặc “cho vay”) tiền để nhận được tiền, hoặc các nút trung gian cần có số dư kênh để thúc đẩy 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 đượ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 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 thảo luận về tình trạng hiện tại của việc triển khai trên BTC, mà là thảo luận về 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, yêu cầu khả năng xác minh Chứng cứ không kiến thức (ZKP) trực tiếp trên BTC, mà 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 (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 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 được ủy quyền bằng Khóa công khai / Khóa riêng, vì vậy để thực hiện chi tiêu ngoài chuỗi, người dùng vẫn phải ký kết 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 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 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 độc lập mà không cần sự cho 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 merkle root của số dư tài khoả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 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ư tài khoản off-chain có được ủy quyền đúng mức 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 đầy đủ và không có xấp xỉ để đánh cắp vố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 xuất bản trên chuỗi, người dùng có thể xem và truy cập được nó, vậy họ sẽ 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ải xin phép 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 là toàn bộ 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 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ẽ 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ối 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 để rời khỏ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 được cung cấp cho người dùng bằng cách sử dụng Khối, nghĩa là 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 sẽ đượ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 đề sẵn có dữ liệu 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 một 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 có dữ liệu cho các hệ thống như rollup.
Điều này gây ra tình trạng bế tắc trong việc bảo vệ an toàn mạnh mẽ tương tự. Khi dữ liệu được phát hành trực tiếp lên chuỗi Bitcoin, 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 ra 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 minh SPV, nghĩa là dữ liệu đã được phát hành đến hệ thống khác.
Điều này yêu cầu xác minh rằng dữ liệu tồn tại trên các chứng chỉ khác trên chuỗi on-chain, điều này cuối cùng 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 những gì xảy ra trên Khối của riêng 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 rằng 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 được phổ biến 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 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 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.
Đi lui và bảo vệ
Điều này tạo ra một tình huống khó khăn cho rollup. Khi đối mặt với vấn đề khả dụng dữ liệu, nguyên tắc cơ bản là phải chọn giữa việc xuất bản dữ liệu trên chuỗi BTC hoặc nơi khác. Lựa chọn này có tác độ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 Khối Bitcoin làm lớp dữ liệu có thể sử 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à hữu 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ể được xử lý off-chain trong mỗi rollup. Mỗi lần cập nhật rollup đều cần 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ểm này không còn khả năng mở rộng nữa.
Một khía cạnh khác là 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 tối đa về khả năng mở rộng, nhưng nó cũng mang lại những vấn đề bảo mật và chủ quyền mới. 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 cần trích xuất không được tự động đăng lên blockchain, trạng thái của Rollup sẽ không thay đổi. 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à che giấu dữ liệu khi sử dụng Validiums.
Hiện tại, bất kỳ Nhà sản xuất Khối nào trên hệ thống Khả năng sẵn có 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 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ự đạt được sự thực hiện Rollup lý tưởng trên BTC và đạt được việc rút tiền đơn phương của 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 khó khăn gì?
Nguồn: Bitcoin Magazine; Dịch: Ngũ Châu, Kinh Tế Vàng
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ự “đánh cắp ánh sáng” từ 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 thứ hai không bị ràng buộc hoặc hạn chế bởi hạn chế về thanh khoản cốt lõi của Lighting Network, tức là người dùng cuối cần phải có người cấp phát trước (hoặc “cho vay”) tiền để nhận được tiền, hoặc các nút trung gian cần có số dư kênh để thúc đẩy 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 đượ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 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 thảo luận về tình trạng hiện tại của việc triển khai trên BTC, mà là thảo luận về 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, yêu cầu khả năng xác minh Chứng cứ không kiến thức (ZKP) trực tiếp trên BTC, mà 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 (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 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 được ủy quyền bằng Khóa công khai / Khóa riêng, vì vậy để thực hiện chi tiêu ngoài chuỗi, người dùng vẫn phải ký kết 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 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 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 độc lập mà không cần sự cho 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 merkle root của số dư tài khoả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 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ư tài khoản off-chain có được ủy quyền đúng mức 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 đầy đủ và không có xấp xỉ để đánh cắp vố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 xuất bản trên chuỗi, người dùng có thể xem và truy cập được nó, vậy họ sẽ 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ải xin phép 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 là toàn bộ 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 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ẽ 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ối 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 để rời khỏ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 được cung cấp cho người dùng bằng cách sử dụng Khối, nghĩa là 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 sẽ đượ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 đề sẵn có dữ liệu 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 một 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 có dữ liệu cho các hệ thống như rollup.
Điều này gây ra tình trạng bế tắc trong việc bảo vệ an toàn mạnh mẽ tương tự. Khi dữ liệu được phát hành trực tiếp lên chuỗi Bitcoin, 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 ra 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 minh SPV, nghĩa là dữ liệu đã được phát hành đến hệ thống khác.
Điều này yêu cầu xác minh rằng dữ liệu tồn tại trên các chứng chỉ khác trên chuỗi on-chain, điều này cuối cùng 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 những gì xảy ra trên Khối của riêng 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 rằng 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 được phổ biến 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 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 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.
Đi lui và bảo vệ
Điều này tạo ra một tình huống khó khăn cho rollup. Khi đối mặt với vấn đề khả dụng dữ liệu, nguyên tắc cơ bản là phải chọn giữa việc xuất bản dữ liệu trên chuỗi BTC hoặc nơi khác. Lựa chọn này có tác độ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 Khối Bitcoin làm lớp dữ liệu có thể sử 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à hữu 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ể được xử lý off-chain trong mỗi rollup. Mỗi lần cập nhật rollup đều cần 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ểm này không còn khả năng mở rộng nữa.
Một khía cạnh khác là 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 tối đa về khả năng mở rộng, nhưng nó cũng mang lại những vấn đề bảo mật và chủ quyền mới. 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 cần trích xuất không được tự động đăng lên blockchain, trạng thái của Rollup sẽ không thay đổi. 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à che giấu dữ liệu khi sử dụng Validiums.
Hiện tại, bất kỳ Nhà sản xuất Khối nào trên hệ thống Khả năng sẵn có 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 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ự đạt được sự thực hiện Rollup lý tưởng trên BTC và đạt được việc rút tiền đơn phương của người dùng, thì điều đó sẽ như thế nào?