اوراکل ها (Oracles) خدمات شخص ثالثی هستند که به قراردادهای هوشمند درون بلاکچین ها اجازه می دهند خارج از اکوسیستم خود اطلاعاتی دریافت کنند.
اوراکل ها به عنوان منبع اطلاعات به قراردادهای هوشمند امکان دسترسی به داده های خارجی را که در بلاکچین نیستند فراهم می کند. به عبارت دیگر اوراکل ها لایه هایی می باشند که داده های درون زنجیره ای (on-chain) مرتبط به رویدادهای دنیای واقعی را تأیید کرده و سپس داده های انباشته شده را به قراردادهای هوشمند ارسال می کنند.
در حال حاضر، شرکت هایی که در حوزه «امور مالی غیرمتمرکز» (DeFi) فعالیت می کنند، برای دریافت داده های درون زنجیره ای به اوراکل ها متکی هستند. در واقع، هفت مورد از 10 برنامه برتر دیفای به دلیل کمبود سرعت و امنیت اوراکل های غیرمتمرکز، توسط اوراکل های متمرکز یا نیمه متمرکز پشتیبانی می شوند.
نیاز به اوراکل ها به این دلیل بوجود آمده است که بلاکچین ها، داده های درون زنجیره ای در اکوسیستم های خود ندارند. این اطلاعات معمولاً از صرافی های بزرگ کریپتو مانند بایننس و کوین بیس تهیه می شوند که دارای رابط های برنامه نویسی کاربردی هستند و به اوراکل ها امکان پرس و جو (Query) را فراهم می کنند.
اوراکل ورودی داده های خارج از زنجیره را به بلاکچین یا قرار داد هوشمند منتقل میکند و برعکس اوراکل خروجی عمل میکند.برای مثال در یک معامله خودکار میتوانند قیمت های لحظه ای را اطلاع رسانی کنند و یا برنده شدن یک شخص در شرط بندی را اعلام کنند تا پول شخص پرداخت شود.
این اوراکل ها برعکس اوراکل ورودی عمل کرده یعنی وقایعی ک در قراردادهوشمند یا بلاکچین رخ داده است را به خارج از زنجیره منتقل میکنند.از نظر تئوری موارد استفاده از اوراکل های خروجی از اوراکل ورودی کمتر است درحالی که در عمل موارد استفاده از این اوراکل بی نهایت است.برای مثال وقتی یک تراکنش در بلاکچین انجام شده،پولی به حساب واریز شده و یا منتقل شده،برای اطلاع رسانی این موضوع به دنیای خارج از بلاکچین از اوراکل های خروجی استفاده میشود.
بعضی وقت ها لازم است برای اینکه داده ای به بلاکچین منتقل شود از داده های دنیای واقعی استفاده کنیم.درواقع این نوع اوراکل رویداد های دنیای واقعی را به زبان دیجیتال که برای قراردهای هوشمند قابل فهم است،ترجمه میکند.این نوع اوراکل در انتقال اطلاعات از سنسورهای الکترونیکی،اسکنر بارکد و سایر دستگاه های خواندن قابل استفاده هستند.برای مثال میتوان بررسی کرد که ایا یک کامیون که کالایی را حمل میکرده به مقصد رسیده است یا خیر؟تا در صورت رسیدن اقدامات بعدی انجام شود.همچنین در اینترنت اشیا (IOT) و RFID نیز از این نوع اوراکل استفاده میشود.
مورد استفاد ترین اوراکل ها جزو این دسته هستند.به اوراکل هایی گفته میشود که اطلاعات را از روی منابع انلاین به بلاکچین منتقل میکننند.این اطلاعات میتوانند از پایگاه های داده انلاین،سرور ها،وب سایت ها و اساسا هر منبع داده در وب به دست بیایند.این نوع اوراکل از سرعت بالایی برخوردار است.برای مثال نرخ لحظه ای ارز،قیمت یک دارایی دیجیتال،اطلاعات پرواز ،همه مواردی هستند که جزو اوراکل های نرم افزاری دسته بندی میشوند.
اوراکلی است که توسط یک نهاد یا یک شخص کنترل میشود،و این اوراکل تنها ارائه دهنده اطلاعات قرارداد هوشمند است.استفاده از تنها یک منبع اطلاعاتی مخاطره امیز است و تمام تاثیرات یک قرارداد هوشمند تنها وابسته به یک نهاد است.به راحتی این نهاد یا شخص قابلیت این را دارد که قرارداد هوشمند را با خطر مواجه کند.مشکل اصلی اوراکل متمرکز این است که یک منبع بیشتر ندارد و در برابر هک ها،حملات و اسیب پذیری ها مقاومت کمتری دارد.
اوراکل های غیرمتمرکز مثل بلاکچین های عمومی یک هدف مشابه دارند و ان کاهش ریسک متقابل است.این نوع اوراکل برای اینکه اعتماد به اطلاعات وارد شده به قرارداد هوشمند را بالا ببرد،تنها به یک منبع اکتفا نمیکند و به منابع مختلفی متکی است.اوراکل های غیر متمرکز برای تعیین اعتبار اطلاعات،از سایر اوراکل ها استفاده میکنند به همین خاطر به اوراکل غیرمتمرکز،اوراکل”اجماع” نیز گفته میشود.بعضی از پروژه های بلاکچین خدمات استفاده از اوراکل غیرمتمرکز را در اختیار بلاکچین های دیگر قرار میدهند و بدین ترتیب اطلاعات وارد شده به هرکدام از قرارداد های هوشمند از طریق این اوراکل ها تایید میشود.این نوع اوراکل میتواند در پیش بینی مفید باشد،چرا که اعتبار یک پیش بینی را میتوان با اجماع سنجید.در واقع هدف اوراکل های غیرمتمرکز مثل بلاکچین های غیرمتمرکز این است که به بک منبع اعتماد نکنید بلکه برای تایید یک اطلاعات به منابع مختلفی تکیه کنید و بر اساس رای اکثریت تصمیم نهایی را بگیرید.
از دسته اوراکل هایی که صرفا برای استفاده در یک قرارداد هوشمند استفاده میشود.این بدین معنی است که اگر کسی بخواهد چندین قرار داد هوشمند را به کار بگیرد باید متناسب با هرکدام ،اوراکل خاص خودش را استفاده کند.مشکل این اوراکل این است که خیلی وقت گیر و گران قیمت است و برای شرکت هایی که میخواهند داده هارا از منابع مختلف استخراج کنند اصلا مناسب نیست.ولی نکته خوب ماجرا این است که میتوان یک اوراکل خاص را برای یک نیاز خاص تعبیه کرد که در بعضی موقعیت ها بسیار کارامد است.
بعضی اوقات یک فرد متخصص در یک زمینه خاص میتواند یک نوع اوراکل باشد.این افراد میتوانند صحت اطلاعات را از طریق منابع مختلف،بررسی و تحقیق کنند و این اطلاعات را به زبان قابل فهم قرارداد هوشمند ترجمه کنند.از انجا که این اوراکل های انسانی باید با رمز نگاری ،احراز هویت کنند،احتمال کلاهبرداری ،جعل هویت و ارائه داده های اشتباه نسبتا کم است.
پروتکل های وام دهی مانند کامپاند، میکردائو (MakerDAO)، یونی سواپ (Uniswap) و آوه (Aave) در هنگام اجرا بر روی بلاک چین اتریوم از اوراکل ها برای دریافت داده های خارجی استفاده می کنند.
میکردائو از محبوب ترین پروتکل های وام دهی دیفای می باشد که توکن دای (Dai) آن به دلار آمریکا وابسته است و توسط دارایی های کریپتو پشتیبانی می شود. میکردائو با استفاده از یک اوراکل ماژول قیمت لحظه ای دارایی ها را تعیین می کند. این ماژول متشکل از آدرس های لیست سفید اوراکل ها و یک قرارداد جمع کننده است. اوراکل ها به طور متناوب بروزرسانی های قیمت را به یک «جمع کننده» (aggregator) که قیمت متوسطی را تعیین می کند، ارسال می کنند. سپس به عنوان قیمت مرجع در پلتفرم مورد استفاده قرار می گیرد.
کامپاند پروتکل بازار پول است که به کاربران امکان می دهد سود کسب کنند و یا به عنوان وثیقه دارایی قرض بگیرند. کامپاند همچنین مشابه میکردائو از اوراکل ها برای جمع آوری اطلاعات مربوط به قیمت استفاده می کند. سپس این اطلاعات به داده های قیمت خود ارسال می شود و توسط “سرپرستانی” که صاحبان توکن بومی کامپاند به نام COMP هستند، مدیریت و کنترل می شود.
ازآنجاییکه قراردادهای هوشمند تصمیمات را بر اساس اطلاعات داده شده توسط اوراکلها اجرا میکنند، برای یک اکوسیستم بلاکچین سالم، حیاتی هستند. اصلیترین چالش در طراحی اوراکلها این است که اگر ماهیت اوراکل در معرض خطر قرار گیرد، قرارداد هوشمندی که به آن اتکا دارد نیز به خطر میافتد. از این جریان اغلب با عنوان ایراد اوراکل (The Oracle Problem) یاد میشود.
ازآنجاییکه اوراکلها از توافق عمومی بلاکچین تبعیت نمیکنند، در نتیجه شامل مکانیزمهای امنیتی که بلاکچینهای عمومی ارائه میدهند، نیستند. موضوع اعتماد در اوراکلهای ثالث و غیرمتمرکز و نحوه اجرا شدن قراردادهای هوشمند، همچنان به عنوان مسئله ای حل نشده باقی مانده است.
حملاتی که انسان در آنها نقش دارد نیز میتوانند یک تهدید باشند. بدین صورت که فردی با نیت بد، به جریان دادههای بین اوراکل و قرارداد دسترسی پیدا کند و دادهها را تحریف و یا جعل نماید.