آموزش بلاک چین

اوراکل (Oracle) چیست؟

فناوری بلاک چین که یکی از اجزای اصلی ارزهای دیجیتال است، با تمام نوآوری‌ها و راه‌حل‌های خلاقانه‌ای که برای حل بسیاری از مشکلات به ارمغان آورده، محدودیت‌های خاص خود را هم دارد. یکی از همین مشکلات عدم توانایی بلاک چین در ارتباط با دنیای بیرون است.

خوشبختانه متخصصان این حوزه برای هر مشکلی که در استفاده از بلاک چین سر راهشان قرار می‌گیرد، یک راه‌حل خوب و قابل ‌قبول ارائه می‌دهند که اوراکل‌ها راه‌حل این افراد برای حل مشکل ارتباط بلاک چین با دنیای بیرون است.
در ادامه می‌خواهیم به طور دقیق‌تر در مورد مفهوم اوراکل و مشکلی که سعی در حل آن دارد، صحبت کنیم و ببینیم که چرا اصلاً به چنین چیزی نیاز داریم. همچنین در مورد انواع اوراکل و کاربردهای آن‌ بحث خواهیم کرد. پس لطفاً ما را تا انتها همراهی کنید.

اوراکل (Oracle) چیست؟

به پلتفرم یا پروژه‌هایی که وظیفه‌ی آن‌ها ارائه اطلاعات و داده‌های دنیای واقعی به داخل بلاک چین است، اوراکل می‌گوییم.

یک «اوراکل» (Oracle) یا «اوراکل بلاک چین» (Blockchain Oracle) به موجودیتی گفته می‌شود که وظیفه‌ی آن ارائه‌ی اطلاعات و داده‌های مختلف دنیای بیرونی به بلاک چین، برنامه‌های غیرمتمرکز و قراردادهای هوشمند است.

منظور از «برنامه‌های غیرمتمرکز» (Decentralized Applications) که به اختصار به آن DApp هم گفته می‌شود، برنامه‌ای مثل سایر برنامه‌های کامپیوتری است اما با یک تفاوت عمده، در واقع یک برنامه‌ی غیرمتمرکز روی بلاک چین پیاده‌سازی می‌شود و برای همین غیرمتمرکز است. منطق این برنامه‌ها را کدهای برنامه‌نویسی شده تعیین می‌کنند که به آن‌ها «قراردادهای هوشمند» (Smart Contracts) می‌گویند.

حال که تا حدودی با مفاهیم اولیه مورد نیاز برای درک اوراکل آشنا شدیم، بیایید با ذکر یک مثال همه چیز را برایتان روشن کنیم.

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

فرض کنیم دو نفر به نام‌های علی و رضا در جمع دوستانه‌ی خود و به عنوان تفریح تصمیم می‌گیرند روی نتیجه‌ی مسابقه‌ی فوتبال بین استقلال و پرسپولیس شرط‌بندی کنند. شرط آن‌ها هم این است که هر دو، نفری ۵ دلار کنار بگذارند و بعد از پایان مسابقه‌ هر کس که تیم برنده را درست حدس زده باشد، ۱۰ دلار کنار گذاشته شده را برای خود بردارد. علی برد استقلال و رضا برد پرسپولیس را انتخاب می‌کنند و طرفین با هم توافق می‌کنند که اگر بازی مساوی تمام شد ۵ دلار هر شخص به خودش برگردانده شود.

این دو نفر که مهندس کامپیوتر هم هستند تصمیم می‌گیرند برای به حداقل رساندن احتمال تقلب، اطمینان کامل از برگزاری روند شرط‌بندی و تضمین پرداخت پول از هر دو طرف، شرط‌بندی خود را در قالب یک برنامه‌ی غیرمتمرکز کوچک نوشته و روی بلاک چین پیاده‌سازی کنند. برای این کار آن‌ها یک قرارداد هوشمند می‌نویسند که در کدهای آن توافقات انجام شده، نوشته می‌شود. به عبارت دیگر در این قرارداد نوشته شده که هر دو طرف برای ورود به شرط‌بندی باید مبلغ ۵ دلار را در قالب ارز دیجیتال «تتر» (Tether) به آدرس این قرارداد هوشمند واریز کنند، همچنین نوشته می‌شود که اگر استقلال برنده بود ۱۰ دلاری که به حساب قرارداد هوشمند واریز شده، به آدرس کیف پول دیجیتال علی و اگر پرسپولیس برنده بود این مبلغ به آدرس رضا منتقل شود. اگر هم بازی مساوی شود ۵ دلار به آدرس کیف پول هر شخص بازگردانده خواهد شد.

