Blockchain Oracle là gì?

Những ý chính: 

  • Blockchain không thể tự mình truy cập dữ liệu từ các nguồn bên ngoài.
  • Oracle cung cấp dữ liệu từ thế giới thực cho blockchain, qua đó mở rộng khả năng của smart contract.
  • Các loại oracle khác nhau có mục đích sử dụng khác nhau, được xác định bởi ba yếu tố chính: nguồn dữ liệu, hướng truyền thông tin và mô hình tin cậy.

Blockchain trở nên phổ biến vì có thể hoạt động mà không cần trung gian tập trung, giúp giao dịch an toàn, nhanh chóng và tiết kiệm chi phí. Tuy nhiên, chúng vẫn có một hạn chế: do là hệ thống biệt lập, blockchain không thể truy cập dữ liệu từ thế giới bên ngoài.

Các blockchain như EthereumSolana sử dụng các ứng dụng được vận hành bởi smart contact, về cơ bản là các chương trình có thể tự thực thi. Tuy nhiên, những ứng dụng này thường cần dữ liệu từ các nguồn bên ngoài hệ sinh thái của chain.

Vậy các ứng dụng phi tập trung (dApps) lấy dữ liệu đó bằng cách nào? Câu trả lời là thông qua blockchain oracle. Nhưng oracle là gì?

Trong bài viết này, DigiBit sẽ giải thích cách blockchain oracle hoạt động, tầm quan trọng của chúng trong Web3, cũng như các trường hợp sử dụng.

Blockchain Oracle là gì?

Blockchain oracle là các dịch vụ bên thứ ba có thể đọc dữ liệu trên blockchain và trong thế giới thực. Nhờ đó, chúng cho phép smart contract (hợp đồng thông minh) sử dụng dữ liệu từ thế giới thực và ngược lại.

Ví dụ, smart contract của một ứng dụng cá cược có thể cần biết kết quả của một trận đấu để xác định người thắng cược. Một oracle có thể thu thập dữ liệu này và truyền nó đến contract.

Ngược lại, một số oracle có thể truyền dữ liệu từ smart contract ra bên ngoài. Điều này có nghĩa là một giao dịch on-chain có thể kích hoạt việc hoàn thành một hành động off-chain.

Ví dụ, hãy tưởng tượng một cửa hàng không có thu ngân. Để đảm bảo an ninh, cửa tự động chỉ mở khi một giao dịch với số tiền chính xác được xử lý. Trong trường hợp này, blockchain oracle sẽ đọc giao dịch đã được xác nhận và truyền tín hiệu cho cửa tự động mở.

Nhưng tại sao chúng ta lại cần oracle ngay từ đầu?

Blockchain Oracle dùng để làm gì?

Nói một cách đơn giản, blockchain không thể đọc dữ liệu từ thế giới thực hoặc tương tác trực tiếp với nó. Nhưng tại sao lại như vậy? Để hiểu rõ vai trò của oracle, trước tiên bạn cần hiểu những hạn chế của blockchain.

Cụ thể, blockchain là hệ thống phi tập trung dựa vào nhiều node để thực thi giao dịch. Các node chỉ có thể đọc kết quả đúng/sai từ dữ liệu on-chain để đạt được sự đồng thuận. Hạn chế này giúp blockchain duy trì trạng thái xác định. Nghĩa là, với cùng một trạng thái ban đầu và cùng một đầu vào, các node sẽ luôn tạo ra cùng một kết quả đầu ra.

Nếu smart contract có thể tự động lấy dữ liệu từ bên ngoài, điều đó sẽ làm suy yếu tính xác định của blockchain. Để hiểu rõ hơn, hãy xem ví dụ về việc hoán đổi BTC sang USDT. Tỷ giá BTC-USDT thay đổi từng giây. Nếu một smart contract lấy dữ liệu tỷ giá thông qua API giá trực tiếp, các node sẽ nhận các giá trị khác nhau. Điều này dẫn đến việc chúng đưa ra các kết quả khác nhau khi thực thi cùng một smart contract.

Kết quả là, các node sẽ không thể đạt được sự đồng thuận về một trạng thái duy nhất của blockchain, khiến hệ thống trở nên không đáng tin cậy. Đó là lý do vì sao blockchain và smart contract không thể trực tiếp lấy dữ liệu từ các nguồn off-chain.

Và đây chính là lúc blockchain oracle phát huy vai trò. Chúng hoạt động như một cầu nối dữ liệu giữa blockchain và các hệ thống off-chain. Nhờ đó, smart contract có thể thực thi các giao dịch mà nếu không có oracle thì sẽ không thể thực hiện được.

Blockchain Oracle hoạt động như thế nào?

Oracle có hai thành phần: smart contract on-chain và các node off-chain.

Smart contract on-chain của oracle sẽ lắng nghe các yêu cầu dữ liệu mới từ các smart contract liên kết. Khi có yêu cầu, nó sẽ chuyển tiếp đến các node off-chain, và các node này sẽ truy vấn các nguồn dữ liệu phù hợp.

