Data Availability, hay khả dụng dữ liệu, là điều kiện bảo đảm dữ liệu cần thiết để kiểm tra một khối hoặc trạng thái blockchain có thể được các bên tham gia mạng truy xuất trong thời gian phù hợp. Đây không chỉ là câu chuyện dữ liệu có tồn tại ở đâu đó, mà còn liên quan đến việc node có thực sự lấy được dữ liệu để tự xác minh hay không.
Vấn đề này đặc biệt quan trọng với rollup và kiến trúc blockchain mô-đun, nơi thực thi giao dịch, đồng thuận, thanh toán và lưu trữ dữ liệu có thể được phân bổ cho các lớp khác nhau. Nếu lớp thực thi công bố một cam kết về dữ liệu nhưng dữ liệu bên dưới bị giữ lại, người dùng có thể không tái tạo được trạng thái dù cam kết đó đã được ghi nhận.
Data Availability blockchain là gì?
Trong blockchain, một khối thường chứa hoặc tham chiếu đến các giao dịch làm thay đổi trạng thái của mạng. Để kiểm tra trạng thái mới có hợp lệ hay không, node cần biết đầu vào đã được sử dụng: giao dịch nào được đưa vào, thứ tự thực hiện ra sao và dữ liệu bổ sung nào cần thiết theo thiết kế của giao thức.
Có thể hình dung quá trình ở mức khái quát như sau:
- Mạng đang ở trạng thái trước khối.
- Nhà sản xuất khối lựa chọn và sắp xếp giao dịch.
- Các giao dịch được thực thi để tạo trạng thái mới.
- Node nhận dữ liệu, thực thi lại hoặc kiểm tra bằng cơ chế xác minh tương ứng.
- Node chỉ chấp nhận khối nếu kết quả đáp ứng quy tắc giao thức.
Nếu nhà sản xuất khối chỉ công bố tiêu đề khối, state root hoặc một cam kết mật mã nhưng giữ lại dữ liệu giao dịch, các node khác có thể không đủ thông tin để kiểm tra quá trình chuyển đổi trạng thái. Đây được gọi là vấn đề giữ lại dữ liệu, hay data withholding.
Data Availability blockchain vì vậy trả lời câu hỏi: dữ liệu cần để xác minh có thực sự sẵn cho những người cần lấy nó hay không?
Khả dụng dữ liệu không đồng nghĩa với việc mọi node phải lưu toàn bộ lịch sử mãi mãi. Một mạng có thể bảo đảm dữ liệu sẵn có trong khoảng thời gian cần thiết để xác minh, sau đó dựa vào node lưu trữ dài hạn hoặc hạ tầng khác để phục vụ nhu cầu lịch sử.
Vì sao dữ liệu giao dịch phải sẵn có?

