اہم مواد پر جائیں
Change page

اوریکلز

صفحہ کی آخری تازہ کاری: 14 فروری، 2026

اوریکلز ایسی ایپلی کیشنز ہیں جو ڈیٹا فیڈز تیار کرتی ہیں جو آف چین ڈیٹا کے ذرائع کو اسمارٹ کنٹریکٹس کے لیے بلاک چین پر دستیاب کرتی ہیں۔ یہ ضروری ہے کیونکہ Ethereum پر مبنی اسمارٹ کنٹریکٹس، پہلے سے طے شدہ طور پر، بلاک چین نیٹ ورک کے باہر ذخیرہ شدہ معلومات تک رسائی حاصل نہیں کر سکتے ہیں۔

آف چین ڈیٹا کا استعمال کرتے ہوئے اسمارٹ کنٹریکٹس کو عمل درآمد کرنے کی صلاحیت دینا غیر مرکزی ایپلی کیشنز کی افادیت اور قدر کو بڑھاتا ہے۔ مثال کے طور پر، آن چین پیشین گوئی بازار نتائج کے بارے میں معلومات فراہم کرنے کے لیے اوریکلز پر انحصار کرتے ہیں جو وہ صارف کی پیشین گوئیوں کی توثیق کرنے کے لیے استعمال کرتے ہیں۔ فرض کریں کہ ایلس 20 ETH کی شرط لگاتی ہے کہ اگلا امریکی کون بنے گا۔ صدر۔ اس صورت میں، پیشین گوئی-بازار ڈیپ کو انتخابی نتائج کی تصدیق کرنے اور یہ تعین کرنے کے لیے ایک اوریکل کی ضرورت ہے کہ آیا ایلس ادائیگی کے لیے اہل ہے یا نہیں۔

شرائط

یہ صفحہ فرض کرتا ہے کہ قاری Ethereum کی بنیادی باتوں سے واقف ہے، بشمول nodes، consensus mechanisms، اور EVM۔ آپ کو smart contracts اور smart contract anatomy، خاص طور پر کی بھی اچھی سمجھ ہونی چاہیے۔

بلاک چین اوریکل کیا ہے؟

اوریکلز ایسی ایپلی کیشنز ہیں جو بیرونی معلومات (یعنی، آف چین ذخیرہ شدہ معلومات) کو حاصل کرتی، تصدیق کرتی اور بلاک چین پر چلنے والے اسمارٹ کنٹریکٹس تک منتقل کرتی ہیں۔ آف چین ڈیٹا کو "پل" کرنے اور اسے Ethereum پر نشر کرنے کے علاوہ، اوریکلز بلاک چین سے معلومات کو بیرونی نظاموں میں "پش" بھی کر سکتے ہیں، مثلاً، صارف کے Ethereum ٹرانزیکشن کے ذریعے فیس بھیجنے کے بعد اسمارٹ لاک کو کھولنا۔

ایک اوریکل کے بغیر، ایک اسمارٹ کنٹریکٹ مکمل طور پر آن چین ڈیٹا تک محدود ہوگا۔

اوریکلز ڈیٹا کے ماخذ (ایک یا ایک سے زیادہ ذرائع)، اعتماد کے ماڈلز (مرکزی یا غیر مرکزی)، اور سسٹم آرکیٹیکچر (فوری-پڑھنا، شائع-سبسکرائب، اور درخواست-جواب) کی بنیاد پر مختلف ہوتے ہیں۔ ہم اوریکلز کے درمیان اس بنیاد پر بھی فرق کر سکتے ہیں کہ آیا وہ آن چین کنٹریکٹس کے استعمال کے لیے بیرونی ڈیٹا حاصل کرتے ہیں (ان پٹ اوریکلز)، بلاک چین سے آف چین ایپلی کیشنز کو معلومات بھیجتے ہیں (آؤٹ پٹ اوریکلز)، یا آف چین کمپیوٹیشنل کام انجام دیتے ہیں (کمپیوٹیشنل اوریکلز)۔

اسمارٹ کنٹریکٹس کو اوریکلز کی ضرورت کیوں ہے؟

بہت سے ڈیولپرز اسمارٹ کنٹریکٹس کو ایسے کوڈ کے طور پر دیکھتے ہیں جو بلاک چین پر مخصوص پتوں پر چل رہا ہے۔ تاہم، اسمارٹ کنٹریکٹس کا ایک زیادہ عمومی نظریہ یہ ہے کہ وہ خود کار طریقے سے عمل درآمد کرنے والے سافٹ ویئر پروگرام ہیں جو مخصوص شرائط پوری ہونے پر فریقین کے درمیان معاہدوں کو نافذ کرنے کی صلاحیت رکھتے ہیں - اسی لیے یہ اصطلاح "اسمارٹ کنٹریکٹس" ہے۔

لیکن لوگوں کے درمیان معاہدوں کو نافذ کرنے کے لیے اسمارٹ کنٹریکٹس کا استعمال سیدھا سادہ نہیں ہے، اس بات کو دیکھتے ہوئے کہ Ethereum حتمی ہے۔ ایک حتمی نظامopens in a new tab وہ ہے جو ایک ابتدائی حالت اور ایک مخصوص ان پٹ دیے جانے پر ہمیشہ ایک ہی جیسے نتائج دیتا ہے، جس کا مطلب ہے کہ ان پٹ سے آؤٹ پٹ کا حساب لگانے کے عمل میں کوئی بے ترتیب پن یا تغیر نہیں ہوتا ہے۔

حتمی عمل درآمد حاصل کرنے کے لیے، بلاک چینز نوڈس کو صرف بلاک چین پر ہی ذخیرہ شدہ ڈیٹا کا استعمال کرتے ہوئے سادہ بائنری (صحیح/غلط) سوالات پر اتفاق رائے تک پہنچنے تک محدود کرتی ہیں۔ اس طرح کے سوالات کی مثالیں شامل ہیں:

  • "کیا اکاؤنٹ کے مالک (جس کی شناخت ایک پبلک کی سے ہوتی ہے) نے اس ٹرانزیکشن پر جوڑی والی پرائیویٹ کی کے ساتھ دستخط کیا ہے؟"
  • "کیا اس اکاؤنٹ میں ٹرانزیکشن کو پورا کرنے کے لیے کافی فنڈز ہیں؟"
  • "کیا یہ ٹرانزیکشن اس اسمارٹ کنٹریکٹ کے تناظر میں درست ہے؟"، وغیرہ۔

اگر بلاک چینز بیرونی ذرائع (یعنی حقیقی دنیا) سے معلومات حاصل کرتیں، تو حتمیت کو حاصل کرنا ناممکن ہو جاتا، جس سے نوڈس کو بلاک چین کی حالت میں تبدیلیوں کی درستی پر متفق ہونے سے روکا جاتا۔ مثال کے طور پر ایک ایسا اسمارٹ کنٹریکٹ لیں جو ایک روایتی قیمت API سے حاصل کردہ موجودہ ETH-USD ایکسچینج ریٹ کی بنیاد پر ایک ٹرانزیکشن کو عمل میں لاتا ہے۔ اس عدد کے اکثر تبدیل ہونے کا امکان ہے (یہ ذکر نہ کرنا کہ API کو متروک یا ہیک کیا جا سکتا ہے)، جس کا مطلب ہے کہ ایک ہی کنٹریکٹ کوڈ پر عمل درآمد کرنے والے نوڈس مختلف نتائج پر پہنچیں گے۔

