Nguồn: Bitcoin Magazine; Dịch: Ngũ Châu, Kinh tế vàng
Rollups gần đây đã trở thành trung tâm của việc mở rộng BTC, trở thành điều đầu tiên thực sự ‘đánh cắp’ sự chú ý từ Mạng Ánh sáng, trong mối quan tâm rộng hơn. Rollups nhằm trở thành một lớp thứ hai off-chain không bị ràng buộc hoặc hạn chế bởi giới hạn về thanh khoản cốt lõi của Mạng Ánh sáng, nghĩa là người dùng cuối cùng cần phải có người cấp phát trước (hoặc ‘mượn’) tiền để nhận được tiền, hoặc các nút trung gian cần có số dư trong 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 đã 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à để thảo luận về tính năng Rollup lý tưởng mà mọi người đang theo đuổi lâu dài, điều này phụ thuộc vào khả năng mà BTC hiện tại không hỗ trợ, nghĩa là khả năng xác minh ZKP 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 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 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 các chi tiêu off-chain, 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 sự cho phé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 bỏ Rollup một cách đơn phương mà không cần sự cho 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 merkle root của số dư tài khoản trê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ẽ bị vô hiệu và không thể được bao gồm vào blockchain. Chứng minh này cho phép người dùng xác minh xem tất cả các thay đổi trên 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ó không có xâm phạm số dư cũng như đánh cắp tiền của người dùng 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ọ sẽ đưa những nhánh của họ vào cây như thế nào để có thể rút khỏi bất kỳ lúc nào mà không cần phép lệnh?
Rollup phù hợp
Trong Rollup thích hợp, mỗi khi xác nhận một giao dịch off-chain mới và trạng thái tài khoản Rollup thay đổi, thông tin sẽ được đưa trực tiếp vào blockchain. Đó không phải là toàn bộ cây, vì điều đó quá vô lý, mà chỉ là thông tin cần thiết để tái xây dựng 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à các tài khoản chỉ được thêm vào trong các 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à tóm tắt về việc 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 đã 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 để xác định 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 lại cây Merkle của số dư hiện tại.
Điều này giúp tiết kiệm chi phí và Khối không gian (đồng thời 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 đi một cách đơn phương. Quy tắc rollup yêu cầu bao gồm dữ liệu này trong rollup chính thức được cung cấp cho người dùng bằng cách sử dụng Khối chuỗi, điều đó có 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 về 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 rút ra bởi người dùng là đặt dữ liệu ở một nơi khác ngoài Khối. Điều này đặt ra một vấn đề tinh vi, rollup vẫn cần đảm bảo rằng dữ liệu có sẵn ở những 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à tầng sẵn có dữ liệu cho các hệ thống như rollup.
Điều này dẫn đến tình trạng bế tắc trong việc đảm bảo an ninh mạnh mẽ tương tự. Khi dữ liệu được phát hành trực tiếp lên chuỗ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 ra hệ thống bên ngoài, điều tốt nhất nó có thể làm là xác minh chứng minh SPV, nghĩa là dữ liệu đã được phát hành lê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 chứng minh khác on-chain, đó cuối cùng là một vấn đề của Máy Oracle. Khối chuỗ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 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 rằng Khối chứa dữ liệu rollup đã được phát sóng rộng rãi sau khi được tạo ra. Nó không thể xác minh rằng thông tin bên ngoài đã đượ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 đố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 sàng. Điều này dẫn đến người dùng không thể rút tiền. Điều duy nhất thực sự giải quyết vấn đề 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 định cư
Đ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ế tồn tại sự lựa chọn nhị phân giữa việc đưa dữ liệu lên chuỗi khối BTC hoặc 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 mặt, việc sử dụng BTCKhốiBlockchain làm lớp sẵn sàng dữ liệu sẽ đặt một giới hạn cứng cho tính mở rộng của rollup. Không gianKhố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 và tổng số giao dịch mà tất cả rollup có thể xử lý trên off-chain. Mỗi lần cập nhật rollup đều cần không gianKhố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, ở điểm này, không còn tiềm năng mở rộng nữa.
Mặt khác, việc sử dụng các lớp khác nhau để đạt được khả năng sử dụng dữ liệu sẽ loại bỏ ranh giới cứng về lợi ích mở rộng, nhưng nó cũng mang lại những vấn đề về an ninh và chủ quyền mới. Trong Rollup sử dụng BTC để đạt được khả năng sử dụng dữ liệu, nếu dữ liệu mà người dùng muốn rút ra không được tự động công bố trên blockchain, trạng thái của Rollup sẽ không thể thay đổi. Bằng cách sử dụng Validiums, sự đảm bảo này hoàn toàn phụ thuộc vào khả năng chống lừa đảo và giấu dữ liệu của hệ thống bên ngoài được sử dụng.
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ó của 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ế của Khối đó, từ đó làm cho dữ liệu sẵn có.
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 việc người dùng rút tiền một cách đơn phươ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 những khó khăn gì?
Nguồn: Bitcoin Magazine; Dịch: Ngũ Châu, Kinh tế vàng
Rollups gần đây đã trở thành trung tâm của việc mở rộng BTC, trở thành điều đầu tiên thực sự ‘đánh cắp’ sự chú ý từ Mạng Ánh sáng, trong mối quan tâm rộng hơn. Rollups nhằm trở thành một lớp thứ hai off-chain không bị ràng buộc hoặc hạn chế bởi giới hạn về thanh khoản cốt lõi của Mạng Ánh sáng, nghĩa là người dùng cuối cùng cần phải có người cấp phát trước (hoặc ‘mượn’) tiền để nhận được tiền, hoặc các nút trung gian cần có số dư trong 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 đã 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à để thảo luận về tính năng Rollup lý tưởng mà mọi người đang theo đuổi lâu dài, điều này phụ thuộc vào khả năng mà BTC hiện tại không hỗ trợ, nghĩa là khả năng xác minh ZKP 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 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 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 các chi tiêu off-chain, 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 sự cho phé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 bỏ Rollup một cách đơn phương mà không cần sự cho 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 merkle root của số dư tài khoản trê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ẽ bị vô hiệu và không thể được bao gồm vào blockchain. Chứng minh này cho phép người dùng xác minh xem tất cả các thay đổi trên 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ó không có xâm phạm số dư cũng như đánh cắp tiền của người dùng 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ọ sẽ đưa những nhánh của họ vào cây như thế nào để có thể rút khỏi bất kỳ lúc nào mà không cần phép lệnh?
Rollup phù hợp
Trong Rollup thích hợp, mỗi khi xác nhận một giao dịch off-chain mới và trạng thái tài khoản Rollup thay đổi, thông tin sẽ được đưa trực tiếp vào blockchain. Đó không phải là toàn bộ cây, vì điều đó quá vô lý, mà chỉ là thông tin cần thiết để tái xây dựng 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à các tài khoản chỉ được thêm vào trong các 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à tóm tắt về việc 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 đã 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 để xác định 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 lại cây Merkle của số dư hiện tại.
Điều này giúp tiết kiệm chi phí và Khối không gian (đồng thời 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 đi một cách đơn phương. Quy tắc rollup yêu cầu bao gồm dữ liệu này trong rollup chính thức được cung cấp cho người dùng bằng cách sử dụng Khối chuỗi, điều đó có 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 về 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 rút ra bởi người dùng là đặt dữ liệu ở một nơi khác ngoài Khối. Điều này đặt ra một vấn đề tinh vi, rollup vẫn cần đảm bảo rằng dữ liệu có sẵn ở những 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à tầng sẵn có dữ liệu cho các hệ thống như rollup.
Điều này dẫn đến tình trạng bế tắc trong việc đảm bảo an ninh mạnh mẽ tương tự. Khi dữ liệu được phát hành trực tiếp lên chuỗ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 ra hệ thống bên ngoài, điều tốt nhất nó có thể làm là xác minh chứng minh SPV, nghĩa là dữ liệu đã được phát hành lê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 chứng minh khác on-chain, đó cuối cùng là một vấn đề của Máy Oracle. Khối chuỗ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 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 rằng Khối chứa dữ liệu rollup đã được phát sóng rộng rãi sau khi được tạo ra. Nó không thể xác minh rằng thông tin bên ngoài đã đượ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 đố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 sàng. Điều này dẫn đến người dùng không thể rút tiền. Điều duy nhất thực sự giải quyết vấn đề 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 định cư
Đ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ế tồn tại sự lựa chọn nhị phân giữa việc đưa dữ liệu lên chuỗi khối BTC hoặc 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 mặt, việc sử dụng BTCKhốiBlockchain làm lớp sẵn sàng dữ liệu sẽ đặt một giới hạn cứng cho tính mở rộng của rollup. Không gianKhố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 và tổng số giao dịch mà tất cả rollup có thể xử lý trên off-chain. Mỗi lần cập nhật rollup đều cần không gianKhố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, ở điểm này, không còn tiềm năng mở rộng nữa.
Mặt khác, việc sử dụng các lớp khác nhau để đạt được khả năng sử dụng dữ liệu sẽ loại bỏ ranh giới cứng về lợi ích mở rộng, nhưng nó cũng mang lại những vấn đề về an ninh và chủ quyền mới. Trong Rollup sử dụng BTC để đạt được khả năng sử dụng dữ liệu, nếu dữ liệu mà người dùng muốn rút ra không được tự động công bố trên blockchain, trạng thái của Rollup sẽ không thể thay đổi. Bằng cách sử dụng Validiums, sự đảm bảo này hoàn toàn phụ thuộc vào khả năng chống lừa đảo và giấu dữ liệu của hệ thống bên ngoài được sử dụng.
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ó của 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ế của Khối đó, từ đó làm cho dữ liệu sẵn có.
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 việc người dùng rút tiền một cách đơn phương, thì điều đó sẽ như thế nào?