Nguồn: Bitcoin Magazine; Dịch: Ngũ Châu, Kinh tế màu 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 chạy trên Ethereum và các hệ thống Turing hoàn thành khác, nhưng gần đây, sự tập trung đã chuyển sang việc di dời chúng sang blockchain dựa trên UTXO (ví dụ: BTC). Bài viết này không ý định thảo luận về tình hình triển khai trên BTC hiện tại, mà là thảo luận về các tính năng của Rollup lý tưởng mà mọi người đang theo đuổi trong thời gian dài, tính năng này phụ thuộc vào khả năng mà BTC hiện tại không hỗ trợ trực tiếp, đó là khả năng xác minh ZKP 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 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 được ủy quyền bằng Khóa công khai/Khóa riêng, vì vậy để thực hiện chi trả ngoại chuỗi, 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 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 bỏ Rollup một cách đơn phương mà không cần phép cấ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 số dư tài khoản trên-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 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 tài khoản off-chain có được ủy quyền đúng đắn 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ư bị xâm phạm để đánh cắp tài sản của người dùng hoặc phân phối lại nó 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 công khai trên chuỗi, người dùng có thể xem và truy cập vào nó, thì làm sao họ có thể đặt nhánh của mình vào cây để có thể rút khỏi nó mà không cần phép cấp bất kỳ lúc nào họ muốn?
Rollup phù hợp
Trong môi trường Rollup thích hợp, mỗi khi xác nhận 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 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ài đặt đơ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 giao dịch cập nhật Rollup.
Trong việc triển khai cao cấp hơn, sử dụng sự khác biệt trong số dư tài khoản. Đ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 vố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 trong số dư 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ọ xây dựng lại cây Merkle của số dư hiện tại.
Việc này giúp tiết kiệm chi phí lớn và Khối lưu trữ (đồ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 để thoát khỏ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, nghĩa là các giao dịch không bao gồm tài khoản tóm tắt 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 đề 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 một 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 làm 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 an ninh mạnh mẽ tương tự nhưng gặp khó khăn. 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 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 hệ thống khác.
Điều này đòi hỏi xác minh rằng dữ liệu tồn tại trên on-chain chứng minh tồn tại trên on-chain khác, điều này cuối cùng là một vấn đề của máy Oracle. Khối BTC không thể xác minh hoàn toàn bất cứ điều gì ngoài việc xảy ra trên chính Khối on-chain 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 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, nghĩa 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 khả dụng. Đ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 viên của hệ thống ngoài BTC.
Lưỡng Lự
Đ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 khả dụng dữ liệu, thực tế có sự lựa chọn nhị phân giữa việc công bố dữ liệu trê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 bảo mật và chủ quyền của rollup cũng như khả năng mở rộng của nó.
Một mặt, việc sử dụng BTCKhối Chain làm lớp khả dụ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 gian Khối là có 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ố lượng giao dịch có thể được xử lý ở tài khoản off-chain. 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 từ lần cập nhật trước đến nay. 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 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.
Bây giờ, 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 số tiề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 Khối thực tế, 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 triển khai Rollup lý tưởng trên BTC, 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; Dịch: Ngũ Châu, Kinh tế màu 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 chạy trên Ethereum và các hệ thống Turing hoàn thành khác, nhưng gần đây, sự tập trung đã chuyển sang việc di dời chúng sang blockchain dựa trên UTXO (ví dụ: BTC). Bài viết này không ý định thảo luận về tình hình triển khai trên BTC hiện tại, mà là thảo luận về các tính năng của Rollup lý tưởng mà mọi người đang theo đuổi trong thời gian dài, tính năng này phụ thuộc vào khả năng mà BTC hiện tại không hỗ trợ trực tiếp, đó là khả năng xác minh ZKP 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 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 được ủy quyền bằng Khóa công khai/Khóa riêng, vì vậy để thực hiện chi trả ngoại chuỗi, 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 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 bỏ Rollup một cách đơn phương mà không cần phép cấ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 số dư tài khoản trên-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 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 tài khoản off-chain có được ủy quyền đúng đắn 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ư bị xâm phạm để đánh cắp tài sản của người dùng hoặc phân phối lại nó 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 công khai trên chuỗi, người dùng có thể xem và truy cập vào nó, thì làm sao họ có thể đặt nhánh của mình vào cây để có thể rút khỏi nó mà không cần phép cấp bất kỳ lúc nào họ muốn?
Rollup phù hợp
Trong môi trường Rollup thích hợp, mỗi khi xác nhận 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 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ài đặt đơ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 giao dịch cập nhật Rollup.
Trong việc triển khai cao cấp hơn, sử dụng sự khác biệt trong số dư tài khoản. Đ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 vố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 trong số dư 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ọ xây dựng lại cây Merkle của số dư hiện tại.
Việc này giúp tiết kiệm chi phí lớn và Khối lưu trữ (đồ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 để thoát khỏ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, nghĩa là các giao dịch không bao gồm tài khoản tóm tắt 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 đề 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 một 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 làm 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 an ninh mạnh mẽ tương tự nhưng gặp khó khăn. 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 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 hệ thống khác.
Điều này đòi hỏi xác minh rằng dữ liệu tồn tại trên on-chain chứng minh tồn tại trên on-chain khác, điều này cuối cùng là một vấn đề của máy Oracle. Khối BTC không thể xác minh hoàn toàn bất cứ điều gì ngoài việc xảy ra trên chính Khối on-chain 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 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, nghĩa 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 khả dụng. Đ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 viên của hệ thống ngoài BTC.
Lưỡng Lự
Đ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 khả dụng dữ liệu, thực tế có sự lựa chọn nhị phân giữa việc công bố dữ liệu trê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 bảo mật và chủ quyền của rollup cũng như khả năng mở rộng của nó.
Một mặt, việc sử dụng BTCKhối Chain làm lớp khả dụ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 gian Khối là có 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ố lượng giao dịch có thể được xử lý ở tài khoản off-chain. 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 từ lần cập nhật trước đến nay. 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 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.
Bây giờ, 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 số tiề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 Khối thực tế, 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 triển khai Rollup lý tưởng trên BTC, 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?