Ethereum جیسے پبلک بلاک چین کے لیے، جس میں دنیا بھر میں ہزاروں نوڈس ٹرانزیکشنز پر کارروائی کر رہے ہیں، حتمیت بہت اہم ہے۔ سچائی کے منبع کے طور پر کام کرنے والی کوئی مرکزی اتھارٹی نہ ہونے کی وجہ سے، نوڈس کو ایک ہی ٹرانزیکشنز کو لاگو کرنے کے بعد ایک ہی حالت پر پہنچنے کے لیے میکانزم کی ضرورت ہوتی ہے۔ ایک ایسا معاملہ جس میں نوڈ A ایک اسمارٹ کنٹریکٹ کے کوڈ پر عمل درآمد کرتا ہے اور نتیجے کے طور پر "3" حاصل کرتا ہے، جبکہ نوڈ B اسی ٹرانزیکشن کو چلانے کے بعد "7" حاصل کرتا ہے، اتفاق رائے کو توڑنے کا سبب بنے گا اور Ethereum کی قدر کو ایک غیر مرکزی کمپیوٹنگ پلیٹ فارم کے طور پر ختم کر دے گا۔

یہ منظر نامہ بیرونی ذرائع سے معلومات حاصل کرنے کے لیے بلاک چینز کو ڈیزائن کرنے کے مسئلے کو بھی اجاگر کرتا ہے۔ تاہم، اوریکلز اس مسئلے کو آف چین ذرائع سے معلومات لے کر اور اسے بلاک چین پر اسمارٹ کنٹریکٹس کے استعمال کے لیے ذخیرہ کر کے حل کرتے ہیں۔ چونکہ آن چین ذخیرہ شدہ معلومات ناقابل تغیر اور عوامی طور پر دستیاب ہیں، Ethereum نوڈس اوریکل سے درآمد کردہ آف چین ڈیٹا کو اتفاق رائے کو توڑے بغیر حالت کی تبدیلیوں کا حساب لگانے کے لیے محفوظ طریقے سے استعمال کر سکتے ہیں۔

ایسا کرنے کے لیے، ایک اوریکل عام طور پر ایک اسمارٹ کنٹریکٹ جو آن چین چل رہا ہے اور کچھ آف چین اجزاء پر مشتمل ہوتا ہے۔ آن چین کنٹریکٹ دوسرے اسمارٹ کنٹریکٹس سے ڈیٹا کے لیے درخواستیں وصول کرتا ہے، جسے وہ آف چین جزو (جسے اوریکل نوڈ کہا جاتا ہے) کو بھیجتا ہے۔ یہ اوریکل نوڈ ڈیٹا ذرائع سے استفسار کر سکتا ہے—مثال کے طور پر، ایپلی کیشن پروگرامنگ انٹرفیس (APIs) کا استعمال کرتے ہوئے—اور درخواست کردہ ڈیٹا کو اسمارٹ کنٹریکٹ کے اسٹوریج میں ذخیرہ کرنے کے لیے ٹرانزیکشنز بھیج سکتا ہے۔

بنیادی طور پر، ایک بلاک چین اوریکل بلاک چین اور بیرونی ماحول کے درمیان معلوماتی خلا کو پر کرتا ہے، جس سے "ہائبرڈ اسمارٹ کنٹریکٹس" بنتے ہیں۔ ایک ہائبرڈ اسمارٹ کنٹریکٹ وہ ہے جو آن چین کنٹریکٹ کوڈ اور آف چین انفراسٹرکچر کے امتزاج کی بنیاد پر کام کرتا ہے۔ غیر مرکزی پیشین گوئی بازار ہائبرڈ اسمارٹ کنٹریکٹس کی ایک بہترین مثال ہیں۔ دیگر مثالوں میں فصلوں کی بیمہ کے اسمارٹ کنٹریکٹس شامل ہو سکتے ہیں جو اس وقت ادائیگی کرتے ہیں جب اوریکلز کا ایک سیٹ یہ طے کرتا ہے کہ کچھ موسمی مظاہر رونما ہوئے ہیں۔

اوریکل کا مسئلہ کیا ہے؟

اوریکلز ایک اہم مسئلہ حل کرتے ہیں، لیکن کچھ پیچیدگیاں بھی پیدا کرتے ہیں، مثلاً:

  • ہم یہ کیسے تصدیق کریں کہ داخل کی گئی معلومات صحیح ماخذ سے نکالی گئی ہے یا اس کے ساتھ چھیڑ چھاڑ نہیں کی گئی ہے؟

  • ہم یہ کیسے یقینی بنائیں کہ یہ ڈیٹا ہمیشہ دستیاب رہے اور باقاعدگی سے اپ ڈیٹ ہوتا رہے؟

نام نہاد "اوریکل مسئلہ" ان مسائل کو ظاہر کرتا ہے جو اسمارٹ کنٹریکٹس کو ان پٹ بھیجنے کے لیے بلاک چین اوریکلز کے استعمال سے آتے ہیں۔ ایک اسمارٹ کنٹریکٹ کے صحیح طریقے سے عمل درآمد کرنے کے لیے ایک اوریکل سے حاصل کردہ ڈیٹا کا درست ہونا ضروری ہے۔ مزید یہ کہ، درست معلومات فراہم کرنے کے لیے اوریکل آپریٹرز پر 'بھروسہ' کرنا اسمارٹ کنٹریکٹس کے 'بھروسے کے بغیر' والے پہلو کو کمزور کرتا ہے۔

مختلف اوریکلز اوریکل کے مسئلے کے مختلف حل پیش کرتے ہیں، جس پر ہم بعد میں غور کریں گے۔ اوریکلز کا عام طور پر اس بات پر جائزہ لیا جاتا ہے کہ وہ مندرجہ ذیل چیلنجوں سے کتنی اچھی طرح نمٹ سکتے ہیں:

  1. درستی: ایک اوریکل کو غلط آف چین ڈیٹا کی بنیاد پر اسمارٹ کنٹریکٹس کو حالت میں تبدیلی لانے کا سبب نہیں بننا چاہیے۔ ایک اوریکل کو ڈیٹا کی مستند ہونے اور سالمیت کی ضمانت دینی چاہیے۔ مستند ہونے کا مطلب ہے کہ ڈیٹا صحیح ماخذ سے حاصل کیا گیا تھا، جبکہ سالمیت کا مطلب ہے کہ آن چین بھیجنے سے پہلے ڈیٹا برقرار رہا (یعنی، اس میں کوئی تبدیلی نہیں کی گئی)۔

  2. دستیابی: ایک اوریکل کو اسمارٹ کنٹریکٹس کو اعمال پر عمل درآمد کرنے اور حالت کی تبدیلیوں کو متحرک کرنے میں تاخیر یا روکنا نہیں چاہیے۔ اس کا مطلب ہے کہ ایک اوریکل سے حاصل کردہ ڈیٹا درخواست پر بغیر کسی رکاوٹ کے دستیاب ہونا چاہیے۔

  3. ترغیبی مطابقت: ایک اوریکل کو آف چین ڈیٹا فراہم کنندگان کو اسمارٹ کنٹریکٹس کو درست معلومات جمع کرانے کی ترغیب دینی چاہیے۔ ترغیبی مطابقت میں منسوبیت اور جوابدہی شامل ہے۔ منسوبیت بیرونی معلومات کے ایک ٹکڑے کو اس کے فراہم کنندہ سے جوڑنے کی اجازت دیتی ہے، جبکہ جوابدہی ڈیٹا فراہم کنندگان کو ان کی دی گئی معلومات سے منسلک کرتی ہے، تاکہ انہیں فراہم کردہ معلومات کے معیار کی بنیاد پر انعام یا سزا دی جا سکے۔

ایک بلاک چین اوریکل سروس کیسے کام کرتی ہے؟

صارفین