حال سوالی که مطرح می‌شود این است که این برنامه‌ی غیرمتمرکز یا بهتر است بگوییم قرارداد هوشمند نوشته شده، نتیجه‌ی دربی را از کجا بداند؟ مسابقه‌ی فوتبالی که در دنیای بیرون از بلاک چین انجام می‌شود و قرارداد هوشمند هیچ راهی برای دسترسی مستقیم به آن ندارد.

اینجاست که اوراکل‌ها وارد صحنه می‌شوند. در حقیقت این وظیفه‌ی اوراکل است که نتیجه‌ی دربی را بعد از پایان مسابقه به شکل یک داده‌ی دیجیتال در آورد و آن را در اختیار بلاک چین و قرارداد هوشمند قرار دهد.

بدین ترتیب بعد از پایان مسابقه‌ی دربی، اوراکل داده‌ای با محتویات «مساوی» به قرارداد هوشمند ارسال می‌کند. سپس این قرارداد هوشمند بلافاصله بعد از دریافت این ورودی و براساس کدهایی که از قبل نوشته شده، ۱۰ دلار واریز شده به حساب خود را نصف کرده و نفری ۵ دلار به آدرس کیف پول علی و رضا واریز می‌کند.

نکته‌ی مهمی که باید به آن توجه داشت این است که منظور از اوراکل خود آن منبع اطلاعاتی نیست. در حقیقت اوراکل داده‌ی مورد نظر را از منبع می‎گیرد، آن را راستی‌آزمایی می‌کند و به شکلی در می‌آورد که قراردادهای هوشمند بتوانند آن را بخوانند. سپس این داده را منتشر می‌کند. در مثال قبل می‌توانیم سایت سازمان لیگ را که نتیجه‌ی نهایی دربی را مشخص می‌کند «منبع داده» و یک پروژه‌‌ی بلاک چینی که نتایج فوتبال را از منابع مختلف گرفته و آن‌ها را به شکل قابل استفاده در قراردادهای هوشمند تبدیل می‌کند، «اوراکل» در نظر بگیریم.

موضوع دیگر این است که اوراکل‌ها می‌توانند داده‌ها و اطلاعات مختلفی را در اختیار قراردادهای هوشمند بگذارند. برای مثال به جز نتایج مسابقات فوتبال می‌توان به پیش‌بینی آب‌وهوا، قیمت لحظه‌ای رمز ارزها و دارایی‌های دیگر، نتایج انتخابات و غیره اشاره کرد.

مشکل بزرگ اوراکل‌ها

از آنجایی که در استفاده از اوراکل‌ها به یک عامل بیرونی اعتماد می‌کنیم باید از درستی اطلاعات آن اطمینان حاصل کنیم.

در مثال قبلی دیدیم که این دو نفر برای برگزاری عادلانه‌ی شرط‌بندی دوستانه‌ی خود از فناوری بلاک چین و قراردادهای هوشمند استفاده کردند ولی باز هم به خاطر استفاده از اوراکل یک نقص بزرگ در این روش وجود دارد. وقتی بدین شکل از یک اوراکل استفاده می‌کنیم در واقع به یک عامل بیرونی اعتماد کرده‌ایم که نتیجه‌ی دربی را به ‌درستی برای ما ارسال کرده است.

به عبارت دیگر، فلسفه‌ی استفاده از فناوری بلاک چین این است که به هیچ شخص یا موجودیت واحدی اعتماد نکرده و همه چیز را به شکل غیرمتمرکز انجام دهیم ولی وقتی اجرای قرارداد هوشمند خود را به داده‌ای که اوراکل از دنیای بیرون در اختیار ما قرار می‌دهد، وابسته می‌کنیم در واقع داریم به این موجودیت واحد اعتماد می‌کنیم. اگر داده‌ای که اوراکل در اختیار قرارداد هوشمند قرار می‌دهد درست نباشد نتیجه‌ی حاصل به دور از واقعیت خواهد بود و این یک نقص بزرگ است.

