Nguồn: Bitcoin Magazine; Dịch: Ngũ Châu, Kinh tế màu 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ự 'ăn cắp show' từ Lighting Network, về mặt sự quan tâm rộng hơn. Rollups nhằm mục đích trở thành một lớp off-chain thứ hai không bị ràng buộc hoặc hạn chế bởi hạn chế về thanh khoản của Lighting Network, nghĩa là người dùng cuối cùng cần có người cung cấp trước tiền (hoặc 'vay') để nhận được tiền, hoặc các nút trung gian cần có số dư kênh để thúc đẩy toàn bộ quá trình di chuyển số 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 các hệ thống Turing hoàn thành như Ethereum và các hệ thống 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ằm thảo luận về tình trạng 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 trong dài hạn, đ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ỗi tài khoản đơn lẻ (trong BTC là UTXO) 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 Merkle root 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 đề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 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 đơn phương mà không cần phép thuật của nhà điều hành.
Người vận hành của 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 thiếu ZKP này, giao dịch sẽ không hợp lệ và không thể được bao gồm trong Blockchain. 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 số dư tài khoản off-chain có được ủy quyền đúng đắn từ chủ sở hữu tài khoản và xem xét xem người vận hành đã cập nhật số dư mà không có ý định xấu để lấy cắp quỹ 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.
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ó thì làm thế nào để họ đưa nhánh của mình vào cây để có thể rút tiền mà không cần phải được 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 tài khoản của Rollup thay đổi, thông tin sẽ được đưa trực tiếp vào blockchain. Không phải cả cây, nó quá ngớ ngẩn, mà chỉ là thông tin cần thiết để tái tạo 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 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ề bản chất 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 giúp mỗi lần cập nhật Rollup chỉ chứa sự 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 để biết đượ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 chi phí và Khối không gian (do đó tiết kiệm vốn), đồng thời vẫn 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 dữ liệu này trong rollup chính thức được cung cấp bởi Khối chuỗi cho người dùng, 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 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 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, trong đó rollup vẫn cần đảm bảo 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 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ự gặp khó khăn. Khi dữ liệu được phát hành 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ó 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, tức 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 dữ liệu tồn tại trên các chứng minh khác on-chain, đ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ì xảy ra ngoài sự kiện trên chuỗi Khối của chính mình, đ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 dữ liệu rollup trên Khối đã được phát sóng công khai sau khi tạo ra có thực sự được phát sóng công khai hay không. 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 cuộc tấn công kẹp dữ liệu, tức là tạo cam kết đối với việc phát hành dữ liệu và sử dụng nó để thúc đẩy rollup, nhưng dữ liệu thực tế 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 viên của hệ thống ngoài BTC.
Tiến thoái vị đồng
Điều này đặt ra một thách thức cho rollup. Khi liên quan đến vấn đề khả dụng dữ liệu, đó là một sự lựa chọn nhị phân giữa việc đăng tải dữ liệu trên chuỗi khối BTC hoặc ở nơi khác. Sự lựa chọn này ảnh hưởng đáng kể đế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 BitcoinBlockchain làm tầng sẵn có dữ liệu sẽ đặt ra một giới hạn cứng cho tính mở rộng của rollup. Khối không gian 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 cũng như tổng số giao dịch có thể được xử lý off-chain của tất cả rollup. Mỗi lần cập nhật rollup đều cần một lượng không gian Khối tương ứng 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 khả 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 tính khả dụng dữ liệu sẽ loại bỏ giới hạn cứng về khả năng mở rộng, nhưng cũng đem lại vấn đề về an ninh và chủ quyền mới. Trong việc sử dụng BTC để đạt được tính khả dụng dữ liệu trong Rollup, nếu dữ liệu mà người dùng cần trích xuất không được tự động công bố trên blockchain, trạng thái của Rollup sẽ không thể thay đổi. Việc 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 ngoại vi 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 mà không cần phải phát sóng thực tế Khối đó, từ đó làm cho dữ liệu có sẵn.
Vậy nếu chúng ta thực sự thực hiện 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 của người dùng, điều đó sẽ như thế nào?
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 trung tâm của việc mở rộng BTC, trở thành điều đầu tiên thực sự 'ăn cắp show' từ Lighting Network, về mặt sự quan tâm rộng hơn. Rollups nhằm mục đích trở thành một lớp off-chain thứ hai không bị ràng buộc hoặc hạn chế bởi hạn chế về thanh khoản của Lighting Network, nghĩa là người dùng cuối cùng cần có người cung cấp trước tiền (hoặc 'vay') để nhận được tiền, hoặc các nút trung gian cần có số dư kênh để thúc đẩy toàn bộ quá trình di chuyển số 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 các hệ thống Turing hoàn thành như Ethereum và các hệ thống 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ằm thảo luận về tình trạng 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 trong dài hạn, đ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ỗi tài khoản đơn lẻ (trong BTC là UTXO) 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 Merkle root 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 đề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 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 đơn phương mà không cần phép thuật của nhà điều hành.
Người vận hành của 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 thiếu ZKP này, giao dịch sẽ không hợp lệ và không thể được bao gồm trong Blockchain. 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 số dư tài khoản off-chain có được ủy quyền đúng đắn từ chủ sở hữu tài khoản và xem xét xem người vận hành đã cập nhật số dư mà không có ý định xấu để lấy cắp quỹ 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.
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ó thì làm thế nào để họ đưa nhánh của mình vào cây để có thể rút tiền mà không cần phải được 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 tài khoản của Rollup thay đổi, thông tin sẽ được đưa trực tiếp vào blockchain. Không phải cả cây, nó quá ngớ ngẩn, mà chỉ là thông tin cần thiết để tái tạo 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 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ề bản chất 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 giúp mỗi lần cập nhật Rollup chỉ chứa sự 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 để biết đượ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 chi phí và Khối không gian (do đó tiết kiệm vốn), đồng thời vẫn 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 dữ liệu này trong rollup chính thức được cung cấp bởi Khối chuỗi cho người dùng, 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 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 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, trong đó rollup vẫn cần đảm bảo 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 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ự gặp khó khăn. Khi dữ liệu được phát hành 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ó 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, tức 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 dữ liệu tồn tại trên các chứng minh khác on-chain, đ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ì xảy ra ngoài sự kiện trên chuỗi Khối của chính mình, đ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 dữ liệu rollup trên Khối đã được phát sóng công khai sau khi tạo ra có thực sự được phát sóng công khai hay không. 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 cuộc tấn công kẹp dữ liệu, tức là tạo cam kết đối với việc phát hành dữ liệu và sử dụng nó để thúc đẩy rollup, nhưng dữ liệu thực tế 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 viên của hệ thống ngoài BTC.
Tiến thoái vị đồng
Điều này đặt ra một thách thức cho rollup. Khi liên quan đến vấn đề khả dụng dữ liệu, đó là một sự lựa chọn nhị phân giữa việc đăng tải dữ liệu trên chuỗi khối BTC hoặc ở nơi khác. Sự lựa chọn này ảnh hưởng đáng kể đế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 BitcoinBlockchain làm tầng sẵn có dữ liệu sẽ đặt ra một giới hạn cứng cho tính mở rộng của rollup. Khối không gian 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 cũng như tổng số giao dịch có thể được xử lý off-chain của tất cả rollup. Mỗi lần cập nhật rollup đều cần một lượng không gian Khối tương ứng 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 khả 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 tính khả dụng dữ liệu sẽ loại bỏ giới hạn cứng về khả năng mở rộng, nhưng cũng đem lại vấn đề về an ninh và chủ quyền mới. Trong việc sử dụng BTC để đạt được tính khả dụng dữ liệu trong Rollup, nếu dữ liệu mà người dùng cần trích xuất không được tự động công bố trên blockchain, trạng thái của Rollup sẽ không thể thay đổi. Việc 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 ngoại vi 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 mà không cần phải phát sóng thực tế Khối đó, từ đó làm cho dữ liệu có sẵn.
Vậy nếu chúng ta thực sự thực hiện 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 của người dùng, điều đó sẽ như thế nào?