صارفین وہ ادارے ہیں (یعنی، اسمارٹ کنٹریکٹس) جنہیں مخصوص اعمال کو مکمل کرنے کے لیے بلاک چین سے باہر کی معلومات کی ضرورت ہوتی ہے۔ ایک اوریکل سروس کا بنیادی ورک فلو صارف کے ذریعہ اوریکل کنٹریکٹ کو ڈیٹا کی درخواست بھیجنے سے شروع ہوتا ہے۔ ڈیٹا کی درخواستیں عام طور پر مندرجہ ذیل میں سے کچھ یا تمام سوالات کا جواب دیں گی:

  1. آف چین نوڈس درخواست کردہ معلومات کے لیے کن ذرائع سے مشورہ کر سکتے ہیں؟

  2. رپورٹرز ڈیٹا کے ذرائع سے معلومات پر کارروائی کیسے کرتے ہیں اور مفید ڈیٹا پوائنٹس کیسے نکالتے ہیں؟

  3. ڈیٹا حاصل کرنے میں کتنے اوریکل نوڈس حصہ لے سکتے ہیں؟

  4. اوریکل رپورٹس میں تضادات کا انتظام کیسے کیا جانا چاہیے؟

  5. گذارشات کو فلٹر کرنے اور رپورٹس کو ایک ہی قدر میں جمع کرنے کے لیے کون سا طریقہ نافذ کیا جانا چاہیے؟

اوریکل کنٹریکٹ

اوریکل کنٹریکٹ اوریکل سروس کے لیے آن چین جزو ہے۔ یہ دوسرے کنٹریکٹس سے ڈیٹا کی درخواستیں سنتا ہے، ڈیٹا کے سوالات کو اوریکل نوڈس تک پہنچاتا ہے، اور واپس آنے والے ڈیٹا کو کلائنٹ کنٹریکٹس تک نشر کرتا ہے۔ یہ کنٹریکٹ واپس آنے والے ڈیٹا پوائنٹس پر کچھ حساب کتاب بھی کر سکتا ہے تاکہ درخواست کرنے والے کنٹریکٹ کو بھیجنے کے لیے ایک مجموعی قدر پیدا کی جا سکے۔

اوریکل کنٹریکٹ کچھ افعال کو ظاہر کرتا ہے جنہیں کلائنٹ کنٹریکٹس ڈیٹا کی درخواست کرتے وقت کال کرتے ہیں۔ ایک نئی استفسار موصول ہونے پر، اسمارٹ کنٹریکٹ ڈیٹا کی درخواست کی تفصیلات کے ساتھ ایک لاگ ایونٹ خارج کرے گا۔ یہ لاگ کو سبسکرائب کرنے والے آف چین نوڈس کو مطلع کرتا ہے (عام طور پر JSON-RPC eth_subscribe کمانڈ جیسی کسی چیز کا استعمال کرتے ہوئے)، جو لاگ ایونٹ میں بیان کردہ ڈیٹا کو بازیافت کرنے کے لیے آگے بڑھتے ہیں۔

ذیل میں پیڈرو کوسٹا کا ایک مثالی اوریکل کنٹریکٹopens in a new tab ہے۔ یہ ایک سادہ اوریکل سروس ہے جو دوسرے اسمارٹ کنٹریکٹس کی درخواست پر آف چین APIs سے استفسار کر سکتی ہے اور درخواست کردہ معلومات کو بلاک چین پر ذخیرہ کر سکتی ہے۔

1pragma solidity >=0.4.21 <0.6.0;
2
3contract Oracle {
4 Request[] requests; //کنٹریکٹ کو کی گئی درخواستوں کی فہرست
5 uint currentId = 0; //بڑھتی ہوئی درخواست کی آئی ڈی
6 uint minQuorum = 2; //حتمی نتیجہ قرار دینے سے پہلے موصول ہونے والے جوابات کی کم از کم تعداد
7 uint totalOracleCount = 3; // ہارڈ کوڈڈ اوریکل کی گنتی
8
9 // ایک عمومی api درخواست کی وضاحت کرتا ہے
10 struct Request {
11 uint id; //درخواست کی آئی ڈی
12 string urlToQuery; //API یو آر ایل
13 string attributeToFetch; //جواب میں بازیافت کرنے کے لیے json وصف (کلید)
14 string agreedValue; //کلید سے قدر
15 mapping(uint => string) answers; //اوریکلز کے ذریعہ فراہم کردہ جوابات
16 mapping(address => uint) quorum; //وہ اوریکلز جو جواب طلب کریں گے (1=اوریکل نے ووٹ نہیں دیا ہے، 2=اوریکل نے ووٹ دیا ہے)
17 }
18
19 //وہ واقعہ جو بلاک چین کے باہر اوریکل کو متحرک کرتا ہے
20 event NewRequest (
21 uint id,
22 string urlToQuery,
23 string attributeToFetch
24 );
25
26 //جب حتمی نتیجے پر اتفاق رائے ہو تو متحرک ہوتا ہے
27 event UpdatedRequest (
28 uint id,
29 string urlToQuery,
30 string attributeToFetch,
31 string agreedValue
32 );
33
34 function createRequest (
35 string memory _urlToQuery,
36 string memory _attributeToFetch
37 )
38 public
39 {
40 uint length = requests.push(Request(currentId, _urlToQuery, _attributeToFetch, ""));
41 Request storage r = requests[length-1];
42
43 // ہارڈ کوڈڈ اوریکلز کا پتہ
44 r.quorum[address(0x6c2339b46F41a06f09CA0051ddAD54D1e582bA77)] = 1;
45 r.quorum[address(0xb5346CF224c02186606e5f89EACC21eC25398077)] = 1;
46 r.quorum[address(0xa2997F1CA363D11a0a35bB1Ac0Ff7849bc13e914)] = 1;
47
48 // بلاک چین کے باہر اوریکل کے ذریعہ پتہ لگانے کے لیے ایک واقعہ شروع کریں
49 emit NewRequest (
50 currentId,
51 _urlToQuery,
52 _attributeToFetch
53 );
54
55 // درخواست کی آئی ڈی میں اضافہ کریں
56 currentId++;
57 }
58
59 //اوریکل کے ذریعہ اپنے جواب کو ریکارڈ کرنے کے لیے بلایا گیا
60 function updateRequest (
61 uint _id,
62 string memory _valueRetrieved
63 ) public {
64
65 Request storage currRequest = requests[_id];
66
67 //چیک کریں کہ آیا اوریکل قابل اعتماد اوریکلز کی فہرست میں ہے
68 //اور اگر اوریکل نے ابھی تک ووٹ نہیں دیا ہے
69 if(currRequest.quorum[address(msg.sender)] == 1){
70
71 //یہ نشان زد کرنا کہ اس پتے نے ووٹ دیا ہے
72 currRequest.quorum[msg.sender] = 2;
73
74 //جوابات کی "سرنی" کے ذریعے تکرار کریں جب تک کہ کوئی پوزیشن خالی نہ ہو اور بازیافت شدہ قدر کو محفوظ کریں
75 uint tmpI = 0;
76 bool found = false;
77 while(!found) {
78 //پہلا خالی سلاٹ تلاش کریں
79 if(bytes(currRequest.answers[tmpI]).length == 0){
80 found = true;
81 currRequest.answers[tmpI] = _valueRetrieved;
82 }
83 tmpI++;
84 }
85
86 uint currentQuorum = 0;
87
88 //اوریکل فہرست کے ذریعے تکرار کریں اور چیک کریں کہ آیا کافی اوریکلز (کم از کم کورم) ہیں
89 //نے موجودہ جواب کی طرح ہی ووٹ دیا ہے
90 for(uint i = 0; i < totalOracleCount; i++){
91 bytes memory a = bytes(currRequest.answers[i]);
92 bytes memory b = bytes(_valueRetrieved);
93
94 if(keccak256(a) == keccak256(b)){
95 currentQuorum++;
96 if(currentQuorum >= minQuorum){
97 currRequest.agreedValue = _valueRetrieved;
98 emit UpdatedRequest (
99 currRequest.id,
100 currRequest.urlToQuery,
101 currRequest.attributeToFetch,
102 currRequest.agreedValue
103 );
104 }
105 }
106 }
107 }
108 }
109}
سب دکھائیں

