Nguồn: Bitcoin Magazine; Biên 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 triển khai trên Ethereum và các hệ thống hoàn thành Turing khác, nhưng gần đây đã tập trung chuyển sang việc chuyển giao chúng sang blockchain dựa trên UTXO (ví dụ như BTC). Bài viết này không nhằm mục đích 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ề các 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, tính năng này phụ thuộc vào khả năng xác minh Chứng cứ không kiến thức trực tiếp (ZKP) trên 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 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, cam kết này 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 các 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, do đó để thực hiện 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, chỉ cần tạo ra chứng minh giao dịch 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 một chiều 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 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 không có 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 đối với số dư tài khoản off-chain có được sự ủy quyền đúng đắn từ chủ sở hữu tài khoản và xem xét xem nhà vận hành đã 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 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 nó, nhưng làm sao họ đặt chi nhánh của mình vào cây để có thể thoát mà không cần phải được phép vào bất cứ lúc nào họ muốn?
Rollup phù hợp
Trong một Rollup phù hợp, mỗi khi một giao dịch off-chain mới được xác nhận 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, vì đ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 thực hiện đơ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 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 chi phí và Khối không gian (do đó tiết kiệm tiền), đồng thời 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. 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 cách sử dụng Khối chuỗi, có nghĩa là 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 đề khả năng sử dụng dữ liệu rút trích của người dùng là đặt dữ liệu ở nơi khác ngoài Khối. Điều này đưa ra các 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 khác được sử dụng cho mục đích này, được thiết kế đặc biệt như một lớp khả năng sử dụng dữ liệu cho các hệ thống như rollup.
Điều này dẫn đến tình trạng mâu thuẫn mạnh mẽ giữa việc bảo vệ an toàn. 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 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 ra một hệ thống khác.
Điều này đòi hỏi sự chứng minh rằng dữ liệu tồn tại trên các chứng chỉ khối khác, điều này cuối cùng là một vấn đề của Máy Oracle. Chuỗi Khối của BTC không thể xác minh hoàn toàn bất kỳ điều gì ngoài việc xảy ra trên chính chuỗi Khối của 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 dữ liệu rollup trên Khối đã được phát sóng công khai sau khi được tạo ra. Nó không thể xác minh xem thông tin bên ngoài đã 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 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 hoặc rút lui
Điều này đặt ra một tình thế khó khăn cho rollup. Khi liên quan đến vấn đề tính sẵn có của dữ liệu, thực tế là có sự lựa chọn nhị phân giữa việc công bố 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 đáng kể đế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ối Chain như một lớp khả năng sử 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 gian Khối là hạn chế, đ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ố lượng giao dịch có thể được xử lý off-chain của tất cả các rollup. 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 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à ở mức đó không còn tiềm năng mở rộng nữa.
另一方面,sử dụng các lớp khác nhau để đạt được tính sẵn có của dữ liệu sẽ loại bỏ giới hạn cứng của lợi ích mở rộng, nhưng nó cũng đưa ra vấn đề về an ninh và chủ quyền mới. Trong Rollup sử dụng BTC để đạt được tính sẵn có của dữ liệu, nếu dữ liệu mà người dùng cần không được tự động công bố trên blockchain, trạng thái của Rollup sẽ không thể thay đổi. 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 sự lừa dối và ẩn dữ liệu.
Hiện tại, 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 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ừ đó đảm bảo tính khả dụng 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 đơn phương của 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, 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 triển khai trên Ethereum và các hệ thống hoàn thành Turing khác, nhưng gần đây đã tập trung chuyển sang việc chuyển giao chúng sang blockchain dựa trên UTXO (ví dụ như BTC). Bài viết này không nhằm mục đích 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ề các 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, tính năng này phụ thuộc vào khả năng xác minh Chứng cứ không kiến thức trực tiếp (ZKP) trên 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 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, cam kết này 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 các 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, do đó để thực hiện 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, chỉ cần tạo ra chứng minh giao dịch 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 một chiều 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 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 không có 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 đối với số dư tài khoản off-chain có được sự ủy quyền đúng đắn từ chủ sở hữu tài khoản và xem xét xem nhà vận hành đã 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 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 nó, nhưng làm sao họ đặt chi nhánh của mình vào cây để có thể thoát mà không cần phải được phép vào bất cứ lúc nào họ muốn?
Rollup phù hợp
Trong một Rollup phù hợp, mỗi khi một giao dịch off-chain mới được xác nhận 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, vì đ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 thực hiện đơ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 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 chi phí và Khối không gian (do đó tiết kiệm tiền), đồng thời 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. 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 cách sử dụng Khối chuỗi, có nghĩa là 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 đề khả năng sử dụng dữ liệu rút trích của người dùng là đặt dữ liệu ở nơi khác ngoài Khối. Điều này đưa ra các 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 khác được sử dụng cho mục đích này, được thiết kế đặc biệt như một lớp khả năng sử dụng dữ liệu cho các hệ thống như rollup.
Điều này dẫn đến tình trạng mâu thuẫn mạnh mẽ giữa việc bảo vệ an toàn. 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 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 ra một hệ thống khác.
Điều này đòi hỏi sự chứng minh rằng dữ liệu tồn tại trên các chứng chỉ khối khác, điều này cuối cùng là một vấn đề của Máy Oracle. Chuỗi Khối của BTC không thể xác minh hoàn toàn bất kỳ điều gì ngoài việc xảy ra trên chính chuỗi Khối của 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 dữ liệu rollup trên Khối đã được phát sóng công khai sau khi được tạo ra. Nó không thể xác minh xem thông tin bên ngoài đã 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 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 hoặc rút lui
Điều này đặt ra một tình thế khó khăn cho rollup. Khi liên quan đến vấn đề tính sẵn có của dữ liệu, thực tế là có sự lựa chọn nhị phân giữa việc công bố 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 đáng kể đế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ối Chain như một lớp khả năng sử 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 gian Khối là hạn chế, đ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ố lượng giao dịch có thể được xử lý off-chain của tất cả các rollup. 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 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à ở mức đó không còn tiềm năng mở rộng nữa.
另一方面,sử dụng các lớp khác nhau để đạt được tính sẵn có của dữ liệu sẽ loại bỏ giới hạn cứng của lợi ích mở rộng, nhưng nó cũng đưa ra vấn đề về an ninh và chủ quyền mới. Trong Rollup sử dụng BTC để đạt được tính sẵn có của dữ liệu, nếu dữ liệu mà người dùng cần không được tự động công bố trên blockchain, trạng thái của Rollup sẽ không thể thay đổi. 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 sự lừa dối và ẩn dữ liệu.
Hiện tại, 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 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ừ đó đảm bảo tính khả dụng 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 đơn phương của người dùng, điều đó sẽ như thế nào?