NhiDangHuongGiang
🐟Cá Con Lom Dom🐟
Oracle không còn mới mẻ với những cái tên ghi nhận sự tăng trưởng ấn tượng trong mùa bull-run vừa qua như ChainLink (LINK), Tellor (TRB), Band Protocol (BAND)… Tuy nhiên, liệu tiềm năng và sự phát triển của Oracle đã đạt giới hạn hay chưa? Trong tương lai, Oracle có thể đạt đến mức độ phát triển như thế nào? Oracle Project nào sẽ là kẻ chiến thắng cuối cùng? Cùng mình tìm hiểu đáp án qua series về Oracle của mình nhé!
Nếu định nghĩa trên hơi khó hiểu, bạn chỉ cần nhớ đơn giản như sau: Oracle là trung gian giúp kết nối dữ liệu ngoài chuỗi (off-chain) với các blockchain (on-chain).
Ví dụ:
Các loại dữ liệu muốn được truyền tải, nhận và sử dụng trên các máy tính đều phải được mã hóa dưới dạng nhị phân. Dữ liệu có thể là một văn bản, một file âm thanh, một video…, tuy nhiên tựu chung lại để máy tính tiếp nhận và xử lý thì phải có một hệ thống mã hóa các dữ liệu này dưới dạng nhị phân.
Tương tự như vậy, bản thân blockchain và smart contract không tự động tiếp nhận, xử lý hay xác thức các loại dữ liệu từ bên ngoài được (dữ liệu về biến động giá, khối lượng giao dịch…) mà phải thông qua các Oracle.
Hiện tại, thông tin trên blockchain được chia làm 3 dạng chính:
– Theo nguồn cấp dữ liệu, Oracle được chia thành On-chain Oracle và Off-chain Oracle. Sự khác biệt cơ bản giữa 2 loại này là nguồn của dữ liệu. Ví dụ: giá BTC/USD từ nguồn của Uniswap thì là On-chain Oracle, giá BTC/USD từ CoinGecko là dữ Off-chain Oracle.
– Theo mục đích dự án, Oracle được chia thành Oracle Service Provides (các bên cung cấp dịch vụ Oracle như Chainlink, Band…) và Internal Oracle (là các giải pháp phục vụ cho dự án của chính họ, ví dụ như UMA có oracle riêng để phục vụ cho dự án của mình).
– Theo tính phi tập trung, Oracle có Centralized Oracle (ví dụ như Oracle của Compound) và Decentralized Oracle (ví dụ như của MakerDAO).
Trong phần này, mình cũng sẽ làm rõ hơn một số ưu/nhược điểm của việc sử dụng On-chain và Off-chain Oracle:
Giả sử có một smart contract tạo ra nhằm đặt cược kết quả trận đấu giữa Tây Ban Nha và Croatia. Khi kết quả trận đấu ở bên ngoài được xác nhận, oracle sẽ xử lý, xác nhận và truyền thông tin này cho smart contract để xử lý và chuyển tiền cược cho bên thắng cuộc. Nếu không có oracle, các dữ liệu có thể bị can thiệp, gây nhiễu, thậm chí thay đổi từ đó dẫn đến đảo lộn kết quả cược.
Vậy ở đây có thể thấy, các vấn đề mà Oracle giải quyết được bao gồm:
– Data Feed
Là ứng dụng giúp cung cấp thông tin dành cho các dịch vụ, ứng dụng bên thứ 3.
Dự án cung cấp thông tin cho các bên thứ 3. Các thông tin bao gồm:
Cung cấp về giá dành cho các dự án DeFi khác. Các dự án DeFi sử dụng giá để áp dụng vào hệ thống của mình, từ đó có thể đưa ra kết quả hay thực hiện các lệnh như lending, borrowing hoặc liquid.
Oracle là gì?
Oracle (dịch theo tiếng Việt có nghĩa là “tiên tri”) được hiểu là một phần mềm hoặc phần cứng có nhiệm vụ nhận và xác thức các dữ liệu từ bên ngoài vào blockchain và smart-contract, thông qua các phương thức như API hay dữ liệu thị trường.Nếu định nghĩa trên hơi khó hiểu, bạn chỉ cần nhớ đơn giản như sau: Oracle là trung gian giúp kết nối dữ liệu ngoài chuỗi (off-chain) với các blockchain (on-chain).
Ví dụ:
Các loại dữ liệu muốn được truyền tải, nhận và sử dụng trên các máy tính đều phải được mã hóa dưới dạng nhị phân. Dữ liệu có thể là một văn bản, một file âm thanh, một video…, tuy nhiên tựu chung lại để máy tính tiếp nhận và xử lý thì phải có một hệ thống mã hóa các dữ liệu này dưới dạng nhị phân.
Tương tự như vậy, bản thân blockchain và smart contract không tự động tiếp nhận, xử lý hay xác thức các loại dữ liệu từ bên ngoài được (dữ liệu về biến động giá, khối lượng giao dịch…) mà phải thông qua các Oracle.
Hiện tại, thông tin trên blockchain được chia làm 3 dạng chính:
- Real World Data: Các thông tin trong thế giới thực.
- Crypto Market Data: Các thông tin trên CoinMarketCap, CoinGecko như biến động giá, khối lượng giao dịch, thay đổi về Market Cap…
- Enterprise Services: Các thông tin để phục vụ cho việc vận hành của các tổ chức, doanh nghiệp.
Phân loại Oracle
Có khá nhiều cách phân loại Oracle.– Theo nguồn cấp dữ liệu, Oracle được chia thành On-chain Oracle và Off-chain Oracle. Sự khác biệt cơ bản giữa 2 loại này là nguồn của dữ liệu. Ví dụ: giá BTC/USD từ nguồn của Uniswap thì là On-chain Oracle, giá BTC/USD từ CoinGecko là dữ Off-chain Oracle.
– Theo mục đích dự án, Oracle được chia thành Oracle Service Provides (các bên cung cấp dịch vụ Oracle như Chainlink, Band…) và Internal Oracle (là các giải pháp phục vụ cho dự án của chính họ, ví dụ như UMA có oracle riêng để phục vụ cho dự án của mình).
– Theo tính phi tập trung, Oracle có Centralized Oracle (ví dụ như Oracle của Compound) và Decentralized Oracle (ví dụ như của MakerDAO).
Trong phần này, mình cũng sẽ làm rõ hơn một số ưu/nhược điểm của việc sử dụng On-chain và Off-chain Oracle:
On-chain Oracle | Off-chain Oracle | |
Ưu điểm | – Đảm bảo tính tức thời, liên tục của dữ liệu | – Dữ liệu ít bị thao túng – Dữ liệu được đưa vào on-chain thông qua những người được cấp quyền |
Nhược điểm | – Dễ bị thao túng – Bất kỳ ai cũng có thể đưa dữ liệu lên on-chain | – Bị delay về mặt dữ liệu |
Những đặc điểm của một Oracle lý tưởng
Một giải pháp Oracle lý tưởng để sử dụng cần có các đặc điểm sau:- Độ chính xác cao.:Các giá trị mà giải pháp đó cung cấp cần phản ánh được giá trị thực tế.
- Có khả năng chống lại sự gian lận và thao túng.
- Liên tục và kịp thời: Dữ liệu cần được đảm bảo luôn được cung cấp kịp thời cho sự vận hành của hệ thống.
- Phi tập trung: Các dữ liệu mà Oracle cung cấp sẽ được xác thực một cách phi tập trung.
Vai trò và tầm quan trọng của Oracle
Đối với blockchain nói chung
Để minh họa về vai trò của oracle, mình sẽ lấy một ví dụ gắn với sự kiện mùa Euro: kết quả trận đấu giữa Tây Ban Nha và Croatia.Giả sử có một smart contract tạo ra nhằm đặt cược kết quả trận đấu giữa Tây Ban Nha và Croatia. Khi kết quả trận đấu ở bên ngoài được xác nhận, oracle sẽ xử lý, xác nhận và truyền thông tin này cho smart contract để xử lý và chuyển tiền cược cho bên thắng cuộc. Nếu không có oracle, các dữ liệu có thể bị can thiệp, gây nhiễu, thậm chí thay đổi từ đó dẫn đến đảo lộn kết quả cược.
Vậy ở đây có thể thấy, các vấn đề mà Oracle giải quyết được bao gồm:
- Oracle đưa thông tin vào blockchain, từ đó giải quyết tính khả dụng của thông tin.
- Giải quyết vấn đề thao túng dữ liệu. Các node Oracle giúp đối chiếu, xác minh và truyền dữ liệu thị trường đã xác thực tới smart contract, từ đó đưa ra kết quả cuối cùng một cách chính xác nhất và chúng ta có thể hoàn toàn tin tưởng tưởng được.
- Bảo vệ tính minh bạch của thông tin.
Đối với DeFi
Là nền tảng tài chính phi tập trung, do đó sự vận hành của DeFi đòi hỏi dữ liệu kịp thời, liên tục và chính xác. Có thể nói, Oracle là nhân tố thúc đẩy sự phát triển và ổn định của DeFi. Trong DeFi, các giải pháp Oracle chủ yếu cung cấp 2 loại dữ liệu là Data Feed và Data Price.– Data Feed
Là ứng dụng giúp cung cấp thông tin dành cho các dịch vụ, ứng dụng bên thứ 3.
Dự án cung cấp thông tin cho các bên thứ 3. Các thông tin bao gồm:
- Thông tin về thời tiết.
- Thông tin giá cho Coingecko.
- Bitcoin Block Hash.
Cung cấp về giá dành cho các dự án DeFi khác. Các dự án DeFi sử dụng giá để áp dụng vào hệ thống của mình, từ đó có thể đưa ra kết quả hay thực hiện các lệnh như lending, borrowing hoặc liquid.