اوریکل نوڈس

اوریکل نوڈ اوریکل سروس کا آف چین جزو ہے۔ یہ بیرونی ذرائع، جیسے کہ فریق ثالث سرورز پر میزبانی کی گئی APIs سے معلومات نکالتا ہے، اور اسے اسمارٹ کنٹریکٹس کے استعمال کے لیے آن چین ڈالتا ہے۔ اوریکل نوڈس آن چین اوریکل کنٹریکٹ سے واقعات سنتے ہیں اور لاگ میں بیان کردہ کام کو مکمل کرنے کے لیے آگے بڑھتے ہیں۔

اوریکل نوڈس کے لیے ایک عام کام ایک API سروس کو HTTP GETopens in a new tab درخواست بھیجنا، متعلقہ ڈیٹا نکالنے کے لیے جواب کو پارس کرنا، اسے بلاک چین کے پڑھنے کے قابل آؤٹ پٹ میں فارمیٹ کرنا، اور اسے اوریکل کنٹریکٹ کو ٹرانزیکشن میں شامل کرکے آن چین بھیجنا ہے۔ اوریکل نوڈ کو

کمپیوٹیشنل اوریکلز بھی آف چین نوڈس پر انحصار کرتے ہیں تاکہ وہ کمپیوٹیشنل کام انجام دے سکیں جو گیس کی لاگت اور بلاک سائز کی حدود کو دیکھتے ہوئے آن چین پر عمل درآمد کرنا غیر عملی ہوگا۔ مثال کے طور پر، اوریکل نوڈ کو ایک قابل تصدیق بے ترتیب عدد پیدا کرنے کا کام سونپا جا سکتا ہے (مثلاً، بلاک چین پر مبنی گیمز کے لیے)۔

اوریکل ڈیزائن پیٹرنز

اوریکلز مختلف اقسام میں آتے ہیں، جن میں فوری-پڑھنا، شائع-سبسکرائب، اور درخواست-جواب شامل ہیں، جن میں سے آخری دو Ethereum اسمارٹ کنٹریکٹس میں سب سے زیادہ مقبول ہیں۔ یہاں ہم شائع-سبسکرائب اور درخواست-جواب ماڈلز کی مختصر وضاحت کرتے ہیں۔

پبلش-سبسکرائب اوریکلز

اس قسم کا اوریکل ایک "ڈیٹا فیڈ" کو ظاہر کرتا ہے جسے دوسرے کنٹریکٹس معلومات کے لیے باقاعدگی سے پڑھ سکتے ہیں۔ اس معاملے میں ڈیٹا کے اکثر تبدیل ہونے کی توقع ہے، اس لیے کلائنٹ کنٹریکٹس کو اوریکل کے اسٹوریج میں ڈیٹا کی اپ ڈیٹس کو سننا چاہیے۔ ایک مثال ایک اوریکل ہے جو صارفین کو تازہ ترین ETH-USD قیمت کی معلومات فراہم کرتا ہے۔

درخواست-جواب اوریکلز

ایک درخواست-جواب سیٹ اپ کلائنٹ کنٹریکٹ کو پبلش-سبسکرائب اوریکل کے ذریعہ فراہم کردہ ڈیٹا کے علاوہ صوابدیدی ڈیٹا کی درخواست کرنے کی اجازت دیتا ہے۔ درخواست-جواب اوریکلز اس وقت مثالی ہیں جب ڈیٹا سیٹ اتنا بڑا ہو کہ اسے اسمارٹ کنٹریکٹ کے اسٹوریج میں ذخیرہ نہ کیا جا سکے، اور/یا صارفین کو کسی بھی وقت ڈیٹا کے صرف ایک چھوٹے سے حصے کی ضرورت ہوگی۔

اگرچہ پبلش-سبسکرائب ماڈلز سے زیادہ پیچیدہ ہیں، لیکن درخواست-جواب اوریکلز بنیادی طور پر وہی ہیں جن کی ہم نے پچھلے حصے میں وضاحت کی ہے۔ اوریکل میں ایک آن چین جزو ہوگا جو ڈیٹا کی درخواست وصول کرتا ہے اور اسے پروسیسنگ کے لیے آف چین نوڈ کو بھیجتا ہے۔

ڈیٹا کے سوالات شروع کرنے والے صارفین کو آف چین ماخذ سے معلومات حاصل کرنے کی لاگت کو پورا کرنا چاہیے۔ کلائنٹ کنٹریکٹ کو درخواست میں بیان کردہ کال بیک فنکشن کے ذریعے جواب واپس کرنے میں اوریکل کنٹریکٹ کے ذریعہ ہونے والی گیس کی لاگت کو پورا کرنے کے لیے فنڈز بھی فراہم کرنا ہوں گے۔

مرکزی بمقابلہ غیر مرکزی اوریکلز

مرکزی اوریکلز

ایک مرکزی اوریکل ایک واحد ادارے کے ذریعہ کنٹرول کیا جاتا ہے جو آف چین معلومات کو جمع کرنے اور درخواست کے مطابق اوریکل کنٹریکٹ کے ڈیٹا کو اپ ڈیٹ کرنے کا ذمہ دار ہوتا ہے۔ مرکزی اوریکلز موثر ہیں کیونکہ وہ سچائی کے ایک واحد ماخذ پر انحصار کرتے ہیں۔ وہ ایسے معاملات میں بہتر کام کر سکتے ہیں جہاں ملکیتی ڈیٹا سیٹس مالک کے ذریعہ براہ راست ایک وسیع پیمانے پر قبول شدہ دستخط کے ساتھ شائع کیے جاتے ہیں۔ تاہم، ان کے نقصانات بھی ہیں:

کم درستی کی ضمانتیں

مرکزی اوریکلز کے ساتھ، اس بات کی تصدیق کرنے کا کوئی طریقہ نہیں ہے کہ فراہم کردہ معلومات درست ہے یا نہیں۔ یہاں تک کہ "معتبر" فراہم کنندگان بھی بدمعاش ہو سکتے ہیں یا ہیک ہو سکتے ہیں۔ اگر اوریکل خراب ہو جاتا ہے، تو اسمارٹ کنٹریکٹس خراب ڈیٹا کی بنیاد پر عمل درآمد کریں گے۔

خراب دستیابی

مرکزی اوریکلز کو ہمیشہ دوسرے اسمارٹ کنٹریکٹس کو آف چین ڈیٹا دستیاب کرانے کی ضمانت نہیں ہے۔ اگر فراہم کنندہ سروس بند کرنے کا فیصلہ کرتا ہے یا کوئی ہیکر اوریکل کے آف چین جزو کو ہائی جیک کر لیتا ہے، تو آپ کا اسمارٹ کنٹریکٹ ڈینائل آف سروس (DoS) حملے کے خطرے سے دوچار ہوتا ہے۔

خراب ترغیبی مطابقت

مرکزی اوریکلز میں اکثر ڈیٹا فراہم کنندہ کے لیے درست/غیر تبدیل شدہ معلومات بھیجنے کے لیے خراب ڈیزائن کردہ یا غیر موجود ترغیبات ہوتی ہیں۔ درستی کے لیے اوریکل کو ادائیگی کرنا ایمانداری کی ضمانت نہیں دیتا۔ یہ مسئلہ اس وقت بڑا ہو جاتا ہے جب اسمارٹ کنٹریکٹس کے ذریعے کنٹرول کی جانے والی قدر کی مقدار بڑھ جاتی ہے۔

غیر مرکزی اوریکلز