خوشبختانه برای حل این مشکل هم راه‌حل‌هایی ارائه شده است. برای مثال می‌توان از اوراکلی استفاده کرد که اطلاعات خود را از چند منبع مختلف دریافت می‌کند. به چنین اوراکلی، «اوراکل غیرمتمرکز» (Decentralized Oracle Network) یا به اختصار DON گفته می‌شود. در این صورت حتی اگر یکی از منابع اطلاعاتی هم در داده‌های خود دچار خطا شود مشکلی در اجرای درست قرارداد هوشمند پیش نخواهد آمد.

انواع اوراکل

اوراکل‌ها به چند دسته تقسیم می‌شوند که از جمله‌ی آن‌ها می‌توان به اوراکل‌های متمرکز و غیرمتمرکز، اوراکل‌های نرم‌افزاری و سخت‌افزاری، اوراکل‌های ورودی و خروجی اشاره کرد.

اوراکل‌ها انواع مختلفی دارند و از چند نظر می‌توان آن‌ها طبقه‌بندی کرد. همچنین یک اوراکل ممکن است در چند دسته قرار بگیرد و حتماً لازم نیست آن را جزو یکی از این گروه‌ها طبقه‌بندی کنیم. بیایید در ادامه با جزئیات بیشتری در این مورد صحبت کنیم و برای هر دسته چند مثال بزنیم.

اوراکل‌های نرم‌ افزاری و سخت‌ افزاری

«اوراکل نرم‌افزاری» (Software Oracle) اطلاعات خود را از منابع آنلاین دریافت کرده و آن را به بلاک چین می‌فرستد. این اطلاعات ممکن است از پایگاه‌های ‌داده‌، سایت‌ها، سرورها و در حالت کلی هر منبع داده‌ی اینترنتی گرفته شده باشد. از آنجایی که این نوع اوراکل‌ها همواره به اینترنت متصل هستند و می‌توانند خیلی سریع و راحت داده‌های خود را به روز کنند، برای همین جزو یکی از پراستفاده‌ترین اوراکل‌ها به حساب می‌آیند. از جمله‌ی داده‌هایی که اوراکل‌های نرم‌افزاری ارائه می‌دهند می‌توان به نرخ لحظه‌ای قیمت صرافی‌ها یا اطلاعات به ‌روز شرکت‌های هواپیمایی اشاره کرد.

در طرف دیگر «اوراکل‌ سخت‌افزاری» (Hardware Oracle) را داریم که داده‌ها و اطلاعات خود را از وسایل فیزیکی در دنیای واقعی می‌گیرد. دستگاه‌های دارای حسگر، اسکنرهای بارکد و دیگر دستگاه‌های مشابه از جمله‌ی اوراکل‌های سخت‌افزاری هستند و می‌توانند اطلاعات را در لحظه از دنیای واقعی بگیرند و آن را به داده‌های دیجیتالی تبدیل کنند. برای مثال در گمرک می‌توان جلوی درب ورودی حسگر نصب کرده و ورود و خروج کامیون‌های حمل بار را زیر نظر گرفت. در صورتی که کامیونی وارد گمرک شود حسگر آن را تشخیص می‌دهد و می‌تواند آن را به قرارداد هوشمند مربوط اطلاع دهد تا بر اساس آن تصمیمات بعدی گرفته شود.

اوراکل ورودی و خروجی

«اوراکل ورودی» (Inbound Oracle یا Input Oracle) به اوراکلی گفته می‌شود که اطلاعات را از منابع خارجی به قراردادهای هوشمند منتقل می‌کند، در حالی که «اوراکل‌ خروجی» (Outbound Oracle یا Output Oracle) اطلاعات را از قرارداد هوشمند به دنیای بیرونی می‌فرستد.

به عنوان یک مثال برای اوراکل ورودی می‌توان به میزان دمای هوا اشاره کرد که حسگر آن را اندازه گرفته و به قرارداد هوشمند ارسال می‌کند. همچنین مثالی از اوراکل خروجی می‌تواند در استفاده از قفل دیجیتال نمود پیدا کند. مثلاً می‌توان قرارداد هوشمندی نوشت که در صورت ریخته شدن پول در آدرس مخصوص آن، با استفاده از اوراکل خروجی به یک قفل دیجیتال پیامی مبنی بر تایید پرداخت پول ارسال کرده و باعث باز شدن آن قفل می‌شود.

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

