External Data Sources থেকে তথ্য সংগ্রহ করার প্রক্রিয়াটি ব্লকচেইন প্রযুক্তির মধ্যে অন্যতম চ্যালেঞ্জিং অংশ। ব্লকচেইন নেটওয়ার্ক শুধুমাত্র ব্লকচেইন ভিতরের ডেটা বা স্টেটের সাথে কাজ করতে সক্ষম, তবে বাইরের বিশ্বের ডেটা সংগ্রহ করার জন্য oracles ব্যবহৃত হয়। Oracles এমন একটি মাধ্যম যা ব্লকচেইন এবং বাইরের ডেটা সংযুক্ত করে এবং স্মার্ট কন্ট্রাক্টের মাধ্যমে তা ব্যবহার করার সুযোগ দেয়।
স্মার্ট কন্ট্রাক্টের জন্য বাইরের তথ্য সংগ্রহের প্রক্রিয়া দুটি গুরুত্বপূর্ণ অংশে বিভক্ত:
- Oracles - ব্লকচেইনের বাইরে থেকে তথ্য সংগ্রহের জন্য ব্যবহৃত সিস্টেম।
- External APIs - বিভিন্ন API ইন্টারফেস ব্যবহার করে বাইরের ডেটা গ্রহণ করা।
১. Oracles
Oracles হল এমন মাধ্যম বা সেবা যা ব্লকচেইন স্মার্ট কন্ট্রাক্টের সাথে বাইরের তথ্য, যেমন আবহাওয়া, শেয়ার বাজারের দাম, ইভেন্টের ফলাফল বা অন্যান্য অফ-চেইন ডেটা এনে দেয়। স্মার্ট কন্ট্রাক্টের মাধ্যমে যেসব কাজ করা হয়, তা সাধারণত চেইনভিত্তিক থাকে, কিন্তু বাইরের পৃথিবী থেকে ডেটা এক্সেস করতে হলে oracles ব্যবহার করা হয়।
Oracles ব্যবহার করার প্রয়োজনীয়তা:
- ব্লকচেইন মূলত একটি আইসলেটেড সিস্টেম, যা বাইরের তথ্য অ্যাক্সেস করতে সক্ষম নয়।
- অর্থাৎ, স্মার্ট কন্ট্রাক্টের লজিক শুধুমাত্র ব্লকচেইনে থাকা ডেটা দ্বারা পরিচালিত হতে পারে। কিন্তু, ব্লকচেইনের বাইরের ডেটার জন্য oracles প্রয়োজন।
Types of Oracles:
- Software Oracles: Software Oracles API, websites, or databases থেকে ডেটা সংগ্রহ করে।
- Hardware Oracles: বাস্তব দুনিয়া থেকে তথ্য সংগ্রহের জন্য সেন্সর বা ডিভাইস ব্যবহার করে।
- Inbound Oracles: বাইরের তথ্য ব্লকচেইনে আনা হয় (যেমন ফিনান্সিয়াল ডেটা, মার্কেট প্রাইস)।
- Outbound Oracles: স্মার্ট কন্ট্রাক্ট থেকে বাইরের সিস্টেমে তথ্য পাঠানো হয়।
২. External Data Sources Access with Oracles
ব্লকচেইনে বাইরের ডেটা প্রাপ্তির জন্য অরাকল ব্যবহার করা হয়, যা সাধারণত স্মার্ট কন্ট্রাক্টে বাইরের ডেটা ইনপুট প্রদান করে। Oracles এ বেশ কিছু পদ্ধতি রয়েছে, যার মধ্যে সবচেয়ে জনপ্রিয় হল Chainlink।
Chainlink Example (A Popular Oracle):
Chainlink একটি ডেসেন্ট্রালাইজড অরাকল নেটওয়ার্ক যা বাইরের ডেটা সংগ্রহ করে স্মার্ট কন্ট্রাক্টে ইনপুট হিসেবে প্রদান করে। এটি বাজারের দামের তথ্য, আবহাওয়া সংক্রান্ত তথ্য এবং অন্যান্য অফ-চেইন ডেটা সংগ্রহ করতে পারে।
Chainlink ব্যবহার করে External Data Access:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// Import Chainlink's contract for interacting with external data
import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";
contract ExternalDataExample {
AggregatorV3Interface internal priceFeed;
constructor() {
// Ethereum mainnet's USD price feed (ETH to USD)
priceFeed = AggregatorV3Interface(0x5f4eC3Df9cbd43714bF7A6DDB8D6D4B5e1f0D6f0);
}
// Function to get the latest price from Chainlink Oracle (ETH to USD)
function getLatestPrice() public view returns (int) {
// Returns the latest price from the Chainlink price feed
(
,
int price,
,
,
) = priceFeed.latestRoundData();
return price;
}
}এখানে:
AggregatorV3Interfaceব্যবহার করা হয়েছে, যা Chainlink এর মাধ্যমে বাইরের ডেটা, যেমন ETH/USD এর দাম স্মার্ট কন্ট্রাক্টে সংগ্রহ করে।priceFeed.latestRoundData()ফাংশনটিChainlinkথেকে সর্বশেষ প্রাপ্ত তথ্য দেয়, যা স্মার্ট কন্ট্রাক্টে ব্যবহৃত হবে।
৩. External APIs
External APIs ব্যবহার করে আপনি বাইরের ডেটা সংগ্রহ করতে পারেন। Oracles সাধারণত API-এর মাধ্যমে বাইরের ডেটা সংগ্রহ করে ব্লকচেইনে আনে। আপনি যদি API এর মাধ্যমে ডেটা নিতে চান তবে সাধারণভাবে Oracles ব্যবহার করেই তা সম্ভব।
Example of Using an API with an Oracle:
API ইন্টারফেসের মাধ্যমে বাইরের ডেটা সংগ্রহের জন্য Chainlink বা অন্য কোনো Oracle সেবা ব্যবহৃত হতে পারে। Solidity নিজে বাইরের API বা HTTP এর সাথে সরাসরি কাজ করতে পারে না, তাই এই ধরনের কাজের জন্য oracles প্রয়োজন।
৪. The Oracle Problem
Oracle Problem হল একটি চ্যালেঞ্জ যেখানে ব্লকচেইন বাইরের ডেটা নিরাপদ এবং নির্ভরযোগ্যভাবে সংগ্রহ করতে পারে না। ডেটা সরবরাহকারী সিস্টেম (oracles) যদি ভুল ডেটা প্রদান করে, তবে স্মার্ট কন্ট্রাক্টের কার্যকারিতা প্রভাবিত হতে পারে। এজন্য ডেটা সংগ্রহের জন্য অবশ্যই একটি নিরাপদ এবং ডেসেন্ট্রালাইজড সিস্টেমের প্রয়োজন।
৫. Popular Oracle Networks
- Chainlink: ডেসেন্ট্রালাইজড অরাকল নেটওয়ার্ক যা বিভিন্ন ধরনের বাইরের ডেটা যেমন ক্রিপ্টোকারেন্সি মূল্য, আবহাওয়া, এবং অন্যান্য বিভিন্ন তথ্য সংগ্রহ করতে সাহায্য করে।
- Band Protocol: এটি একটি ডেসেন্ট্রালাইজড Oracle সিস্টেম যা একাধিক ব্লকচেইন ও ডেটা সোর্স থেকে তথ্য সরবরাহ করতে পারে।
- Provable (formerly Oraclize): Provable ব্লকচেইন বা স্মার্ট কন্ট্রাক্টের জন্য বাইরের তথ্য প্রদান করার জন্য একটি সেন্ট্রালাইজড অরাকল সেবা।
- Tellor: একটি ডেসেন্ট্রালাইজড অরাকল সিস্টেম যা বাজার মূল্য বা অন্যান্য ফাইন্যান্সিয়াল ডেটা ব্লকচেইনে নিয়ে আসে।
সারাংশ
External Data Sources থেকে তথ্য সংগ্রহ করার জন্য Oracles ব্যবহার করা হয়, যা স্মার্ট কন্ট্রাক্টের মাধ্যমে বাইরের বিশ্বের ডেটা ব্লকচেইনে আনে। Chainlink হল সবচেয়ে জনপ্রিয় ডেসেন্ট্রালাইজড অরাকল নেটওয়ার্ক, যা ইথেরিয়াম এবং অন্যান্য ব্লকচেইনে বাইরের ডেটা এক্সেস করতে সহায়তা করে। অরাকলস এর মাধ্যমে বাইরের APIs যেমন বাজারের মূল্য, আবহাওয়া, এবং অন্যান্য ডেটা সংগ্রহ করা হয়, যা স্মার্ট কন্ট্রাক্টে ব্যবহৃত হতে পারে। Oracles এবং External APIs এর মাধ্যমে স্মার্ট কন্ট্রাক্টগুলোকে বাস্তব বিশ্বের তথ্যের সাথে সংযুক্ত করা হয়।
Read more