غیر مرکزی اوریکلز کو ناکامی کے واحد نکات کو ختم کرکے مرکزی اوریکلز کی حدود پر قابو پانے کے لیے ڈیزائن کیا گیا ہے۔ ایک غیر مرکزی اوریکل سروس ایک پیئر-ٹو-پیئر نیٹ ورک میں متعدد شرکاء پر مشتمل ہوتی ہے جو آف چین ڈیٹا پر اتفاق رائے قائم کرتے ہیں اس سے پہلے کہ اسے اسمارٹ کنٹریکٹ میں بھیجا جائے۔

ایک غیر مرکزی اوریکل (مثالی طور پر) بغیر اجازت، بغیر بھروسے، اور مرکزی پارٹی کے ذریعہ انتظامیہ سے پاک ہونا چاہیے؛ حقیقت میں، اوریکلز کے درمیان غیر مرکزیت ایک سپیکٹرم پر ہے۔ نیم غیر مرکزی اوریکل نیٹ ورکس ہیں جہاں کوئی بھی حصہ لے سکتا ہے، لیکن ایک "مالک" کے ساتھ جو تاریخی کارکردگی کی بنیاد پر نوڈس کو منظور اور ہٹاتا ہے۔ مکمل طور پر غیر مرکزی اوریکل نیٹ ورکس بھی موجود ہیں: یہ عام طور پر اسٹینڈ ایلون بلاک چینز کے طور پر چلتے ہیں اور نوڈس کو مربوط کرنے اور غلط رویے کی سزا دینے کے لیے متفقہ میکانزم کی وضاحت کرتے ہیں۔

غیر مرکزی اوریکلز کے استعمال سے درج ذیل فوائد حاصل ہوتے ہیں:

اعلی درستی کی ضمانتیں

غیر مرکزی اوریکلز مختلف طریقوں کا استعمال کرتے ہوئے ڈیٹا کی درستی حاصل کرنے کی کوشش کرتے ہیں۔ اس میں واپس کی گئی معلومات کی صداقت اور سالمیت کی تصدیق کرنے والے ثبوتوں کا استعمال اور متعدد اداروں سے آف چین ڈیٹا کی درستگی پر اجتماعی طور پر اتفاق کرنے کا مطالبہ شامل ہے۔

صداقت کے ثبوت

صداقت کے ثبوت کرپٹوگرافک میکانزم ہیں جو بیرونی ذرائع سے حاصل کی گئی معلومات کی آزادانہ تصدیق کو ممکن بناتے ہیں۔ یہ ثبوت معلومات کے ماخذ کی توثیق کر سکتے ہیں اور بازیافت کے بعد ڈیٹا میں ممکنہ تبدیلیوں کا پتہ لگا سکتے ہیں۔

صداقت کے ثبوت کی مثالیں شامل ہیں:

ٹرانسپورٹ لیئر سیکیورٹی (TLS) ثبوت: اوریکل نوڈس اکثر ٹرانسپورٹ لیئر سیکیورٹی (TLS) پروٹوکول پر مبنی ایک محفوظ HTTP کنکشن کا استعمال کرتے ہوئے بیرونی ذرائع سے ڈیٹا حاصل کرتے ہیں۔ کچھ غیر مرکزی اوریکلز TLS سیشنز کی تصدیق کے لیے صداقت کے ثبوت استعمال کرتے ہیں (یعنی، ایک نوڈ اور ایک مخصوص سرور کے درمیان معلومات کے تبادلے کی تصدیق) اور اس بات کی تصدیق کرتے ہیں کہ سیشن کے مندرجات میں کوئی تبدیلی نہیں کی گئی تھی۔

ٹرسٹڈ ایگزیکیوشن انوائرنمنٹ (TEE) تصدیقات: ایک ٹرسٹڈ ایگزیکیوشن انوائرنمنٹopens in a new tab (TEE) ایک سینڈ باکسڈ کمپیوٹیشنل ماحول ہے جو اپنے میزبان نظام کے آپریشنل عمل سے الگ تھلگ ہے۔ TEEs اس بات کو یقینی بناتے ہیں کہ کمپیوٹیشنل ماحول میں ذخیرہ/استعمال ہونے والا کوئی بھی ایپلیکیشن کوڈ یا ڈیٹا سالمیت، رازداری، اور ناقابل تغیر کو برقرار رکھتا ہے۔ صارفین یہ ثابت کرنے کے لیے ایک تصدیق بھی پیدا کر سکتے ہیں کہ ایک ایپلیکیشن مثال بھروسہ مند ایگزیکیوشن ماحول میں چل رہی ہے۔

غیر مرکزی اوریکلز کی کچھ کلاسیں اوریکل نوڈ آپریٹرز سے TEE تصدیقات فراہم کرنے کا مطالبہ کرتی ہیں۔ یہ ایک صارف کو تصدیق کرتا ہے کہ نوڈ آپریٹر ایک بھروسہ مند ایگزیکیوشن ماحول میں اوریکل کلائنٹ کی ایک مثال چلا رہا ہے۔ TEEs بیرونی عمل کو کسی ایپلیکیشن کے کوڈ اور ڈیٹا کو تبدیل کرنے یا پڑھنے سے روکتے ہیں، لہذا، وہ تصدیقات ثابت کرتی ہیں کہ اوریکل نوڈ نے معلومات کو برقرار اور خفیہ رکھا ہے۔

معلومات کی اتفاق رائے پر مبنی توثیق

مرکزی اوریکلز اسمارٹ کنٹریکٹس کو ڈیٹا فراہم کرتے وقت سچائی کے ایک واحد ماخذ پر انحصار کرتے ہیں، جو غلط معلومات شائع کرنے کا امکان پیدا کرتا ہے۔ غیر مرکزی اوریکلز اس مسئلے کو آف چین معلومات سے استفسار کرنے کے لیے متعدد اوریکل نوڈس پر انحصار کرکے حل کرتے ہیں۔ متعدد ذرائع سے ڈیٹا کا موازنہ کرکے، غیر مرکزی اوریکلز آن چین کنٹریکٹس کو غلط معلومات منتقل کرنے کے خطرے کو کم کرتے ہیں۔

تاہم، غیر مرکزی اوریکلز کو متعدد آف چین ذرائع سے حاصل کی گئی معلومات میں تضادات سے نمٹنا پڑتا ہے۔ معلومات میں اختلافات کو کم سے کم کرنے اور اس بات کو یقینی بنانے کے لیے کہ اوریکل کنٹریکٹ کو منتقل کیا گیا ڈیٹا اوریکل نوڈس کی اجتماعی رائے کی عکاسی کرتا ہے، غیر مرکزی اوریکلز درج ذیل میکانزم استعمال کرتے ہیں:

ڈیٹا کی درستگی پر ووٹنگ/اسٹیکنگ

کچھ غیر مرکزی اوریکل نیٹ ورکس شرکاء سے ڈیٹا کے سوالات کے جوابات کی درستگی پر ووٹ دینے یا اسٹیک کرنے کا مطالبہ کرتے ہیں (مثلاً، "2020 کا امریکی انتخاب کس نے جیتا؟") نیٹ ورک کے مقامی ٹوکن کا استعمال کرتے ہوئے۔ ایک ایگریگیشن پروٹوکول پھر ووٹوں اور اسٹیکس کو جمع کرتا ہے اور اکثریت کی حمایت والے جواب کو درست مانتا ہے۔

جن نوڈس کے جوابات اکثریت کے جواب سے انحراف کرتے ہیں، ان کے ٹوکنز کو ان لوگوں میں تقسیم کرکے سزا دی جاتی ہے جو زیادہ درست اقدار فراہم کرتے ہیں۔ نوڈس کو ڈیٹا فراہم کرنے سے پہلے بانڈ فراہم کرنے پر مجبور کرنا ایماندارانہ جوابات کی ترغیب دیتا ہے کیونکہ انہیں عقلی اقتصادی اداکار سمجھا جاتا ہے جو زیادہ سے زیادہ منافع حاصل کرنے کا ارادہ رکھتے ہیں۔

