Blockchain thường được mô tả như một hệ thống có khả năng ghi nhận và xác minh dữ liệu mà không cần một trung tâm điều phối duy nhất. Tuy nhiên, khả năng đó chủ yếu áp dụng với những thông tin đã nằm bên trong mạng lưới. Một blockchain có thể kiểm tra số dư token, trạng thái giao dịch hoặc kết quả của một phép tính theo các quy tắc đã được lập trình. Nó không tự biết giá Bitcoin trên một sàn giao dịch, nhiệt độ tại một thành phố, kết quả của một trận đấu hay việc một lô hàng đã đến kho hay chưa.
Để các hợp đồng thông minh sử dụng được những dữ liệu bên ngoài như vậy, hệ sinh thái blockchain cần một lớp kết nối thường được gọi là oracle. Oracle không đơn giản là một đường ống đưa dữ liệu vào chuỗi. Nó còn liên quan đến cách dữ liệu được thu thập, đối chiếu, truyền đi và bảo vệ trước thao túng. Khi một ứng dụng phi tập trung phụ thuộc vào oracle, chất lượng của ứng dụng không chỉ nằm ở mã nguồn hợp đồng mà còn ở độ tin cậy của nguồn dữ liệu và cơ chế cập nhật.
Oracle blockchain giải quyết vấn đề nào?
Hợp đồng thông minh có thể tự động thực thi điều kiện, nhưng bản thân nó thường không thể trực tiếp truy cập internet, cơ sở dữ liệu doanh nghiệp hoặc các hệ thống thanh toán truyền thống. Sự hạn chế này có lý do kỹ thuật. Nếu mỗi nút xác minh giao dịch tự gọi một trang web hoặc một API khác nhau, các nút có thể nhận kết quả không giống nhau. Khi đó, mạng lưới khó đạt được sự đồng thuận về trạng thái cần ghi nhận.
Oracle giải quyết bài toán bằng cách thu thập dữ liệu bên ngoài, xử lý theo một cơ chế nhất định rồi gửi kết quả lên blockchain. Hợp đồng thông minh chỉ sử dụng dữ liệu đã được đưa vào mạng lưới thông qua giao dịch. Cách làm này cho phép xây dựng nhiều ứng dụng thực tế hơn, từ nền tảng tài chính phi tập trung, bảo hiểm theo chỉ số, thị trường dự đoán đến các hệ thống theo dõi tài sản.
Chẳng hạn, một hợp đồng cho vay có thể cần giá tham chiếu của tài sản thế chấp để đánh giá mức an toàn của khoản vay. Một sản phẩm bảo hiểm thời tiết có thể cần dữ liệu về lượng mưa hoặc nhiệt độ. Một hợp đồng thanh toán trong chuỗi cung ứng có thể cần trạng thái giao hàng từ hệ thống quản lý logistics. Trong tất cả các trường hợp này, blockchain cung cấp môi trường thực thi và lưu trữ, còn oracle cung cấp phần thông tin mà blockchain không tự quan sát được.
Các loại dữ liệu oracle thường gặp
Oracle cung cấp dữ liệu từ nhiều nguồn khác nhau. Nhóm phổ biến nhất là dữ liệu giá, chẳng hạn giá của tiền mã hóa, tài sản tài chính hoặc hàng hóa. Những dữ liệu này thường được sử dụng trong các giao thức cho vay, giao dịch phái sinh và các ứng dụng cần xác định giá trị tài sản tại một thời điểm cụ thể.
Một nhóm khác là dữ liệu sự kiện trong thế giới thực. Hợp đồng có thể cần biết một chuyến hàng đã được giao, một chuyến bay có bị hoãn hay một điều kiện bảo hiểm đã xảy ra hay chưa. Ngoài ra còn có dữ liệu về thời gian, kết quả thể thao, chỉ số thời tiết, tỷ giá hoặc thông tin từ hệ thống doanh nghiệp. Phạm vi ứng dụng càng rộng thì yêu cầu đối với quá trình xác minh dữ liệu càng phức tạp.
Về cách vận hành, có thể phân biệt oracle tập trung và oracle phân tán. Oracle tập trung lấy dữ liệu từ một nguồn hoặc do một đơn vị kiểm soát. Cách này có ưu điểm là dễ triển khai, chi phí thường thấp hơn và tốc độ cập nhật có thể nhanh. Đổi lại, toàn bộ hệ thống có thể phụ thuộc vào tính chính xác, tính liên tục và thiện chí của một bên.
Oracle phân tán sử dụng nhiều nguồn cung cấp dữ liệu hoặc nhiều tác nhân độc lập. Kết quả cuối cùng có thể được xác định bằng cách so sánh, lấy giá trị trung vị hoặc áp dụng một quy tắc đồng thuận. Mô hình này không loại bỏ hoàn toàn rủi ro, nhưng giúp giảm sự phụ thuộc vào một điểm thất bại duy nhất. Đổi lại, nó có thể làm tăng chi phí, độ trễ và mức độ phức tạp trong vận hành.
Vì sao dữ liệu oracle là điểm rủi ro quan trọng?
Blockchain có thể bảo vệ tính toàn vẹn của dữ liệu sau khi dữ liệu đã được ghi vào chuỗi, nhưng điều đó không tự động chứng minh rằng dữ liệu ban đầu là đúng. Nếu một oracle đưa vào blockchain một mức giá sai, hợp đồng thông minh vẫn có thể thực thi đúng theo mã lệnh dựa trên mức giá đó. Nói cách khác, tính bất biến của blockchain không thể bù đắp cho một đầu vào thiếu tin cậy.
Rủi ro đầu tiên nằm ở nguồn dữ liệu. Một nguồn duy nhất có thể bị gián đoạn, bị tấn công hoặc cung cấp thông tin không đầy đủ. Ngay cả khi dữ liệu đến từ nhiều nguồn, các nguồn đó có thể cùng phụ thuộc vào một nhà cung cấp ban đầu. Vì vậy, số lượng nguồn không phải là tiêu chí duy nhất để đánh giá mức độ phân tán.
Rủi ro thứ hai là thời điểm cập nhật. Giá tài sản có thể biến động nhanh hơn chu kỳ cập nhật của oracle. Nếu dữ liệu trên chuỗi bị chậm, một giao thức có thể đưa ra quyết định dựa trên thông tin đã lỗi thời. Vấn đề này đặc biệt đáng chú ý trong các ứng dụng có tài sản thế chấp, nơi một biến động lớn có thể làm thay đổi đáng kể mức độ an toàn của khoản vay.
Rủi ro thứ ba liên quan đến cách xử lý dữ liệu bất thường. Một nguồn có thể bị lệch mạnh so với các nguồn khác, dữ liệu có thể bị thiếu hoặc API có thể tạm thời ngừng hoạt động. Hệ thống oracle cần có quy tắc cho những trường hợp đó, chẳng hạn loại bỏ giá trị bất thường, sử dụng dữ liệu gần nhất hoặc tạm dừng cập nhật. Mỗi lựa chọn đều có giới hạn và có thể tạo ra tác động khác nhau đối với người dùng.
Đánh giá một cơ chế oracle như thế nào?
Người dùng không nên chỉ nhìn vào tên gọi của một oracle hoặc tuyên bố rằng hệ thống đó có tính phi tập trung. Câu hỏi đầu tiên cần đặt ra là dữ liệu đến từ đâu. Có bao nhiêu nguồn độc lập, các nguồn có thể được kiểm tra hay không và cách hệ thống xử lý khi một nguồn không phản hồi? Những thông tin này giúp phân biệt giữa sự đa dạng thực chất và việc chỉ kết nối nhiều điểm nhưng vẫn phụ thuộc vào cùng một nguồn gốc.
Tiếp theo là cơ chế tổng hợp dữ liệu. Hệ thống có sử dụng giá trị trung vị, ngưỡng sai lệch hay điều kiện xác nhận bổ sung không? Dữ liệu được cập nhật theo thời gian cố định, theo mức biến động hay theo yêu cầu của hợp đồng? Nếu câu trả lời không rõ ràng, người dùng khó đánh giá nguy cơ dữ liệu chậm hoặc bị thao túng.
Cũng cần xem xét quyền quản trị và quyền nâng cấp. Ai có thể thay đổi danh sách nhà cung cấp dữ liệu, điều chỉnh ngưỡng cảnh báo hoặc tạm dừng dịch vụ? Quyền đó nằm ở một cá nhân, một nhóm ký nhiều chữ ký hay một cơ chế quản trị rộng hơn? Một hệ thống có thể sử dụng nhiều nguồn dữ liệu nhưng vẫn tập trung ở khâu quản trị. Đây là điểm thường bị bỏ qua khi đánh giá các ứng dụng phi tập trung.
Cuối cùng, cần quan tâm đến lịch sử vận hành, tài liệu kỹ thuật và cách dự án công bố sự cố. Không nên xem việc một hệ thống chưa từng gặp vấn đề là bằng chứng chắc chắn rằng hệ thống đó an toàn. Điều quan trọng hơn là dự án có cơ chế phát hiện, phản ứng và giới hạn thiệt hại khi dữ liệu bất thường xuất hiện hay không.
Oracle không phải là lời giải cho mọi vấn đề dữ liệu
Oracle có thể truyền dữ liệu vào blockchain, nhưng không thể tự biến một dữ liệu chủ quan thành sự thật tuyệt đối. Nếu một nguồn dữ liệu về tài sản trong thế giới thực đã sai, oracle chỉ chuyển sai sót đó vào hợp đồng. Với những sự kiện khó xác minh, hệ thống có thể cần nhiều lớp kiểm tra, bằng chứng bổ sung hoặc sự tham gia của các bên chịu trách nhiệm pháp lý.
Điều này cũng cho thấy giới hạn của các ứng dụng phi tập trung. Một giao thức càng phụ thuộc vào thông tin ngoài chuỗi thì càng phải cân nhắc sự đánh đổi giữa tính tự động, tốc độ, chi phí và khả năng kiểm chứng. Không có mô hình nào vừa hoàn toàn phi tập trung, vừa miễn nhiễm với dữ liệu sai, vừa cập nhật tức thời trong mọi hoàn cảnh.
Ý nghĩa đối với người dùng và doanh nghiệp
Đối với người dùng, hiểu về oracle giúp tránh nhầm lẫn giữa “giao dịch được xác nhận trên blockchain” và “thông tin làm cơ sở cho giao dịch là chính xác”. Trước khi sử dụng một ứng dụng có liên quan đến giá, tài sản thế chấp hoặc kết quả sự kiện, người dùng nên tìm hiểu nguồn dữ liệu và các tình huống hệ thống có thể tạm dừng.
Đối với doanh nghiệp, việc tích hợp oracle cần bắt đầu từ yêu cầu dữ liệu cụ thể. Doanh nghiệp phải xác định dữ liệu nào là quan trọng, mức độ trễ có thể chấp nhận, ai chịu trách nhiệm khi dữ liệu sai và cách xử lý khi kết nối bị gián đoạn. Một thiết kế tốt không chỉ chọn nguồn dữ liệu mà còn xây dựng quy trình kiểm tra, ghi nhận sự cố và giới hạn quyền tự động thực thi trong trường hợp bất thường.
Oracle là một thành phần ít nổi bật hơn giao diện ứng dụng hay token, nhưng lại có thể quyết định cách một hợp đồng thông minh phản ứng với thế giới bên ngoài. Khi blockchain được đưa vào các hoạt động tài chính, thương mại và quản lý tài sản, câu hỏi về chất lượng dữ liệu sẽ ngày càng quan trọng.
Hiểu đúng về oracle cũng là hiểu đúng giới hạn của blockchain. Công nghệ này có thể tạo ra một sổ cái khó thay đổi và một môi trường thực thi tự động, nhưng độ tin cậy cuối cùng vẫn phụ thuộc vào toàn bộ chuỗi từ nguồn dữ liệu, cơ chế xác minh đến quy tắc xử lý sự cố. Vì vậy, thay vì chỉ hỏi một ứng dụng có dùng blockchain hay không, người dùng nên hỏi dữ liệu của ứng dụng đến từ đâu, được kiểm tra như thế nào và điều gì xảy ra khi dữ liệu đó không còn đáng tin cậy.

