Nguồn: Bitcoin Magazine; Biên dịch: Ngũ Châu, Kim Sơn 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ự ‘đánh cắp ánh sáng’ từ Mạng Lighting Network, trở thành điều quan trọng hơn trong sự quan tâm rộng lớn hơn. Rollups nhằm trở thành một tầng off-chain không bị ràng buộc hoặc hạn chế bởi sự giới hạn cốt lõi về thanh khoản 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 ‘vay mượn’) tiền để nhận được tiền, hoặc các nút địa phương cần có cân bằng kênh để thúc đẩy việc chuyển khoản từ người gửi đến người nhận diễn ra suôn sẻ.
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 đã chuyển trọng tâm sang việc di dời chúng sang các chuỗi khối 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à về các 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ều này phụ thuộc vào khả năng mà BTC hiện tại không hỗ trợ, đó là khả năng xác minh zk-SNARK trực tiếp trên BTC.
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 gốc Merkle của cây Merkle, cam kết số dư hiện tại của tất cả các 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 off-chain, người dùng vẫn phải ký Chìa khoá bảo mật để xác nhận 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 đ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ời Rollup một mình 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 tài khoản on-chain khi hoàn thành 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 về tài khoản off-chain có được sự ủy quyền hợp lệ từ chủ sở hữu tài khoản và người vận hành có không cố ý cập nhật số dư để đánh cắp tiề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.
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 khỏi mà không cần 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 để xây dựng lại 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ẽ 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 cao cấp hơn, sử dụng sự khác biệt số dư. Điều này về cơ bản là một tóm tắt về những tài khoản nào đã thay đổi 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 đã xảy ra. Sau đó, người dùng có thể quét chuỗi và ‘tính toán’ từ đầu của 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ọ tái tạo cây Merkle cho số dư hiện tại.
Như vậ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 truy cập thông tin cần thiết để rời khỏi một cách một chiều. Quy tắc rollup yêu cầu bao gồm dữ liệu này trong rollup chính thức do Khối chuỗi cung cấp cho người dùng, nghĩa là 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 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 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 có dữ liệu cho hệ thống rollup và tương tự.
Điều này tạo ra một tình huống khó khăn với độ bảo mật mạnh mẽ 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 rằng 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 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 một Máy Oracle on-chain khác, cuối cùng đây là một vấn đề Máy Oracle. Chuỗi Khối của 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 chuỗi Khối của chính 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 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 đố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.
Tiến thoái vị cử
Điều đó đem đến cho rollup một tình thế khó khăn. Khi liên quan đến vấn đề tính khả dụng dữ liệu, thực tế có sự lựa chọn nhị phân giữa việc xuất bản dữ liệu trên chuỗi khối BTC hoặc ở một 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 BTCKhối-chain làm lớp dữ liệu có sẵn sẽ đặt một giới hạn tối đa về 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 về số lượng rollup có thể tồn tại cùng một lúc 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 có 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à từ đó không còn tiềm năng mở rộng hơn 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 dữ liệu sẽ loại bỏ giới hạn tăng vượt của tính mở rộng, nhưng cũng mang đến các vấn đề mới về an ninh và chủ quyền. 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 muốn trích xuất không được tự động công bố trên chuỗi khối, trạng thái của Rollup sẽ không thể thay đổi. Việc sử dụng Validiums, sự bảo đảm này hoàn toàn phụ thuộc vào khả năng của hệ thống ngoại vi được sử dụng để chống lại gian lận và ẩn dữ liệu.
Hiện nay, 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 cũng có thể chiếm đoạt được tài sản của người dùng BTCRollup bằng cách tạo và không phải là phát sóng thực tế Khối đó, từ đó đảm bảo tính sẵn có của dữ liệu.
Vậy nếu chúng ta thực sự đạt được sự triển khai Rollup lý tưởng trên BTC, thực sự thực hiện việc rút tiền một chiều từ 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 những khó khăn gì?
Nguồn: Bitcoin Magazine; Biên dịch: Ngũ Châu, Kim Sơn 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ự ‘đánh cắp ánh sáng’ từ Mạng Lighting Network, trở thành điều quan trọng hơn trong sự quan tâm rộng lớn hơn. Rollups nhằm trở thành một tầng off-chain không bị ràng buộc hoặc hạn chế bởi sự giới hạn cốt lõi về thanh khoản 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 ‘vay mượn’) tiền để nhận được tiền, hoặc các nút địa phương cần có cân bằng kênh để thúc đẩy việc chuyển khoản từ người gửi đến người nhận diễn ra suôn sẻ.
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 đã chuyển trọng tâm sang việc di dời chúng sang các chuỗi khối 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à về các 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ều này phụ thuộc vào khả năng mà BTC hiện tại không hỗ trợ, đó là khả năng xác minh zk-SNARK trực tiếp trên BTC.
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 gốc Merkle của cây Merkle, cam kết số dư hiện tại của tất cả các 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 off-chain, người dùng vẫn phải ký Chìa khoá bảo mật để xác nhận 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 đ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ời Rollup một mình 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 tài khoản on-chain khi hoàn thành 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 về tài khoản off-chain có được sự ủy quyền hợp lệ từ chủ sở hữu tài khoản và người vận hành có không cố ý cập nhật số dư để đánh cắp tiề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.
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 khỏi mà không cần 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 để xây dựng lại 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ẽ 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 cao cấp hơn, sử dụng sự khác biệt số dư. Điều này về cơ bản là một tóm tắt về những tài khoản nào đã thay đổi 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 đã xảy ra. Sau đó, người dùng có thể quét chuỗi và ‘tính toán’ từ đầu của 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ọ tái tạo cây Merkle cho số dư hiện tại.
Như vậ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 truy cập thông tin cần thiết để rời khỏi một cách một chiều. Quy tắc rollup yêu cầu bao gồm dữ liệu này trong rollup chính thức do Khối chuỗi cung cấp cho người dùng, nghĩa là 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 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 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 có dữ liệu cho hệ thống rollup và tương tự.
Điều này tạo ra một tình huống khó khăn với độ bảo mật mạnh mẽ 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 rằng 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 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 một Máy Oracle on-chain khác, cuối cùng đây là một vấn đề Máy Oracle. Chuỗi Khối của 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 chuỗi Khối của chính 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 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 đố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.
Tiến thoái vị cử
Điều đó đem đến cho rollup một tình thế khó khăn. Khi liên quan đến vấn đề tính khả dụng dữ liệu, thực tế có sự lựa chọn nhị phân giữa việc xuất bản dữ liệu trên chuỗi khối BTC hoặc ở một 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 BTCKhối-chain làm lớp dữ liệu có sẵn sẽ đặt một giới hạn tối đa về 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 về số lượng rollup có thể tồn tại cùng một lúc 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 có 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à từ đó không còn tiềm năng mở rộng hơn 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 dữ liệu sẽ loại bỏ giới hạn tăng vượt của tính mở rộng, nhưng cũng mang đến các vấn đề mới về an ninh và chủ quyền. 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 muốn trích xuất không được tự động công bố trên chuỗi khối, trạng thái của Rollup sẽ không thể thay đổi. Việc sử dụng Validiums, sự bảo đảm này hoàn toàn phụ thuộc vào khả năng của hệ thống ngoại vi được sử dụng để chống lại gian lận và ẩn dữ liệu.
Hiện nay, 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 cũng có thể chiếm đoạt được tài sản của người dùng BTCRollup bằng cách tạo và không phải là phát sóng thực tế Khối đó, từ đó đảm bảo tính sẵn có của dữ liệu.
Vậy nếu chúng ta thực sự đạt được sự triển khai Rollup lý tưởng trên BTC, thực sự thực hiện việc rút tiền một chiều từ người dùng, điều đó sẽ như thế nào?