«اوراکل متمرکز» (Centralized Oracle) توسط یک موجودیت واحد کنترل می‌شود و تنها عامل ارائه‌دهنده‌ی اطلاعات به قرارداد هوشمند است. همان‌طور که گفتیم استفاده از این نوع اوراکل‌ها چندان توصیه نمی‌شود زیرا کارکرد برنامه‌ی غیرمتمرکز و قراردادهای هوشمند تشکیل‌دهنده‌ی آن به طور کلی به همین اوراکل واحد وابسته می‌شود و اگر اشتباهی در درستی اطلاعات آن وجود داشته باشد نتایج ناگواری در پی خواهد داشت.
در عوض می‌توان از «اوراکل‌ غیرمتمرکز» (Decentralized Oracle) استفاده کرد که از چند منبع اطلاعاتی استفاده می‌کند. برای مثال «چین لینک» (Chainlink) یکی از پروژه‌های مشهور ارز دیجیتال است که در زمینه‌ی ارائه‌ی اوراکل فعالیت می‌کند. اگر سری به صفحه‌ی قیمت اتریوم در این سایت بزنید مشاهده می‌کنید که اوراکل چین لینک قیمت این رمز ارز را از منابع مختلفی دریافت کرده و براساس آن‌ها یک قیمت واحد به عنوان قیمت قابل‌اعتماد ارائه می‌کند.

اوراکل‌ سفارشی

«اوراکل سفارشی» (Contract-specific Oracle) به اوراکلی گفته می‌شود که تنها برای استفاده در یک قرارداد هوشمند خاص طراحی و ساخته شده است. برای همین اگر کسی چندین قرارداد هوشمند داشته باشد مجبور است برای هرکدام یک اوراکل سفارشی ایجاد کند.

طراحی این نوع اوراکل بسیار هزینه‌بر و زمان‌گیر است. به همین علت شرکت‌های تجاری معمولاً از آن‌ها استفاده نمی‌کنند و ترجیح می‌دهند به سراغ اوراکل‌های ساخته شده توسط شرکت‌های دیگر بروند. البته ناگفته نماند که اوراکل سفارشی به خاطر اینکه صرفاً برای استفاده در یک قرارداد هوشمند خاص ساخته می‌شود، می‌تواند نسبت به اوراکل‌های دیگر انعطاف‌پذیری بیشتری داشته باشد.

اوراکل‌ انسانی

برخی اوقات اشخاص حقیقی که در یک موضوع خاص تخصص دارند هم می‌توانند به عنوان یک اوراکل ایفای نقش کنند. این افراد که به آن‌ها «اوراکل انسانی» (Human Oracle) می‌گوییم از منابع مختلف، درستی و صحت یک سری اطلاعات را بررسی می‌کنند و سپس آن‌ها را به قراردادهای هوشمند می‌فرستند. از آنجایی که هویت این افراد با استفاده از امضای دیجیتالی مشخص است، احتمال تقلب و ارائه‌ی اطلاعات غلط نیز پایین خواهد بود.

اوراکل‌ چیست

کاربرد اوراکل‌ها

از اوراکل‌ها در زمینه‌های مختلفی مثل دیفای و بازی‌های بلاک چینی استفاده می‌شود.

مدت‌هاست که شرکت‌ها و توسعه‌دهنده‌های برنامه‌های غیرمتمرکز و قراردادهای هوشمند از اوراکل‌ها برای رفع نیازهای خود استفاده می‌کنند. فرصت‌های نامحدودی برای استفاده از این فناوری در حوزه‌های مختلف وجود دارد که در ادامه به دو نمونه از آن‌ها اشاره می‌کنیم.

کاربرد اوراکل در دیفای

«دیفای» (DeFi) به حوزه‌ای از ارزهای دیجیتال گفته می‌شود که برنامه‌های غیرمتمرکز فعال در زمینه‌های مالی را تشکیل می‌دهد. برای همین است که اسم آن را DeFi گذاشته‌اند زیرا مخفف کلمه‌ی Decentralized Finance به معنی امورمالی غیرمتمرکز است.