Sau khi các node off-chain tìm thấy dữ liệu cần thiết, chúng sẽ kiểm tra tính hợp lệ. Sau đó, chúng trích xuất và chuyển đổi dữ liệu sang định dạng mà blockchain có thể đọc được, cụ thể là một giao dịch. Giao dịch này được gửi đến contract oracle on-chain, từ đó có thể giao tiếp với smart contract ban đầu.

Khi nhận được dữ liệu, smart contract sẽ tự động thực thi, và các node blockchain sẽ xác thực giao dịch đó.

Ngoài ra, còn có các ứng dụng hybrid sử dụng giao dịch on-chain để kích hoạt hành động off-chain. Những loại oracle này sẽ gửi dữ liệu giao dịch từ contract đến một hệ thống bên ngoài, từ đó kích hoạt một sự kiện off-chain.

Một số oracle thậm chí còn thực hiện tính toán off-chain cho smart contract. Điều này đặc biệt hữu ích vì việc tính toán on-chain thường tốn kém và kém hiệu quả.

Ví dụ, Verifiable Random Function (VRF) của Chainlink thực hiện tính toán off-chain để tạo ra các giá trị ngẫu nhiên thực sự. Điều này rất hữu ích cho các ứng dụng như trò chơi xổ số cần kết quả không thể dự đoán.

Các loại Blockchain Oracle

Oracle có nhiều dạng khác nhau, nhưng cách tốt nhất để phân loại chúng là dựa trên bản chất hoạt động. Oracle có thể nhận và truyền dữ liệu giữa các nguồn hoàn toàn khác nhau bằng các công cụ khác nhau. Cách dễ hiểu nhất là dựa trên ba yếu tố sau:

  1. Nguồn dữ liệu: Oracle lấy dữ liệu từ nguồn trực tuyến hay ngoại tuyến.
  2. Hướng thông tin: Oracle nhận dữ liệu hay truyền dữ liệu ra thế giới thực.
  3. Mô hình tin cậy: Oracle là tập trung hay phi tập trung.

Oracle phần mềm và phần cứng

Oracle lấy dữ liệu theo hai cách: từ nguồn online hoặc offline.

Oracle phần mềm lấy dữ liệu từ các nguồn trực tuyến như website, máy chủ cloud hoặc bất kỳ nguồn dữ liệu nào trên internet.

Loại dữ liệu mà oracle thu thập phụ thuộc vào smart contract mà nó phục vụ. Một số loại dữ liệu phổ biến bao gồm tỷ giá, dữ liệu thời tiết theo thời gian thực, thông tin chuyến bay và kết quả trận đấu.

Trong khi đó, oracle phần cứng thu thập dữ liệu từ thế giới thực thông qua các nguồn offline. Ví dụ, chúng có thể lấy dữ liệu từ cảm biến điện tử, máy quét QR hoặc các thiết bị đọc thông tin khác. Nói cách khác, chúng chuyển đổi các sự kiện thực tế thành dữ liệu số mà smart contract có thể hiểu.

Ví dụ, trong chuỗi cung ứng, một cảm biến kiểm tra trạng thái cập bến của tàu có thể truyền thông tin đến oracle phần cứng. Oracle này sau đó chuyển dữ liệu đến smart contract để cập nhật trạng thái trên toàn bộ hệ thống.

Oracle inbound và outbound

Hướng truyền thông tin xác định oracle là inbound hay outbound. Oracle inbound truyền dữ liệu từ nguồn off-chain vào smart contract on-chain.

Ví dụ, trong một ứng dụng bảo hiểm trên blockchain, một nông dân có thể gửi yêu cầu bồi thường thiệt hại do lũ lụt hoặc hạn hán. Nhưng làm sao smart contract biết yêu cầu đó có hợp lệ hay không? Khi đó, oracle inbound có thể truy cập dữ liệu thời tiết từ các nguồn đáng tin cậy và thậm chí xác minh dữ liệu bằng thiết bị thực tế như nhiệt kế.

Ngược lại, oracle outbound truyền dữ liệu từ blockchain ra bên ngoài. Bên ngoài có thể là một blockchain khác, hoặc một ứng dụng hay cơ sở dữ liệu.

Oracle tập trung và phi tập trung

Oracle tập trung là hệ thống do một thực thể duy nhất quản lý. Nó phụ thuộc vào một nguồn dữ liệu duy nhất để thu thập và xác minh thông tin.

Nếu nguồn dữ liệu này ngừng hoạt động, smart contract sẽ không thể truy cập dữ liệu mới. Tệ hơn, oracle tập trung có thể cung cấp dữ liệu sai lệch. Do blockchain có tính bất biến, điều này có thể dẫn đến việc thực thi các giao dịch sai không thể đảo ngược. Chính vì những rủi ro này, các nhà phát triển dApp thường tránh sử dụng oracle tập trung.

Oracle phi tập trung giải quyết những vấn đề trên. Chúng sử dụng nhiều node và nhiều nguồn dữ liệu đáng tin cậy, từ đó loại bỏ điểm lỗi đơn (single point of failure) và giảm thiểu rủi ro sai lệch hoặc thao túng dữ liệu. Smart contract sử dụng oracle phi tập trung có thể truy vấn nhiều nguồn dữ liệu để xác minh độ chính xác, nhờ đó hoạt động đáng tin cậy hơn.

Các loại Blockchain Oracle khác

Ngoài các phân loại trên, còn có một số loại oracle ít phổ biến hơn:

  • Human oracle: Là những cá nhân có chuyên môn trong một lĩnh vực cụ thể. Ứng dụng on-chain có thể sử dụng họ để trả lời các câu hỏi hoặc xác minh thông tin, sau đó truyền kết quả đến smart contract.
  • Contract-specific oracle: Developer có thể tạo oracle riêng phục vụ cho một smart contract cụ thể.
  • Computation oracle: Những oracle này thực hiện tính toán off-chain và gửi bằng chứng trở lại blockchain.

Các trường hợp sử dụng của Blockchain Oracle

Oracle giúp developer xây dựng các ứng dụng phi tập trung với logic phức tạp hơn và yêu cầu dữ liệu đa dạng hơn. Dưới đây là bốn trường hợp sử dụng phổ biến của blockchain oracle:

  • Bảo hiểm: Smart contract trong ứng dụng bảo hiểm sử dụng oracle để xác minh sự kiện bảo hiểm. Khi người dùng gửi yêu cầu bồi thường, oracle sẽ thu thập dữ liệu từ nguồn đáng tin cậy để xác thực và gửi đến contract. Nếu hợp lệ, contract sẽ tự động chi trả mà không cần can thiệp thủ công.
  • Bất động sản: Oracle có thể lấy dữ liệu từ cơ sở dữ liệu bất động sản để định giá tài sản chính xác và tính tỷ lệ lấp đầy. Đồng thời, chúng giúp smart contract xác minh tài liệu nhanh chóng, giảm giấy tờ và rút ngắn thời gian giao dịch.
  • NFT động (Dynamic NFTs): Oracle cung cấp dữ liệu và dịch vụ tính toán off-chain để kích hoạt thay đổi metadata của NFT. Ví dụ, một nhân vật NFT thay đổi trang phục theo thời tiết cần oracle để lấy dữ liệu thời tiết theo thời gian thực.
  • Cá cược: Các ứng dụng cá cược và cờ bạc trên blockchain sử dụng oracle để nhận thông tin về kết quả sự kiện như bầu cử, đua xe, giải đấu… Từ đó, smart contract xác định người thắng và phân phối phần thưởng.

Ví dụ về Blockchain Oracle

Có nhiều giải pháp oracle phục vụ các nhu cầu khác nhau trong DeFi. Một số phổ biến nhất bao gồm:

Chainlink

Chainlink là một mạng oracle phi tập trung tự động hóa việc truyền dữ liệu giữa blockchain và hệ thống bên ngoài. Nó sử dụng mạng lưới node phi tập trung để thu thập dữ liệu từ nhiều nguồn khác nhau, sau đó tổng hợp và cung cấp cho smart contract để kích hoạt thực thi. Chainlink hỗ trợ nhiều loại dữ liệu, từ dữ liệu tài chính đến báo cáo thời tiết. Developer có thể tùy chỉnh loại dữ liệu mà smart contract cần.

Augur

Augur là một nền tảng thị trường dự đoán phi tập trung sử dụng hệ thống oracle riêng, không cần tin cậy. Người dùng Augur có thể tạo thị trường dự đoán cho bất kỳ sự kiện nào, từ thời tiết đến kết quả bầu cử. Tuy nhiên, smart contract cần dữ liệu đáng tin cậy để xác định kết quả. Oracle của Augur cung cấp nguồn dữ liệu không phụ thuộc vào trung gian tập trung.

Pyth Network

Pyth Network là nền tảng oracle phi tập trung tương thích với 13 blockchain. Nó cung cấp dữ liệu thời gian thực cho thị trường tài chính như cổ phiếu Mỹ, hàng hóa và tiền mã hóa. Pyth lấy dữ liệu từ mạng lưới gần 70 nhà cung cấp dữ liệu, bao gồm các sàn giao dịch và tổ chức tạo lập thị trường lớn trên toàn cầu.

Cách tương tác an toàn với Blockchain Oracle

Để tương tác với smart contract và oracle, bạn cần một ví crypto non-custodial. Những ví này có hai loại: ví nóng (hot wallet) và ví lạnh (cold wallet).

Cả hai đều cho phép bạn kiểm soát hoàn toàn private key và tài sản số. Tuy nhiên, ví nóng luôn kết nối internet nên dễ bị tấn công.

Ví cứng như Ledger Nano S Plus, Ledger Nano X, Ledger Flex, hay Ledger Stax sẽ giải quyết vấn đề này. Chúng lưu trữ private keyseed phrase ngoại tuyến, giúp tài sản của bạn không bị xâm phạm.

Dù giữ private key offline, Ledger vẫn cho phép bạn tương tác với dApp và smart contract trực tuyến thông qua Ledger Wallet. Điều này mang lại sự linh hoạt cao mà vẫn đảm bảo an toàn cho tài sản của bạn.

Giỏ hàng0
Không có sản phẩm nào trong giỏ hàng!
Tiếp tục mua hàng