اسٹیکنگ/ووٹنگ غیر مرکزی اوریکلز کو سے بھی بچاتی ہے جہاں بدنیتی پر مبنی اداکار اتفاق رائے کے نظام کو گیم کرنے کے لیے متعدد شناختیں بناتے ہیں۔ تاہم، اسٹیکنگ "فری لوڈنگ" (اوریکل نوڈس دوسروں سے معلومات کاپی کرنا) اور "سست توثیق" (اوریکل نوڈس خود معلومات کی تصدیق کیے بغیر اکثریت کی پیروی کرنا) کو نہیں روک سکتی۔

شیلنگ پوائنٹ میکانزم

شیلنگ پوائنٹopens in a new tab ایک گیم-تھیوری کا تصور ہے جو یہ فرض کرتا ہے کہ متعدد ادارے کسی بھی مواصلات کی عدم موجودگی میں کسی مسئلے کے مشترکہ حل پر ہمیشہ پہلے سے طے شدہ ہوں گے۔ شیلنگ-پوائنٹ میکانزم اکثر غیر مرکزی اوریکل نیٹ ورکس میں استعمال کیے جاتے ہیں تاکہ نوڈس کو ڈیٹا کی درخواستوں کے جوابات پر اتفاق رائے تک پہنچنے میں مدد مل سکے۔

اس کے لیے ایک ابتدائی خیال SchellingCoinopens in a new tab تھا، جو ایک مجوزہ ڈیٹا فیڈ ہے جہاں شرکاء "اسکیلر" سوالات (وہ سوالات جن کے جوابات شدت سے بیان کیے جاتے ہیں، مثلاً، "ETH کی قیمت کیا ہے؟") کے جوابات جمع کراتے ہیں، ساتھ ہی ایک ڈپازٹ بھی۔ جو صارفین 25ویں اور 75ویں پرسنٹائلopens in a new tab کے درمیان قدریں فراہم کرتے ہیں، انہیں انعام دیا جاتا ہے، جبکہ جن کی قدریں درمیانی قدر سے بہت زیادہ انحراف کرتی ہیں، انہیں سزا دی جاتی ہے۔

اگرچہ SchellingCoin آج موجود نہیں ہے، لیکن کئی غیر مرکزی اوریکلز—خاص طور پر Maker Protocol’s Oraclesopens in a new tab—اوریکل ڈیٹا کی درستگی کو بہتر بنانے کے لیے شیلنگ-پوائنٹ میکانزم کا استعمال کرتے ہیں۔ ہر Maker Oracle نوڈس ("relayers" اور "feeds") کے ایک آف چین P2P نیٹ ورک پر مشتمل ہوتا ہے جو کولیٹرل اثاثوں کے لیے مارکیٹ کی قیمتیں جمع کراتے ہیں اور ایک آن چین "Medianizer" کنٹریکٹ جو تمام فراہم کردہ اقدار کا درمیانی حساب لگاتا ہے۔ ایک بار جب مخصوص تاخیر کی مدت ختم ہو جاتی ہے، تو یہ درمیانی قدر متعلقہ اثاثے کے لیے نئی حوالہ قیمت بن جاتی ہے۔

شیلنگ پوائنٹ میکانزم استعمال کرنے والے اوریکلز کی دیگر مثالوں میں Chainlink Offchain Reportingopens in a new tab اور Witnetopens in a new tab شامل ہیں۔ دونوں نظاموں میں، پیئر-ٹو-پیئر نیٹ ورک میں اوریکل نوڈس کے جوابات کو ایک واحد مجموعی قدر میں جمع کیا جاتا ہے، جیسے کہ اوسط یا درمیانی۔ نوڈس کو اس حد تک انعام یا سزا دی جاتی ہے جس حد تک ان کے جوابات مجموعی قدر سے مطابقت رکھتے ہیں یا انحراف کرتے ہیں۔

شیلنگ پوائنٹ میکانزم پرکشش ہیں کیونکہ وہ آن چین فوٹ پرنٹ کو کم سے کم کرتے ہیں (صرف ایک ٹرانزیکشن بھیجنے کی ضرورت ہے) جبکہ غیر مرکزیت کی ضمانت دیتے ہیں۔ مؤخر الذکر ممکن ہے کیونکہ نوڈس کو جمع کردہ جوابات کی فہرست پر دستخط کرنا ضروری ہے اس سے پہلے کہ اسے اس الگورتھم میں فیڈ کیا جائے جو اوسط/درمیانی قدر پیدا کرتا ہے۔

دستیابی

غیر مرکزی اوریکل خدمات اسمارٹ کنٹریکٹس کو آف چین ڈیٹا کی اعلی دستیابی کو یقینی بناتی ہیں۔ یہ آف چین معلومات کے ماخذ اور معلومات کو آن چین منتقل کرنے کے ذمہ دار نوڈس دونوں کو غیر مرکزی بنا کر حاصل کیا جاتا ہے۔

یہ فالٹ-ٹالرنس کو یقینی بناتا ہے کیونکہ اوریکل کنٹریکٹ دوسرے کنٹریکٹس سے سوالات پر عمل درآمد کرنے کے لیے متعدد نوڈس (جو متعدد ڈیٹا ذرائع پر بھی انحصار کرتے ہیں) پر انحصار کر سکتا ہے۔ ماخذ اور نوڈ-آپریٹر کی سطح پر غیر مرکزیت اہم ہے—ایک ہی ماخذ سے حاصل کردہ معلومات کی خدمت کرنے والے اوریکل نوڈس کا ایک نیٹ ورک ایک مرکزی اوریکل جیسے ہی مسئلے میں پڑ جائے گا۔

اسٹیک پر مبنی اوریکلز کے لیے یہ بھی ممکن ہے کہ وہ ان نوڈ آپریٹرز کو سلیش کریں جو ڈیٹا کی درخواستوں کا فوری جواب دینے میں ناکام رہتے ہیں۔ یہ اوریکل نوڈس کو فالٹ-ٹالرنٹ انفراسٹرکچر میں سرمایہ کاری کرنے اور بروقت ڈیٹا فراہم کرنے کے لیے نمایاں طور پر ترغیب دیتا ہے۔

اچھی ترغیبی مطابقت

غیر مرکزی اوریکلز اوریکل نوڈس کے درمیان بیزنٹائنopens in a new tab رویے کو روکنے کے لیے مختلف ترغیبی ڈیزائن نافذ کرتے ہیں۔ خاص طور پر، وہ منسوبیت اور جوابدہی حاصل کرتے ہیں:

  1. غیر مرکزی اوریکل نوڈس سے اکثر یہ مطالبہ کیا جاتا ہے کہ وہ ڈیٹا کی درخواستوں کے جواب میں فراہم کردہ ڈیٹا پر دستخط کریں۔ یہ معلومات اوریکل نوڈس کی تاریخی کارکردگی کا جائزہ لینے میں مدد کرتی ہے، تاکہ صارفین ڈیٹا کی درخواستیں کرتے وقت ناقابل اعتماد اوریکل نوڈس کو فلٹر کر سکیں۔ ایک مثال Witnet کا الگورتھمک ریپوٹیشن سسٹمopens in a new tab ہے۔

  2. غیر مرکزی اوریکلز—جیسا کہ پہلے وضاحت کی گئی ہے—نوڈس سے یہ مطالبہ کر سکتے ہیں کہ وہ جمع کردہ ڈیٹا کی سچائی پر اپنے اعتماد پر ایک اسٹیک لگائیں۔ اگر دعویٰ درست ثابت ہوتا ہے، تو یہ اسٹیک ایماندارانہ خدمت کے لیے انعامات کے ساتھ واپس کیا جا سکتا ہے۔ لیکن اگر معلومات غلط ہوں تو اسے سلیش بھی کیا جا سکتا ہے، جو کچھ حد تک جوابدہی فراہم کرتا ہے۔

