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 kiểm soát duy nhất. Tuy nhiên, phần lớn mạng lưới blockchain chỉ biết những gì đã xảy ra bên trong chính nó. Một hợp đồng thông minh có thể kiểm tra số dư token, trạng thái giao dịch hoặc kết quả của một điều kiện đã được ghi lên chuỗi, nhưng không tự biết giá vàng hôm nay, một chuyến bay có bị hủy hay một trận đấu đã kết thúc với tỷ số nào.
Khoảng cách giữa dữ liệu trên chuỗi và sự kiện ngoài đời được lấp đầy bởi oracle blockchain. Đây là lớp hạ tầng cung cấp dữ liệu bên ngoài cho hợp đồng thông minh để các chương trình tự động có thể đưa ra quyết định. Oracle không chỉ là một đường truyền dữ liệu đơn giản. Nó liên quan đến cách dữ liệu được thu thập, đối chiếu, đưa lên blockchain và xử lý khi các nguồn thông tin không thống nhất. Hiểu đúng về oracle vì thế rất quan trọng khi đánh giá các ứng dụng phi tập trung.
Vì sao hợp đồng thông minh cần oracle?
Hợp đồng thông minh có ưu điểm là thực thi theo những quy tắc đã được lập trình. Một khi điều kiện được đáp ứng, chương trình có thể tự động chuyển tài sản, cập nhật trạng thái hoặc phân phối quyền lợi. Song khả năng tự động này chỉ có giá trị nếu đầu vào của chương trình đáng tin cậy. Nếu hợp đồng nhận dữ liệu sai, nó vẫn có thể thực hiện đúng đoạn mã được viết ra nhưng tạo thành kết quả sai trong thực tế.
Hãy hình dung một sản phẩm bảo hiểm tự động chi trả khi lượng mưa tại một khu vực vượt qua ngưỡng nhất định. Hợp đồng thông minh có thể xử lý khoản thanh toán rất nhanh, nhưng cần một nguồn dữ liệu cho biết lượng mưa thực tế. Tương tự, một nền tảng cho vay cần dữ liệu giá tài sản để xác định giá trị tài sản thế chấp và mức độ an toàn của khoản vay. Một thị trường dự đoán cần biết sự kiện đã diễn ra như thế nào trước khi phân phối phần thưởng.
Blockchain không trực tiếp truy cập các cơ sở dữ liệu, cảm biến, trang thông tin hay hệ thống doanh nghiệp bên ngoài. Hạn chế này thường được xem là một phần của mô hình bảo mật. Mọi nút trong mạng lưới có thể kiểm tra cùng một dữ liệu trên chuỗi, nhưng việc để từng nút tùy ý kết nối với các nguồn bên ngoài sẽ khiến kết quả không còn nhất quán. Oracle ra đời để tạo ra cơ chế trung gian có thể được các ứng dụng blockchain sử dụng.
Oracle hoạt động qua những lớp nào?
Một hệ thống oracle thường có nhiều công đoạn thay vì chỉ lấy dữ liệu từ một nguồn rồi gửi thẳng lên blockchain. Trước hết, dữ liệu được thu thập từ một hoặc nhiều nguồn bên ngoài. Các nguồn này có thể là sàn giao dịch, nhà cung cấp dữ liệu, hệ thống cảm biến, nền tảng doanh nghiệp hoặc một dịch vụ chuyên biệt. Sau đó, dữ liệu có thể được chuẩn hóa để các nguồn khác nhau dùng cùng đơn vị, định dạng và mốc thời gian.
Ở bước tiếp theo, hệ thống có thể tổng hợp hoặc đối chiếu nhiều phản hồi. Nếu một nguồn đưa ra giá bất thường, cơ chế tổng hợp có thể loại bỏ hoặc giảm ảnh hưởng của dữ liệu đó. Kết quả cuối cùng được gửi lên blockchain thông qua một giao dịch. Hợp đồng thông minh tiếp nhận thông tin này và thực hiện logic đã được lập trình, chẳng hạn điều chỉnh tỷ lệ tài sản thế chấp hoặc giải ngân khoản thanh toán.
Quá trình trên tạo ra một điểm cần lưu ý: tính bất biến của blockchain không làm cho dữ liệu đầu vào tự động trở nên đúng. Blockchain có thể chứng minh rằng một giá trị đã được ghi nhận và không bị thay đổi theo cách thông thường, nhưng không nhất thiết chứng minh giá trị đó phản ánh chính xác thế giới bên ngoài. Oracle vì vậy là lớp niềm tin nằm giữa thế giới thực và sổ cái phân tán.
Các mô hình oracle phổ biến
Oracle tập trung lấy dữ liệu từ một đơn vị duy nhất. Mô hình này có thể đơn giản, nhanh và dễ triển khai, nhưng tạo ra một điểm thất bại rõ ràng. Nếu đơn vị cung cấp gặp sự cố, bị tấn công, bị gây áp lực hoặc cung cấp thông tin sai, ứng dụng phụ thuộc vào dữ liệu đó có thể bị ảnh hưởng. Trong một số trường hợp nội bộ, khi nguồn dữ liệu được kiểm soát bởi một tổ chức chịu trách nhiệm pháp lý cụ thể, mô hình này vẫn có thể phù hợp. Tuy nhiên, nó không nên được mặc nhiên xem là phi tập trung.
Oracle phân tán sử dụng nhiều nguồn dữ liệu hoặc nhiều bên vận hành để giảm sự phụ thuộc vào một thực thể. Các bên có thể gửi phản hồi riêng, sau đó hệ thống áp dụng quy tắc tổng hợp như trung vị, ngưỡng đồng thuận hoặc cơ chế khác. Mô hình này làm tăng khả năng chống lại lỗi đơn lẻ, nhưng cũng đặt ra các yêu cầu về khuyến khích kinh tế, chi phí vận hành và cách xử lý khi phần lớn nguồn cùng sai.
Oracle do người dùng cung cấp được dùng trong những tình huống cần xác nhận một sự kiện cụ thể. Người tham gia có thể gửi bằng chứng hoặc câu trả lời, trong khi các bên khác có cơ hội phản đối. Một số thiết kế còn yêu cầu đặt tài sản bảo chứng để hạn chế hành vi gian lận. Mô hình này cho thấy oracle không nhất thiết phải là luồng dữ liệu liên tục; nó cũng có thể là một quy trình giải quyết tranh chấp.
Ngoài ra còn có oracle phần cứng, lấy dữ liệu từ các thiết bị hoặc cảm biến, và oracle phần mềm, lấy dữ liệu từ các hệ thống kỹ thuật số. Ranh giới giữa các mô hình không phải lúc nào cũng tuyệt đối. Một ứng dụng có thể kết hợp nhiều loại oracle, dùng nguồn dữ liệu khác nhau cho những điều kiện quan trọng và bổ sung cơ chế tạm dừng khi dữ liệu có dấu hiệu bất thường.
Rủi ro không nằm riêng ở mã nguồn
Trong các ứng dụng blockchain, người dùng thường chú ý đến lỗi hợp đồng thông minh vì mã nguồn có thể bị khai thác. Oracle cho thấy rủi ro còn nằm ở dữ liệu và quy trình đưa dữ liệu vào hợp đồng. Một nguồn giá bị thao túng trong thời gian ngắn có thể khiến tài sản thế chấp bị định giá sai, tạo ra thanh lý không hợp lý hoặc cho phép một bên vay vượt quá mức an toàn.
Rủi ro cũng có thể xuất hiện khi các nguồn dữ liệu cập nhật không đồng thời. Một thị trường hoạt động liên tục có thể phản ánh giá mới nhanh hơn một hệ thống khác. Nếu hợp đồng sử dụng các mốc thời gian không phù hợp, chênh lệch này có thể tạo ra cơ hội kinh doanh bất thường. Trong những lĩnh vực như bảo hiểm hoặc thanh toán theo sự kiện, việc dữ liệu đến muộn cũng có thể làm thay đổi kết quả dù thông tin cuối cùng là chính xác.
Một vấn đề khác là sự mơ hồ của chính sự kiện cần xác minh. Với dữ liệu giá, câu hỏi tưởng như đơn giản là giá được lấy từ thị trường nào, trong khoảng thời gian nào và theo đơn vị nào. Với một sự kiện ngoài đời, cần xác định thế nào là bắt đầu, kết thúc, hủy bỏ hoặc thay đổi điều kiện. Nếu quy tắc không được định nghĩa trước, tranh chấp có thể phát sinh dù hệ thống oracle đã truyền dữ liệu đúng theo cách nó được thiết kế.
Chi phí cũng là một yếu tố kỹ thuật. Việc cập nhật dữ liệu quá thường xuyên có thể làm tăng chi phí giao dịch và gây áp lực lên mạng lưới. Cập nhật quá ít lại khiến dữ liệu lỗi thời. Do đó, thiết kế oracle phải cân bằng giữa độ mới, độ chính xác, khả năng chống thao túng và chi phí. Không có một tần suất cập nhật phù hợp cho mọi ứng dụng.
Đánh giá oracle trước khi sử dụng
Người dùng và nhà phát triển không nên chỉ nhìn vào tên của một giao thức oracle. Cần đặt câu hỏi dữ liệu đến từ đâu, có bao nhiêu nguồn, các nguồn được chọn theo tiêu chí nào và ai có quyền thay đổi cấu hình. Cũng cần xem xét cách hệ thống phản ứng khi một nguồn ngừng hoạt động, đưa ra giá trị khác biệt lớn hoặc bị nghi ngờ đã bị can thiệp.
Cơ chế bảo mật kinh tế cũng đáng được kiểm tra. Nếu người cung cấp dữ liệu có thể nhận lợi ích lớn hơn nhiều so với chi phí gian lận, việc yêu cầu họ thực hiện đúng có thể không đủ mạnh. Ngược lại, nếu mức phạt quá nghiêm khắc hoặc quy trình khiếu nại thiếu rõ ràng, những người tham gia trung thực có thể không muốn vận hành hệ thống. Các ưu đãi phải gắn với chất lượng dữ liệu và khả năng phát hiện sai lệch, thay vì chỉ khuyến khích việc gửi dữ liệu thật nhanh.
Ứng dụng cũng nên có biện pháp giới hạn thiệt hại. Ngưỡng thay đổi giá trong một khoảng thời gian, cơ chế tạm dừng, giới hạn quy mô thanh toán và yêu cầu xác nhận bổ sung có thể làm chậm một số hoạt động, nhưng giúp tránh việc một dữ liệu bất thường gây ra hậu quả không thể đảo ngược. Trong những hệ thống quản lý tài sản, tốc độ không phải lúc nào cũng quan trọng hơn khả năng kiểm soát rủi ro.
Oracle và bài toán niềm tin trong blockchain
Blockchain thường được kỳ vọng sẽ giảm nhu cầu tin cậy vào trung gian. Oracle cho thấy niềm tin không biến mất mà được phân bổ lại. Thay vì chỉ tin một ngân hàng hoặc một nền tảng tập trung, người dùng có thể phải tin vào mạng lưới nhà cung cấp dữ liệu, cách tổng hợp phản hồi, người quản trị cấu hình và quy trình xử lý tranh chấp.
Điều này không làm oracle trở nên vô nghĩa. Mục tiêu thực tế không phải loại bỏ mọi niềm tin, mà là làm cho các giả định về niềm tin trở nên minh bạch, có thể kiểm tra và có giới hạn. Một hệ thống tốt cần cho người dùng biết dữ liệu nào được sử dụng, ai chịu trách nhiệm ở từng lớp, điều gì xảy ra khi dữ liệu không sẵn sàng và thiệt hại được giới hạn ra sao.
Trong tương lai, các ứng dụng blockchain có thể kết hợp nhiều phương pháp xác minh thay vì phụ thuộc vào một luồng dữ liệu duy nhất. Bằng chứng mật mã, chữ ký từ các bên được chỉ định, dữ liệu trực tiếp từ thiết bị và cơ chế tranh chấp có thể bổ trợ cho nhau. Song công nghệ chỉ là một phần của bài toán. Quy tắc vận hành, trách nhiệm pháp lý và thiết kế trải nghiệm cho người dùng vẫn quyết định liệu hệ thống có đáng tin trong thực tế hay không.
Oracle là lớp hạ tầng ít được nhìn thấy nhưng có ảnh hưởng trực tiếp đến nhiều hoạt động trên blockchain. Nó biến dữ liệu ngoài chuỗi thành đầu vào cho các chương trình tự động, đồng thời đưa những câu hỏi về nguồn tin, quyền kiểm soát và trách nhiệm vào trung tâm của thiết kế. Khi đánh giá một ứng dụng phi tập trung, việc kiểm tra hợp đồng thông minh là cần thiết, nhưng chưa đủ. Cần kiểm tra cả con đường mà dữ liệu đi qua trước khi trở thành một phần của quyết định trên chuỗi.

