Nguồn: Bitcoin Magazine; Dịch: Ngũ Châu, Kinh tế Vàng
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 chạy trên Ethereum và các hệ thống Turing hoàn thành khác, nhưng gần đây tập trung vào việc di chuyển chúng sang các chuỗi khối dựa trên UTXO (ví dụ như BTC). Bài viết này không nhắc đến tình trạng hiện tại của việc triển khai trên BTC, mà là về tính năng của Rollup lý tưởng mà mọi người đã theo đuổi trong thời gian dài, 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ỗi 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, cam kết này tồn tại dưới dạng gốc Merkle 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 các 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ật, chỉ cần chứng minh giao dịch của họ là một phần của cây Merkle, họ có thể rời Rollup một cách một chiều mà không cần phép thuật 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 on-chain trong quá trình hoàn thà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 Blockchain. 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 số dư 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à xem xét xem người vận hành có không cập nhật số dư một cách độc hại để đá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 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 sao cho họ có thể rút tiền mà không cần phép khi họ muốn?
Rollup phù hợp
Trong một Rollup phù hợp, mỗi khi xác nhận giao dịch mới off-chain 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 là toàn bộ cây, điều đó quá ngớ ngẩn, mà chỉ 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à các tài khoản chỉ được thêm vào trong các giao dịch cập nhật Rollup.
Trong 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ề cá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 khiến cho mỗi cập nhật Rollup chỉ chứa các thay đổi số dư của các tài khoản xảy ra. Sau đó, người dùng có thể dễ dàng 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 của số dư hiện tại.
Như vậy có thể tiết kiệm rất nhiều chi phí và Khối không gian (và 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 để truy cập một cách đơn phương thoát khỏi. 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, với các 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
Một cách khác để xử lý vấn đề sẵn dữ liệu rút của người dùng là đặt dữ liệu ở một nơi nào đó ngoài Khối chuỗi. Điều này đưa ra một số vấn đề tinh vi, 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 chuỗ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 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ề bảo mật cũng mạnh mẽ như vậy. Khi dữ liệu được đăng trực tiếp lên chuỗi khối Bitcoin, quy tắc Nhận thức chung có thể đảm bảo nó tuyệt đối chính xác. Tuy nhiên, khi nó được đăng lê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 đăng lên một hệ thống khác.
Điều này yêu cầu xác minh dữ liệu tồn tại trên các bằng chứng khối on-chain khác, đ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 chính khối của 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 bằng chứ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 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 ra cam kết đối với dữ liệu được công bố và sử dụng nó để thúc đẩy rollup, nhưng thực tế dữ liệu không khả dụng. Đ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à phụ thuộc hoàn toàn vào giá trị và cấu trúc khuyến nghị của hệ thống ngoài BTC.
Tiến hoặc lùi
Điều này đưa ra tình trạng 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 xuất bản dữ liệu lên chuỗi khối BTC hoặc nơi khác. 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 chuỗiKhốiBTCKhối 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 gianKhối là hữu hạn, điều này đặt mộ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. Mỗi lần cập nhật rollup đều cần một không gianKhố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, điều này không còn tiềm năng mở rộng hơn nữa.
Mặt khác, việc sử dụng các tầng khác nhau cho tính khả dụng của dữ liệu sẽ loại bỏ giới hạn cứng về khả năng mở rộng, nhưng nó cũng giới thiệu các vấn đề bảo mật và chủ quyền mới. Trong một bản tổng hợp sử dụng Bitcoin cho tính khả dụng của dữ liệu, trạng thái của bản tổng hợp không thể thay đổi nếu dữ liệu mà người dùng cần trích xuất không được tự động xuất bản lên blockchain. Với Validiums, sự đảm bảo này phụ thuộc hoàn toàn vào khả năng của các hệ thống bên ngoài được sử dụng để chống giả mạo 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 sẵn sàng dữ liệu bên ngoài đều có thể chiếm đoạt tài sả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ế 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ự thực hiện được Rollup lý tưởng trên BTC và thực sự thực hiện được rút tiền một chiều của người dù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.
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 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 chạy trên Ethereum và các hệ thống Turing hoàn thành khác, nhưng gần đây tập trung vào việc di chuyển chúng sang các chuỗi khối dựa trên UTXO (ví dụ như BTC). Bài viết này không nhắc đến tình trạng hiện tại của việc triển khai trên BTC, mà là về tính năng của Rollup lý tưởng mà mọi người đã theo đuổi trong thời gian dài, 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ỗi 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, cam kết này tồn tại dưới dạng gốc Merkle 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 các 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ật, chỉ cần chứng minh giao dịch của họ là một phần của cây Merkle, họ có thể rời Rollup một cách một chiều mà không cần phép thuật 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 on-chain trong quá trình hoàn thà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 Blockchain. 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 số dư 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à xem xét xem người vận hành có không cập nhật số dư một cách độc hại để đá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 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 sao cho họ có thể rút tiền mà không cần phép khi họ muốn?
Rollup phù hợp
Trong một Rollup phù hợp, mỗi khi xác nhận giao dịch mới off-chain 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 là toàn bộ cây, điều đó quá ngớ ngẩn, mà chỉ 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à các tài khoản chỉ được thêm vào trong các giao dịch cập nhật Rollup.
Trong 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ề cá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 khiến cho mỗi cập nhật Rollup chỉ chứa các thay đổi số dư của các tài khoản xảy ra. Sau đó, người dùng có thể dễ dàng 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 của số dư hiện tại.
Như vậy có thể tiết kiệm rất nhiều chi phí và Khối không gian (và 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 để truy cập một cách đơn phương thoát khỏi. 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, với các 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
Một cách khác để xử lý vấn đề sẵn dữ liệu rút của người dùng là đặt dữ liệu ở một nơi nào đó ngoài Khối chuỗi. Điều này đưa ra một số vấn đề tinh vi, 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 chuỗ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 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ề bảo mật cũng mạnh mẽ như vậy. Khi dữ liệu được đăng trực tiếp lên chuỗi khối Bitcoin, quy tắc Nhận thức chung có thể đảm bảo nó tuyệt đối chính xác. Tuy nhiên, khi nó được đăng lê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 đăng lên một hệ thống khác.
Điều này yêu cầu xác minh dữ liệu tồn tại trên các bằng chứng khối on-chain khác, đ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 chính khối của 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 bằng chứ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 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 ra cam kết đối với dữ liệu được công bố và sử dụng nó để thúc đẩy rollup, nhưng thực tế dữ liệu không khả dụng. Đ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à phụ thuộc hoàn toàn vào giá trị và cấu trúc khuyến nghị của hệ thống ngoài BTC.
Tiến hoặc lùi
Điều này đưa ra tình trạng 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 xuất bản dữ liệu lên chuỗi khối BTC hoặc nơi khác. 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 chuỗiKhốiBTCKhối 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 gianKhối là hữu hạn, điều này đặt mộ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. Mỗi lần cập nhật rollup đều cần một không gianKhố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, điều này không còn tiềm năng mở rộng hơn nữa.
Mặt khác, việc sử dụng các tầng khác nhau cho tính khả dụng của dữ liệu sẽ loại bỏ giới hạn cứng về khả năng mở rộng, nhưng nó cũng giới thiệu các vấn đề bảo mật và chủ quyền mới. Trong một bản tổng hợp sử dụng Bitcoin cho tính khả dụng của dữ liệu, trạng thái của bản tổng hợp không thể thay đổi nếu dữ liệu mà người dùng cần trích xuất không được tự động xuất bản lên blockchain. Với Validiums, sự đảm bảo này phụ thuộc hoàn toàn vào khả năng của các hệ thống bên ngoài được sử dụng để chống giả mạo 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 sẵn sàng dữ liệu bên ngoài đều có thể chiếm đoạt tài sả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ế 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ự thực hiện được Rollup lý tưởng trên BTC và thực sự thực hiện được rút tiền một chiều của người dùng, thì sẽ như thế nào?