اسمارٹ کنٹریکٹس میں اوریکلز کی ایپلی کیشنز

درج ذیل Ethereum میں اوریکلز کے عام استعمال کے معاملات ہیں:

مالیاتی ڈیٹا حاصل کرنا

غیر مرکزی مالیات (DeFi) ایپلی کیشنز اثاثوں کے پیئر-ٹو-پیئر قرض دینے، قرض لینے، اور تجارت کی اجازت دیتی ہیں۔ اس کے لیے اکثر مختلف مالیاتی معلومات حاصل کرنے کی ضرورت ہوتی ہے، بشمول ایکسچینج ریٹ ڈیٹا (کرپٹو کرنسیوں کی فیاٹ ویلیو کا حساب لگانے یا ٹوکن کی قیمتوں کا موازنہ کرنے کے لیے) اور کیپیٹل مارکیٹس ڈیٹا (ٹوکنائزڈ اثاثوں، جیسے سونا یا امریکی ڈالر کی قدر کا حساب لگانے کے لیے)۔

مثال کے طور پر، ایک DeFi قرض دینے والے پروٹوکول کو کولیٹرل کے طور پر جمع کردہ اثاثوں (مثلاً، ETH) کے لیے موجودہ مارکیٹ کی قیمتوں سے استفسار کرنے کی ضرورت ہے۔ یہ کنٹریکٹ کو کولیٹرل اثاثوں کی قدر کا تعین کرنے اور یہ تعین کرنے دیتا ہے کہ وہ سسٹم سے کتنا قرض لے سکتا ہے۔

DeFi میں مقبول "قیمت اوریکلز" (جیسا کہ انہیں اکثر کہا جاتا ہے) میں Chainlink Price Feeds، Compound Protocol کا Open Price Feedopens in a new tab، Uniswap کے Time-Weighted Average Prices (TWAPs)opens in a new tab، اور Maker Oraclesopens in a new tab شامل ہیں۔

بلڈرز کو ان قیمت اوریکلز کو اپنے پروجیکٹ میں ضم کرنے سے پہلے ان کے ساتھ آنے والی انتباہات کو سمجھنا چاہیے۔ یہ مضمونopens in a new tab اس بات کا تفصیلی تجزیہ فراہم کرتا ہے کہ مذکورہ قیمت اوریکلز میں سے کسی کو استعمال کرنے کی منصوبہ بندی کرتے وقت کن باتوں پر غور کرنا چاہیے۔

ذیل میں ایک مثال ہے کہ آپ Chainlink قیمت فیڈ کا استعمال کرتے ہوئے اپنے اسمارٹ کنٹریکٹ میں تازہ ترین ETH قیمت کیسے حاصل کر سکتے ہیں:

1pragma solidity ^0.6.7;
2
3import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";
4
5contract PriceConsumerV3 {
6
7 AggregatorV3Interface internal priceFeed;
8
9 /**
10 * Network: Kovan
11 * Aggregator: ETH/USD
12 * Address: 0x9326BFA02ADD2366b30bacB125260Af641031331
13 */
14 constructor() public {
15 priceFeed = AggregatorV3Interface(0x9326BFA02ADD2366b30bacB125260Af641031331);
16 }
17
18 /**
19 * Returns the latest price
20 */
21 function getLatestPrice() public view returns (int) {
22 (
23 uint80 roundID,
24 int price,
25 uint startedAt,
26 uint timeStamp,
27 uint80 answeredInRound
28 ) = priceFeed.latestRoundData();
29 return price;
30 }
31}
سب دکھائیں

قابل تصدیق بے ترتیب پن پیدا کرنا

کچھ بلاک چین ایپلی کیشنز، جیسے بلاک چین پر مبنی گیمز یا لاٹری اسکیموں کو، مؤثر طریقے سے کام کرنے کے لیے اعلیٰ سطح کی غیر متوقعیت اور بے ترتیب پن کی ضرورت ہوتی ہے۔ تاہم، بلاک چینز کا حتمی عمل درآمد بے ترتیب پن کو ختم کر دیتا ہے۔

اصل نقطہ نظر سیوڈو-رینڈم کرپٹوگرافک افعال، جیسے blockhash کا استعمال کرنا تھا، لیکن ان کو مائنرز کے ذریعے جوڑ توڑ کیا جا سکتا تھاopens in a new tab پروف-آف-ورک الگورتھم کو حل کرنا۔ اس کے علاوہ، Ethereum کا پروف-آف-اسٹیک میں منتقلی کا مطلب ہے کہ ڈیولپرز اب آن چین بے ترتیب پن کے لیے blockhash پر انحصار نہیں کر سکتے۔ بیکن چین کا RANDAO میکانزمopens in a new tab اس کے بجائے بے ترتیب پن کا ایک متبادل ذریعہ فراہم کرتا ہے۔

بے ترتیب قدر کو آف چین پیدا کرنا اور اسے آن چین بھیجنا ممکن ہے، لیکن ایسا کرنے سے صارفین پر اعلیٰ اعتماد کی ضروریات عائد ہوتی ہیں۔ انہیں یہ یقین کرنا ہوگا کہ قدر واقعی غیر متوقع میکانزم کے ذریعے پیدا کی گئی تھی اور ٹرانزٹ میں اس میں کوئی تبدیلی نہیں کی گئی تھی۔

آف چین کمپیوٹیشن کے لیے ڈیزائن کیے گئے اوریکلز اس مسئلے کو حل کرتے ہیں محفوظ طریقے سے آف چین بے ترتیب نتائج پیدا کرکے جنہیں وہ آن چین نشر کرتے ہیں ساتھ ہی کرپٹوگرافک ثبوتوں کے ساتھ جو اس عمل کی غیر متوقعیت کی تصدیق کرتے ہیں۔ ایک مثال Chainlink VRFopens in a new tab (قابل تصدیق بے ترتیب فنکشن) ہے، جو ایک ثابت شدہ طور پر منصفانہ اور چھیڑ چھاڑ سے پاک رینڈم نمبر جنریٹر (RNG) ہے جو ان ایپلی کیشنز کے لیے قابل اعتماد اسمارٹ کنٹریکٹس بنانے کے لیے مفید ہے جو غیر متوقع نتائج پر انحصار کرتی ہیں۔

واقعات کے نتائج حاصل کرنا

اوریکلز کے ساتھ، ایسے اسمارٹ کنٹریکٹس بنانا آسان ہے جو حقیقی دنیا کے واقعات کا جواب دیتے ہیں۔ اوریکل خدمات کنٹریکٹس کو آف چین اجزاء کے ذریعے بیرونی APIs سے منسلک ہونے اور ان ڈیٹا ذرائع سے معلومات استعمال کرنے کی اجازت دے کر اسے ممکن بناتی ہیں۔ مثال کے طور پر، پہلے ذکر کردہ پیشین گوئی ڈیپ ایک اوریکل سے درخواست کر سکتی ہے کہ وہ ایک قابل اعتماد آف چین ماخذ (مثلاً، ایسوسی ایٹڈ پریس) سے انتخابی نتائج واپس کرے۔

حقیقی دنیا کے نتائج کی بنیاد پر ڈیٹا حاصل کرنے کے لیے اوریکلز کا استعمال دیگر نئے استعمال کے معاملات کو بھی ممکن بناتا ہے؛ مثال کے طور پر، ایک غیر مرکزی بیمہ پروڈکٹ کو مؤثر طریقے سے کام کرنے کے لیے موسم، آفات، وغیرہ کے بارے میں درست معلومات کی ضرورت ہوتی ہے۔

اسمارٹ کنٹریکٹس کو خودکار بنانا