Node cần dữ liệu để xác minh trạng thái
Blockchain hướng đến khả năng kiểm chứng độc lập. Thay vì tin rằng nhà sản xuất khối đã tính đúng, node có thể kiểm tra dữ liệu và quy tắc chuyển trạng thái.
Ví dụ, một cam kết trạng thái mới có thể cho biết kết quả cuối cùng, nhưng không tự động cho biết:
- Giao dịch nào đã tạo ra kết quả đó.
- Có giao dịch không hợp lệ được đưa vào hay không.
- Một giao dịch có bị thực hiện hai lần không.
- Thứ tự giao dịch có tuân thủ quy tắc không.
- Số dư và trạng thái hợp đồng đã thay đổi như thế nào.
Tùy mô hình blockchain, node có thể thực thi lại toàn bộ giao dịch, kiểm tra bằng bằng chứng mật mã hoặc sử dụng dữ liệu chứng kiến trạng thái. Dù phương pháp khác nhau, hệ thống vẫn cần xác định dữ liệu đầu vào có thể được truy xuất theo đúng giả định bảo mật hay không.
Cam kết dữ liệu không thay thế dữ liệu
Một commitment có thể giúp kiểm tra dữ liệu nhận được có khớp với nội dung đã cam kết hay không. Tuy nhiên, commitment thường không giúp khôi phục toàn bộ dữ liệu nếu nhà sản xuất khối không cung cấp dữ liệu đó.
Nói cách khác, tính toàn vẹn và tính khả dụng là hai thuộc tính khác nhau:
- Tính toàn vẹn cho phép phát hiện dữ liệu đã bị sửa đổi.
- Tính khả dụng cho phép các bên lấy được dữ liệu cần kiểm tra.
Một khối có thể chứa commitment hợp lệ về mặt mật mã nhưng vẫn gây rủi ro nếu dữ liệu tương ứng không thể được truy xuất.
Khả dụng dữ liệu hỗ trợ phát hiện khối không hợp lệ
Trong hệ thống dựa trên fraud proof, người quan sát cần dữ liệu để thực thi lại giao dịch và phát hiện chuyển đổi trạng thái sai. Nếu dữ liệu bị giữ lại, họ không thể tạo bằng chứng gian lận dù nghi ngờ kết quả không hợp lệ.
Trong hệ thống dùng validity proof, bằng chứng có thể xác nhận phép chuyển trạng thái tuân thủ mạch xác minh. Tuy nhiên, nếu dữ liệu trạng thái không sẵn có, người dùng vẫn có thể gặp khó khăn khi tái tạo trạng thái, chứng minh quyền sở hữu hoặc tiếp tục tương tác độc lập với hệ thống.
Vấn đề này khác với việc blockchain ngừng hoạt động và cách kiểm tra trạng thái mạng. Một blockchain có thể vẫn tạo khối nhưng gặp vấn đề khả dụng dữ liệu ở một lớp liên quan; ngược lại, mạng dừng tạo khối là sự cố về tính sống hoặc vận hành.
Phân biệt lưu trữ, xuất bản và khả dụng dữ liệu
Ba khái niệm này có liên quan nhưng không thể dùng thay thế cho nhau.
| Khái niệm | Câu hỏi chính | Ý nghĩa |
|---|---|---|
| Lưu trữ dữ liệu | Dữ liệu được giữ ở đâu và trong bao lâu? | Liên quan đến việc duy trì bản sao hiện tại hoặc lịch sử |
| Xuất bản dữ liệu | Dữ liệu đã được đưa tới vị trí hoặc kênh mà giao thức quy định chưa? | Là hành động công bố, phát tán hoặc ghi dữ liệu lên một lớp khác |
| Khả dụng dữ liệu | Người tham gia có thực sự truy xuất được dữ liệu cần thiết không? | Là thuộc tính cho phép kiểm tra, tái tạo trạng thái hoặc phản đối kết quả sai |
Lưu trữ không tự động tạo ra khả dụng
Một đơn vị vận hành có thể tuyên bố đã lưu dữ liệu trên máy chủ riêng. Dữ liệu vẫn tồn tại về mặt vật lý, nhưng nếu node độc lập không thể truy cập, dữ liệu đó không khả dụng theo nghĩa bảo mật của blockchain.
Ngược lại, một giao thức có thể không yêu cầu mọi node lưu lịch sử vĩnh viễn nhưng vẫn bảo đảm dữ liệu được phân phối đủ rộng trong giai đoạn xác minh.
Xuất bản không chỉ là đăng một đường dẫn
Việc đưa dữ liệu lên website, API hoặc dịch vụ lưu trữ tập trung không nhất thiết đáp ứng yêu cầu Data Availability. Cần xem xét ai kiểm soát điểm truy cập, dữ liệu có thể bị gỡ hay kiểm duyệt không, node có xác minh được nội dung không và giao thức phản ứng thế nào khi dữ liệu không thể lấy được.
Trong một số thiết kế, dữ liệu được đưa trực tiếp lên blockchain lớp cơ sở. Ở thiết kế khác, dữ liệu được đăng lên mạng DA chuyên biệt hoặc được một nhóm bên vận hành cam kết lưu giữ. Mỗi mô hình tạo ra giả định tin cậy và chi phí khác nhau.
Khả dụng không đồng nghĩa với lưu trữ vĩnh viễn
DA chủ yếu tập trung vào khả năng lấy dữ liệu trong thời gian cần thiết để kiểm tra và bảo vệ trạng thái. Lưu trữ lịch sử lâu dài phục vụ mục tiêu khác, chẳng hạn truy vấn dữ liệu cũ, phân tích on-chain hoặc vận hành archive node.
Một dự án cần nói rõ thời gian dữ liệu được bảo đảm, ai chịu trách nhiệm lưu bản lịch sử và điều gì xảy ra sau khi thời hạn bảo đảm kết thúc.
DA layer là gì?
DA layer, viết đầy đủ là data availability layer, là lớp được thiết kế để tiếp nhận, phân phối và giúp mạng xác định dữ liệu của khối hoặc batch đã sẵn có. Lớp này có thể nằm trong blockchain lớp cơ sở hoặc là một mạng chuyên biệt được hệ thống khác sử dụng.
Trong blockchain nguyên khối, một mạng có thể đảm nhiệm đồng thời nhiều chức năng như đồng thuận, thực thi, thanh toán và khả dụng dữ liệu. Với kiến trúc modular blockchain và các đánh đổi, những chức năng này có thể được tách ra để từng lớp chuyên xử lý một nhiệm vụ.
Một data availability layer thường cần giải quyết các yêu cầu sau:
- Nhận dữ liệu từ nhà sản xuất khối hoặc sequencer.
- Gắn dữ liệu với một commitment có thể xác minh.
- Phân phối dữ liệu cho mạng theo quy tắc giao thức.
- Cho phép node đánh giá dữ liệu có sẵn mà không nhất thiết tải toàn bộ khối.
- Tạo hậu quả rõ ràng khi dữ liệu không được cung cấp đúng quy định.
DA layer không tự động bảo đảm giao dịch hợp lệ. Nó tập trung vào việc dữ liệu có thể được truy xuất; còn tính đúng của việc thực thi có thể do node lớp cơ sở, fraud proof, validity proof hoặc cơ chế khác kiểm tra.
Các mô hình DA phổ biến có thể được phân loại ở mức khái quát như sau:
Đăng dữ liệu lên lớp cơ sở
Rollup đưa dữ liệu giao dịch hoặc dữ liệu đủ để tái tạo trạng thái lên blockchain dùng làm lớp thanh toán. Mô hình này kế thừa mức bảo đảm DA của lớp cơ sở nhưng phải cạnh tranh không gian khối và chịu chi phí đăng dữ liệu.
Sử dụng mạng DA chuyên biệt
Dữ liệu được gửi đến một blockchain hoặc mạng tập trung vào khả dụng dữ liệu. Rollup có thể giảm phụ thuộc vào không gian dữ liệu của lớp thanh toán, nhưng người dùng phải hiểu thêm mô hình đồng thuận, tập validator, cơ chế lấy mẫu và cầu nối giữa các lớp.
Sử dụng ủy ban khả dụng dữ liệu
Một nhóm thành viên cam kết đã nhận và lưu dữ liệu. Cách tiếp cận này có thể giảm chi phí hoặc độ phức tạp, nhưng mức an toàn phụ thuộc vào số thành viên, cơ chế lựa chọn, ngưỡng ký và khả năng các thành viên thông đồng hoặc ngừng phục vụ.
Không nên đánh giá một DA layer chỉ dựa trên tốc độ hoặc chi phí công bố. Khả năng kiểm chứng độc lập và giả định tin cậy mới là phần quyết định mô hình bảo mật.
Data availability sampling hoạt động như thế nào?