بسیاری از پروژه‌های این حوزه برای کارکرد درست خود نیازمند دستیابی به داده‌های بیرونی از جمله قیمت لحظه‌ای ارزهای دیجیتال هستند که اوراکل‌ها این کار را انجام می‌دهند. برای مثال پروژه‌ای مثل «پنکیک سواپ» (PancakeSwap) که یک صرافی غیرمتمرکز برای خرید و فروش مستقیم ارزهای دیجیتال است، از اوراکل‌ها برای دریافت قیمت رمز ارزهای در حال معامله استفاده می‌کند.

کاربرد اوراکل در بازی‌ های بلاک چینی و ان اف تی

ان ‌اف ‌تی (NFT) یا توکن غیرقابل‌ تعویض به توکن‌هایی گفته می‌شود که هرکدام ویژگی‌ها و مشخصات خاصی نسبت به دیگر واحدها دارند. این روزها معمولاً ان ‌اف ‌تی‌ها را به شکل تصاویر، ویدیوها و آثار هنری دیجیتالی می‌بینیم که به لطف ثبت شدن در بلاک چین به قیمت‌های گزافی به فروش می‌روند.

شرکت‌های مختلف می‌توانند در پروژه‌های خود پا را فراتر گذاشته و ان‌ اف ‌تی‌های پویا ایجاد کنند. برای مثال می‌توانند براساس اتفاقاتی که در دنیای واقعی به وقوع می‌پیوندد مشخصات و ویژگی‌های ان‌ اف ‌تی خود را تغییر دهند که این اطلاعات دنیای واقعی به کمک اوراکل‌ها در اختیار آن‌ها قرار می‌گیرد.

همچنین بسیاری از بازی‌های بلاک چینی از آنجایی که ان‌ اف‌ تی‌های کاربران را به شکل تصادفی تولید می‌کنند، نیاز به یک تابع تصادفی‌ساز قابل اعتماد دارند. با اینکه خود سازنده‌های چنین بازی‌هایی هم می‌توانند به راحتی یک تابع تصادفی‌ساز ایجاد کنند ولی برای جلب اعتماد کاربران و حصول اطمینان از کاملاً تصادفی بودن ان ‌اف‌ تی‌های ساخته شده از اوراکل‌ها استفاده می‌کنند.

پروژه‌های برتر فعال در زمینه‌ اوراکل

چین لینک، بند پروتکل، ای‌پی‌آی۳ از جمله اوراکل‌های برتر حوزه‌ی رمز ارزها هستند.

بدون شک بهترین اوراکل بازار در حال حاضر «چین لینک» (Chainlink) است که شاید بارها اسم آن را شنیده باشید. ارز دیجیتال محلی این اوراکل «لینک» نام دارد که با نماد LINK در صرافی‌های مختلف خرید و فروش می‌شود. جالب است بدانید که در زمان نگارش این مقاله، رمزارز لینک در رتبه‌ی ۲۳ برترین ارزهای دیجیتال از نظر ارزش بازار قرار دارد و در محدوده‌ی ۱۸ دلاری خرید و فروش می‌شود.

از دیگر پروژه‌های فعال در این زمینه می‌توان به UMA، API3 و Band Protocol اشاره کرد.

سخن پایانی

به جرات می‌توان گفت که بدون وجود اوراکل‌ها، پروژه‌های بلاک چینی هیچ وقت نمی‌توانستند پتانسیل واقعی خود را نشان دهند. دلیل آن هم کاملاً واضح است؛ هر پروژه‌ای برای اینکه بتواند کاربرد داشته باشد باید به داده‌های مختلف دسترسی پیدا کند و از آنجایی که بیشتر این داده‌ها از منابع بیرون از بلاک چین به دست می‌آیند، وجود عاملی مثل اوراکل‌ها ضروری است.

در این مقاله با مفهوم و انواع Oracle آشنا شدیم و دیدیم که چگونه اوراکل‌های غیرمتمرکز مشکل اعتماد به داده‌های بیرونی را حل می‌کنند. همچنین در مورد کاربردهای اوراکل و پروژه‌های موفق در این زمینه صحبت کردیم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا