Nguồn: Bitcoin Magazine; Dịch: Ngũ Châu, Kinh tế Màu Vàng
Rollups gần đây đã trở thành tâm điểm của việc mở rộng BTC, trở thành thứ đầu tiên thực sự “đánh cắp ánh sáng” từ Mạng Lighting Network, trong phạm vi 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 các hạn chế cốt lõi về thanh khoản của Mạng Lighting Network, nghĩa là người dùng cuối cùng cần phải có người cung cấp trước (hoặc “cho vay”) tiền để nhận tiền, hoặc các nút trung gian cần có số dư kênh để tạo điều kiện cho 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, sự tập trung đã chuyển sang việc di dời chúng sang các blockchain dựa trên UTXO (ví dụ: BTC). Bài viết này không cố ý thảo luận về tình hình triển khai hiện tại trên BTC, mà là về các tính năng của Rollup lý tưởng mà mọi người 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ợ, tức là khả năng xác minh Bằng chứng không kiến thức (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 (trong BTC được gọi 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 hiện có tất cả số dư của tài khoản hiện có trong Rollup dưới dạng Merkle root của cây Merkle. Tất cả các tài khoản này đều được ủy quyền bằng cách sử dụng cặp khóa công khai / khóa riêng, do đó để thực hiện các chi tiêu 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 khỏi bất cứ lúc nào mà không cần phải được cấp phép, chỉ cần tạo một 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út lui khỏi Rollup một cách độc lập mà không cần phải được cấp phép bởi 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 khi hoàn thành quá trì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 sự ủy quyền đúng đắn từ chủ sở hữu tài khoản, và liệu người vận hành có cập nhật số dư một cách đầy đủ theo nguyên tắc hoặc có lấy trộm tiề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ó, vậy họ sẽ làm thế nào để đưa nhánh của họ vào trong cây để có thể rút tiền mà không cần phải xin phép khi họ muốn?
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 của 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 để tái tạo 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à tài khoản chỉ được thêm vào trong giao dịch cập nhật của 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 một lượng lớn chi phí và Khối không gian (đồng thời 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 để truy cập thoát khỏi một cách đơn phương. Quy tắc rollup yêu cầu rằng dữ liệu này được bao gồm trong rollup chính thức mà Khối chuỗi cung cấp cho người dùng, nghĩa là 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ệ.
Một cách khác để xử lý vấn đề khả năng sử dụng dữ liệu rút ra của người dùng là đặt dữ liệu ở một nơi khác ngoài chuỗi Khối. Điều này đưa ra những 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 chuỗi 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ả dụng của 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. Khi dữ liệu được công bố trực tiếp trên chuỗi Khối Bitcoin, 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 công bố trên 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 chỉ SPV, nghĩa là dữ liệu đã được công bố trên một hệ thống khác.
Điều này đòi hỏi việc xác minh dữ liệu tồn tại trên các chứng minh khối trên chuỗi khối 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 nó chuỗi khối. Đ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 có 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.
Điều này đã mở ra cánh cửa cho cuộc tấn công giữ 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ó để tiến hành rollup, nhưng thực tế dữ liệu chưa sẵn sàng. Điều này khiến người dùng không thể rút tiền. Giải pháp duy nhất 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.
Điều này đặt ra một tình thế khó khăn cho rollup. Khi liên quan đến vấn đề khả năng truy cập dữ liệu, thực chất có hai lựa chọn nhị phân là đưa 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 bảo mật, chủ quyền và khả năng mở rộng của rollup.
Một mặt, việc sử dụng BlockchainBitcoin 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 gian Khối là hữu hạn, điều này đặt ra một giới hạn cho số lượng rollup có thể tồn tại trong một lần cập nhật và tổng số giao dịch mà tất cả rollup có thể xử lý off-chain. Mỗi lần cập nhật rollup đều cần 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, ở điểm này, không còn tiềm năng mở rộng nào nữa.
Ở một khía cạnh khác, việc 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 mang đến vấn đề 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 rút ra không được tự động xuất bản lên chuỗi khối, 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ỳ người sản xuất Khối nào trên hệ thống sẵn sàng của dữ liệu bên ngoại cũng 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ừ đó tạo điều kiện cho việc sử dụng 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 sự thực hiện được việc rút tiền một cách đơn phương, thì sẽ như thế nào?