Data availability sampling, thường viết tắt là DAS, là kỹ thuật cho phép node kiểm tra xác suất dữ liệu của một khối có sẵn mà không cần tải toàn bộ khối.
Ở mức khái quát, quy trình gồm các bước:
- Dữ liệu khối được mã hóa thành nhiều phần bằng cơ chế mã sửa lỗi.
- Các phần dữ liệu được gắn với commitment để node kiểm tra tính nhất quán.
- Node nhẹ yêu cầu ngẫu nhiên một số phần dữ liệu.
- Nếu các mẫu được trả về đầy đủ và hợp lệ, node có thêm cơ sở để tin rằng dữ liệu tổng thể đã được phát tán.
- Nếu nhiều mẫu bị thiếu, node có thể từ chối coi khối là khả dụng.
Ý tưởng cốt lõi là: để ngăn mạng tái tạo dữ liệu, bên tấn công phải giữ lại đủ nhiều phần. Khi nhiều node chọn mẫu ngẫu nhiên, hành vi giữ lại quy mô lớn có khả năng bị phát hiện.
DAS tạo ra sự bảo đảm theo xác suất, không phải kết luận tuyệt đối từ một lần lấy mẫu. Mức tin cậy phụ thuộc vào thiết kế mã hóa, số lượng và tính độc lập của mẫu, cách commitment được kiểm tra, khả năng phát tán dữ liệu và giả định về mạng ngang hàng.
Data availability sampling cũng không đồng nghĩa với lưu trữ toàn bộ dữ liệu. Các node lấy mẫu chỉ tải một phần, trong khi mạng vẫn cần đủ bên nắm giữ các phần dữ liệu để có thể tái tạo khối khi cần.
Data Availability liên quan gì đến rollup?
Rollup thực thi hoặc xử lý giao dịch ngoài lớp cơ sở, sau đó gửi kết quả cùng dữ liệu hoặc bằng chứng liên quan về một lớp khác. Cách thiết kế này có thể giảm lượng tính toán mà lớp cơ sở phải thực hiện, nhưng tạo ra câu hỏi quan trọng: dữ liệu của batch được công bố ở đâu và ai có thể lấy được?
Với optimistic rollup
Optimistic rollup mặc định chấp nhận kết quả trong điều kiện không có bằng chứng gian lận hợp lệ. Người giám sát cần dữ liệu giao dịch để thực thi lại batch, so sánh kết quả và tạo fraud proof nếu sequencer gửi state root sai.
Nếu dữ liệu bị giữ lại, người giám sát có thể không đủ thông tin để chứng minh sai phạm. Vì vậy, cơ chế DA là một phần thiết yếu trong mô hình an toàn của optimistic rollup.
Với ZK rollup
ZK rollup sử dụng validity proof để chứng minh chuyển đổi trạng thái tuân thủ các ràng buộc đã thiết lập. Bằng chứng giúp lớp xác minh kiểm tra tính đúng của phép tính mà không phải thực thi lại toàn bộ giao dịch.
Tuy vậy, validity proof không tự động giải quyết mọi vấn đề về khả dụng dữ liệu. Nếu dữ liệu cần để tái tạo trạng thái không được cung cấp, người dùng có thể biết rằng trạng thái mới được tính đúng theo mạch nhưng không đủ dữ liệu để tự xác định trạng thái chi tiết hoặc tiếp tục sử dụng hệ thống độc lập.
Rollup và validium khác nhau ở đâu?
Cách gọi có thể thay đổi giữa các hệ sinh thái, nhưng điểm phân biệt thường nằm ở nơi dữ liệu được bảo đảm:
- Rollup thường công bố dữ liệu cần thiết lên lớp cơ sở hoặc một lớp có cơ chế DA được tích hợp rõ ràng.
- Validium sử dụng validity proof cho tính đúng của trạng thái nhưng giữ dữ liệu bên ngoài lớp thanh toán, chẳng hạn thông qua một ủy ban hoặc hệ thống DA riêng.
Validium không nhất thiết tạo ra giao dịch sai nếu bằng chứng hợp lệ, nhưng việc dữ liệu bị giữ lại có thể ảnh hưởng đến khả năng truy cập trạng thái hoặc rút tài sản. Khi đánh giá, cần xem cơ chế dự phòng của từng hệ thống thay vì chỉ dựa vào nhãn dự án tự sử dụng.
DA ảnh hưởng đến chi phí và tính tự chủ
Dữ liệu thường chiếm một phần đáng kể trong tài nguyên mà rollup phải sử dụng khi gửi batch. Chuyển sang một DA layer khác có thể thay đổi chi phí, nhưng đồng thời thay đổi giả định bảo mật.
Một rollup rẻ hơn nhờ giữ dữ liệu ngoài lớp cơ sở không mặc nhiên tốt hoặc xấu. Người dùng cần biết khoản tiết kiệm đến từ cải tiến kỹ thuật hay từ việc chấp nhận thêm bên trung gian và rủi ro giữ lại dữ liệu.
Cách đánh giá cơ chế Data Availability của một dự án