اسمارٹ کنٹریکٹس خود بخود نہیں چلتے؛ بلکہ، ایک بیرونی ملکیت والا اکاؤنٹ (EOA)، یا کوئی دوسرا کنٹریکٹ اکاؤنٹ، کنٹریکٹ کے کوڈ پر عمل درآمد کرنے کے لیے صحیح افعال کو متحرک کرنا ضروری ہے۔ زیادہ تر معاملات میں، کنٹریکٹ کے افعال کا بڑا حصہ عوامی ہوتا ہے اور اسے EOAs اور دیگر کنٹریکٹس کے ذریعے بلایا جا سکتا ہے۔

لیکن ایک کنٹریکٹ کے اندر نجی افعال بھی ہوتے ہیں جو دوسروں کے لیے ناقابل رسائی ہوتے ہیں؛ لیکن جو ایک ڈیپ کی مجموعی فعالیت کے لیے اہم ہوتے ہیں۔ مثالوں میں ایک mintERC721Token() فنکشن شامل ہے جو وقتاً فوقتاً صارفین کے لیے نئے NFTs منٹ کرتا ہے، ایک پیشین گوئی بازار میں ادائیگیوں سے نوازنے کے لیے ایک فنکشن، یا ایک DEX میں اسٹیک کیے گئے ٹوکنز کو انلاک کرنے کے لیے ایک فنکشن۔

ایپلیکیشن کو آسانی سے چلانے کے لیے ڈیولپرز کو وقفوں پر ایسے افعال کو متحرک کرنے کی ضرورت ہوگی۔ تاہم، یہ ڈیولپرز کے لیے دنیاوی کاموں پر مزید گھنٹے ضائع ہونے کا باعث بن سکتا ہے، یہی وجہ ہے کہ اسمارٹ کنٹریکٹس کے عمل درآمد کو خودکار بنانا پرکشش ہے۔

کچھ غیر مرکزی اوریکل نیٹ ورکس آٹومیشن خدمات پیش کرتے ہیں، جو آف چین اوریکل نوڈس کو صارف کے ذریعہ بیان کردہ پیرامیٹرز کے مطابق اسمارٹ کنٹریکٹ افعال کو متحرک کرنے کی اجازت دیتے ہیں۔ عام طور پر، اس کے لیے اوریکل سروس کے ساتھ ٹارگٹ کنٹریکٹ کو "رجسٹر" کرنے، اوریکل آپریٹر کو ادائیگی کے لیے فنڈز فراہم کرنے، اور کنٹریکٹ کو متحرک کرنے کے لیے شرائط یا اوقات کی وضاحت کرنے کی ضرورت ہوتی ہے۔

Chainlink کا Keeper Networkopens in a new tab اسمارٹ کنٹریکٹس کو ایک بھروسہ مند اور غیر مرکزی طریقے سے باقاعدہ دیکھ بھال کے کاموں کو آؤٹ سورس کرنے کے اختیارات فراہم کرتا ہے۔ اپنے کنٹریکٹ کو Keeper-compatible بنانے اور Upkeep سروس استعمال کرنے کے بارے میں معلومات کے لیے آفیشل Keeper's documentationopens in a new tab پڑھیں۔

بلاک چین اوریکلز کا استعمال کیسے کریں

متعدد اوریکل ایپلی کیشنز ہیں جنہیں آپ اپنے Ethereum ڈیپ میں ضم کر سکتے ہیں:

Chainlinkopens in a new tab - Chainlink غیر مرکزی اوریکل نیٹ ورکس کسی بھی بلاک چین پر جدید اسمارٹ کنٹریکٹس کی حمایت کے لیے چھیڑ چھاڑ سے پاک ان پٹ، آؤٹ پٹ، اور حسابات فراہم کرتے ہیں۔

RedStone Oraclesopens in a new tab - RedStone ایک غیر مرکزی ماڈیولر اوریکل ہے جو گیس-آپٹمائزڈ ڈیٹا فیڈز فراہم کرتا ہے۔ یہ ابھرتے ہوئے اثاثوں، جیسے لیکویڈ اسٹیکنگ ٹوکنز (LSTs)، لیکویڈ ری-اسٹیکنگ ٹوکنز (LRTs)، اور Bitcoin اسٹیکنگ ڈیریویٹوز کے لیے قیمت فیڈز پیش کرنے میں مہارت رکھتا ہے۔

Chronicleopens in a new tab - Chronicle واقعی قابل توسیع، لاگت-موثر، غیر مرکزی، اور قابل تصدیق اوریکلز تیار کرکے آن چین ڈیٹا کی منتقلی کی موجودہ حدود پر قابو پاتا ہے۔

Witnetopens in a new tab - Witnet ایک بغیر اجازت، غیر مرکزی، اور سنسر شپ-مزاحم اوریکل ہے جو اسمارٹ کنٹریکٹس کو مضبوط کرپٹو-اکنامک گارنٹی کے ساتھ حقیقی دنیا کے واقعات پر رد عمل ظاہر کرنے میں مدد کرتا ہے۔

UMA Oracleopens in a new tab - UMA کا آپٹمسٹک اوریکل اسمارٹ کنٹریکٹس کو مختلف ایپلی کیشنز، بشمول انشورنس، مالیاتی ڈیریویٹوز، اور پیشین گوئی بازاروں کے لیے کسی بھی قسم کا ڈیٹا تیزی سے اور وصول کرنے کی اجازت دیتا ہے۔

Telloropens in a new tab - Tellor آپ کے اسمارٹ کنٹریکٹ کے لیے ایک شفاف اور بغیر اجازت والا اوریکل پروٹوکول ہے تاکہ جب بھی اسے ضرورت ہو آسانی سے کوئی بھی ڈیٹا حاصل کیا جا سکے۔

Band Protocolopens in a new tab - Band Protocol ایک کراس-چین ڈیٹا اوریکل پلیٹ فارم ہے جو حقیقی دنیا کے ڈیٹا اور APIs کو اسمارٹ کنٹریکٹس سے جمع اور جوڑتا ہے۔

Pyth Networkopens in a new tab - Pyth نیٹ ورک ایک فرسٹ-پارٹی مالیاتی اوریکل نیٹ ورک ہے جو ایک چھیڑ چھاڑ سے پاک، غیر مرکزی، اور خود-پائیدار ماحول میں آن چین پر مسلسل حقیقی دنیا کا ڈیٹا شائع کرنے کے لیے ڈیزائن کیا گیا ہے۔

API3 DAOopens in a new tab - API3 DAO فرسٹ-پارٹی اوریکل حل فراہم کر رہا ہے جو اسمارٹ کنٹریکٹس کے لیے ایک غیر مرکزی حل میں زیادہ ماخذ کی شفافیت، سیکیورٹی اور اسکیل ایبلٹی فراہم کرتے ہیں

Supraopens in a new tab - کراس-چین حلوں کا ایک عمودی طور پر مربوط ٹول کٹ جو تمام بلاک چینز، عوامی (L1s اور L2s) یا نجی (انٹرپرائزز) کو آپس میں جوڑتا ہے، غیر مرکزی اوریکل قیمت فیڈز فراہم کرتا ہے جو آن چین اور آف چین استعمال کے معاملات کے لیے استعمال کیا جا سکتا ہے۔

Gas Networkopens in a new tab - ایک تقسیم شدہ اوریکل پلیٹ فارم جو بلاک چین بھر میں ریئل ٹائم گیس کی قیمت کا ڈیٹا فراہم کرتا ہے۔ سرکردہ گیس قیمت ڈیٹا فراہم کنندگان سے ڈیٹا آن چین لا کر، Gas Network باہمی عمل کو چلانے میں مدد کر رہا ہے۔ Gas Network 35 سے زیادہ چینز کے لیے ڈیٹا کو سپورٹ کرتا ہے، بشمول Ethereum Mainnet اور بہت سے سرکردہ L2s۔

مزید پڑھیں

مضامین

ویڈیوز

ٹیوٹوریلز

بطور مثال پروجیکٹس

کیا یہ آرٹیکل کارآمد تھا؟