Khi nghiên cứu một dự án blockchain và các tiêu chí đánh giá, phần DA nên được xem như một thành phần của mô hình bảo mật, không chỉ là thông số hiệu năng.
Dữ liệu được đăng ở đâu?
Xác định dữ liệu giao dịch đầy đủ, dữ liệu nén hay chỉ commitment được gửi lên lớp nào. Việc một dự án ghi state root lên blockchain lớn không có nghĩa toàn bộ dữ liệu cũng được bảo đảm bởi blockchain đó.
Ai có thể xác minh dữ liệu?
Kiểm tra người dùng thông thường có thể chạy node, truy xuất batch và tái tạo trạng thái hay phải phụ thuộc vào API do dự án kiểm soát. Nếu chỉ một nhóm được cấp quyền có thể lấy dữ liệu, hệ thống có giả định tin cậy cao hơn.
Điều gì xảy ra khi dữ liệu bị giữ lại?
Một thiết kế DA cần có phản ứng cụ thể khi dữ liệu không sẵn có. Ví dụ ở mức nguyên tắc, node có thể từ chối khối, giao thức có thể dừng xác nhận batch hoặc hệ thống có thể kích hoạt chế độ thoát. Nếu tài liệu chỉ nói dữ liệu luôn sẵn có mà không mô tả cách phát hiện và xử lý lỗi, người đọc chưa đủ cơ sở đánh giá.
Cơ chế có dựa vào ủy ban không?
Nếu có data availability committee, cần xem:
- Ai chọn thành viên.
- Bao nhiêu thành viên cần ký.
- Thành viên có độc lập về vận hành hay không.
- Có cơ chế thay thế và xử phạt hay không.
- Người dùng làm gì nếu ủy ban ngừng cung cấp dữ liệu.
Chữ ký của ủy ban chỉ chứng minh đủ thành viên đã đưa ra cam kết theo quy tắc; nó không tự động loại bỏ nguy cơ thông đồng hoặc mất dữ liệu.
DAS có được triển khai thực tế không?
Một dự án nhắc đến data availability sampling trong lộ trình không đồng nghĩa tính năng đã hoạt động. Cần phân biệt giữa thiết kế nghiên cứu, môi trường thử nghiệm và phiên bản đang bảo vệ tài sản thật.
Ngoài ra, nên kiểm tra DAS được kết hợp với cơ chế mã hóa, commitment và mạng phân phối dữ liệu nào. Chỉ lấy ngẫu nhiên vài mẩu dữ liệu mà không có thiết kế hỗ trợ đầy đủ chưa tạo thành một hệ thống DA an toàn.
Cầu nối kế thừa giả định bảo mật nào?
Nếu rollup dùng lớp thanh toán và DA layer khác nhau, cầu nối có thể phải xác minh thông tin từ nhiều hệ thống. Người dùng cần biết việc rút tài sản phụ thuộc vào đồng thuận của lớp nào, bằng chứng nào và dữ liệu nào phải còn truy xuất được.
Những hiểu lầm thường gặp
- Có state root nghĩa là dữ liệu đã sẵn có: State root chỉ là cam kết về trạng thái, không phải bản sao của dữ liệu giao dịch.
- Có validity proof thì không cần DA: Bằng chứng có thể xác nhận tính đúng của phép chuyển trạng thái, nhưng người dùng vẫn cần dữ liệu để tái tạo và sử dụng trạng thái trong nhiều mô hình.
- Lưu dữ liệu trên máy chủ là đủ: Máy chủ tập trung có thể bị ngắt, kiểm duyệt hoặc giới hạn truy cập.
- DAS giúp mọi node lưu toàn bộ blockchain: DAS nhằm giảm lượng dữ liệu mỗi node phải tải để đánh giá tính khả dụng, không buộc từng node giữ toàn bộ lịch sử.
- DA layer quyết định giao dịch hợp lệ: DA layer chủ yếu bảo đảm dữ liệu có thể được lấy; tính hợp lệ còn phụ thuộc cơ chế thực thi và xác minh.
- Chi phí DA thấp luôn tốt hơn: Chi phí thấp có thể đi kèm giả định tin cậy khác. Cần so sánh cả bảo mật, khả năng kiểm chứng và phương án khi hệ thống lỗi.
Kết luận
Data Availability blockchain là nền tảng để node có dữ liệu cần thiết nhằm xác minh trạng thái và phát hiện kết quả không hợp lệ. Một commitment có thể chứng minh dữ liệu nhận được không bị thay đổi, nhưng không bảo đảm dữ liệu đó đã được cung cấp cho mạng.
Lưu trữ nói về nơi và thời gian dữ liệu được giữ; xuất bản nói về hành động đưa dữ liệu lên một kênh; còn khả dụng dữ liệu nói về khả năng người tham gia thực sự truy xuất dữ liệu theo giả định bảo mật của giao thức.
Với rollup, lựa chọn DA ảnh hưởng trực tiếp đến khả năng kiểm chứng, chi phí và mức độ phụ thuộc vào lớp cơ sở, mạng chuyên biệt hoặc ủy ban. Vì vậy, khi phân tích một dự án, câu hỏi quan trọng không chỉ là giao dịch được xử lý nhanh đến đâu mà còn là dữ liệu được đặt ở đâu, ai có thể lấy, cách phát hiện việc giữ lại dữ liệu và người dùng được bảo vệ thế nào khi lớp DA gặp sự cố.
