اوراکل (oracle) رابطی بین قراردادهای هوشمند و دنیای واقعی است که با استفاده از آن میتوان بسیاری از چالشهایی را که تکنولوژي بلاکچین با آن روبروست، حل نمود. در حال حاضر، در بسیاری از اپلیکیشنهای غیرمتمرکز از اوراکلها استفاده میشود تا بتوان با استفاده از آنها به توسعه برنامههایی پرداخت که نیازهای موجود در دنیای واقعی را پاسخ میدهند.
اوراکلها در شبکههای بلاک چینی زمانی به وجود آمدند که توسعهدهندگان توانستند با استفاده از قراردادهای هوشمند به توسعه dApps بپردازند. قراردادهای هوشمند اولین بار در شبکهی اتریوم به وجود آمدند و این امکان را برای توسعه دهندگان به وجود آوردند تا بتوانند ایدههای خود را در کمترین زمان ممکن در شبکهی بلاکچین پیادهسازی نمایند؛ بدون اینکه درگیر چالشهای سطح پایین در شبکهی بلاک چین شوند.
در حال حاضر، قراردادهای هوشمند در بسیاری از شبکههای بلاک چین مورداستفاده قرار میگیرند و همین باعث شده است تا در اوراکلها نیز کاربرد بیشتری پیدا کنند. اوراکل یکی از ضروریترین تکنولوژيها در توسعه بسیاری از قراردادهای هوشمند است. به همین دلیل، در سالهای اخیر کمپانیهای زیادی در جهان بودهاند که به ایجاد سرویسهای اوراکل پرداختهاند تا بتوانند با استفاده از آن، نیازهایی را که در قراردادهای هوشمند وجود دارد، رفع نمایند.
توسعهدهندگان قراردادهای هوشمند میتوانند به استفاده از اوراکلهایی که توسط شخص ثالث به وجود آمده است، بپردازند یا بهصورت شخصی اوراکل خود را توسعه دهند. نکتهای که در رابطه با اوراکل باید بدانید، این است که این سرویسها در حال حاضر در مراحل ابتدایی پیدایش خود هستند و هنوز با مشکلاتی دستوپنجه نرم میکنند.
برای اینکه بدانید اوراکل چیست و دقیقاً در چه زمینههایی از آن استفاده میشود، پیشنهاد میکنیم تا انتهای این مطلب با ما همراه باشید. چون قرار است بهصورت مفصل به این موضوع بپردازیم.
اوراکل چیست؟
با وجود اینکه استفاده از اوراکل در بسیاری از پروژههای بلاک چینی ضروری است، اما هنوز هم توسعهدهندگانی وجود دارند که دقیقاً نمیدانند اوراکل چیست و در چه جاهایی باید از آن استفاده کرد.
در رابطه با اینکه اوراکل چیست، بهطور خلاصه میتوان گفت که اوراکلها سرویسهایی هستند که با استفاده از آنها میتوان به ایجاد ارتباط میان قراردادهای هوشمند ( Smart Contracts) و دنیای واقعی پرداخت.
همانطور که میدانید، قراردادهای هوشمند در واقع اپلیکیشنها و کدهایی هستند که بر بستر شبکههای بلاکچین توسعه داده میشوند. بهصورت پیشفرض، با استفاده از قراردادهای هوشمند تنها این امکان وجود دارد تا با سایر قراردادهای هوشمند که در یک بلاک چین وجود دارند، به برقراری ارتباط پرداخت و نمیتوان ارتباطات خارج از زنجیره را برقرار نمود. این در حالی است که بسیاری از مواقع این نیاز وجود دارد تا برخی اطلاعات را خارج از شبکه دریافت کرد.
میتوان با نوشتن یک اپلکیشن در شبکهی اتریوم به دریافت اطلاعات از شبکهی ترون پرداخت.
اوراکل سرویسی است که میتوان با آن بهراحتی مشکل عدم دسترسی به اطلاعات خارج از شبکهی بلاک چین را رفع کرد. با استفاده از اوراکل این امکان وجود دارد تا اطلاعات مختلف را از دنیای واقعی و توسط منابع کاملاً متفاوت دریافت کرد و هیچ محدودیتی در این زمینه وجود نخواهد داشت.
جالب است بدانید که با اوراکل میتوان حتی به تبادل اطلاعات با سایر شبکههای بلاکچین نیز پرداخت؛ بهطور مثال، این امکان وجود دارد تا با نوشتن یک اپلکیشن در شبکهی اتریوم به دریافت اطلاعات از شبکهی ترون پرداخت.
روش کار اوراکل
برای اینکه با روش کار اوراکلها بیشتر آشنا شوید و بدانید دقیقاً اوراکل چیست، باید با مفهوم API آشنا باشید. APIها رابطهایی هستند که نرمافزارها برای ایجاد ارتباط با یکدیگر از آن استفاده میکنند. با استفاده از API این امکان وجود دارد تا اطلاعات مختلف را با استفاده از شبکهی اینترنت یا سایر تکنولوژیهای ارتباطی منتقل کرد.
در اوراکل برای دریافت اطلاعات از منابع خارج از شبکهی بلاک چین، از API یا وبسرویسهایی استفاده میشود که توسعهدهندگان میتوانند شخصاً آنها را ایجاد کنند یا از APIهای کمپانیهای مختلف استفاده نمایند.
زمانی که اوراکل به اطلاعات خارج از شبکهی بلاکچین نیاز دارد، یک درخواست به API های موردنظر ارسال میکند و پاسخی را که دریافت میکند، به قراردادهای هوشمند ارسال مینماید. نکتهای که باید به آن توجه داشته باشید، این است که اطلاعات دریافت شده از API ممکن است در برخی از موارد اعتبار کافی نداشته باشد و باعث شود تا امنیت قراردادهای هوشند با چالش روبرو شود.
انواع اوراکل
اوراکلها انواع مختلفی دارند که قراردادهای هوشمند با توجه به نیازی که دارند، به استفاده از آنها خواهند پرداخت. بهتر است بدانید تاکنون به دلایل مختلفی که وجود دارد، اوراکلهای نرمافزاری بیشتر از سایر اوراکلها مورداستفاده قرار گرفتهاند؛ اما در حال حاضر نمیتوان گفت که بهترین اوراکل چیست. انواع اوراکلهای رایج عبارتند از:
اوراکل نرمافزاری
اوراکل نرمافزاری یا Software oracles سرویسهایی هستند که امکان برقراری ارتباط قراردادهای هوشمند با منابع آنلاین را فراهم میکنند تا بدین طریق بتوان به دریافت اطلاعات مختلف در شبکهی بلاکچین پرداخت.
اوراکلهای نرمافزاری میتوانند اطلاعات موردنیاز خود را از وبسرویسها، سرورها و سایتهای مختلف دریافت کنند که در این زمینه هیچ محدودیتی وجود ندارد. حتی این امکان وجود دارد تا به توسعهی اوراکلهایی پرداخت که از رباتهای خزنده برای جمعآوری اطلاعات از سایتهای مختلف استفاده میکنند.
جالب است بدانید که اوراکلهای نرمافزاری فقط به جمعآوری اطلاعات از منابع آنلاین نمیپردازند؛ بلکه با استفاده از آنها میتوان بهصورت آنلاین و کاملاً لحظهای به دریافت اطلاعات پرداخت. در سالهای اخیر تعداد اوراکلهایی که به ارائه اطلاعات لحظهای (real-time) میپردازند، افزایش قابلتوجهی پیدا کرده است؛ چون این اوراکلها توانستهاند نیازهایی را که در این حوزه وجود داشته است، بهخوبی رفع نمایند.
در رابطه با اینکه بیشترین کاربردهای این نوع اوراکل چیست، باید بدانید که از اوراکلهای نرمافزاری میتوان برای دریافت اطلاعات لحظهای پروازها، قیمت داراییها و اطلاعات معاملات بازارهای مختلف استفاده کرد. علاوه بر این، این امکان وجود دارد تا با استفاده از این اوراکلها به ایجاد ارتباط با اپلیکیشنهای موبایل پرداخت و اطلاعات مختلفی را از آنها دریافت کرد.
اوراکل سختافزاری
اوراکلهای سختافزاری در آینده نزدیک بسیار پرکاربرد خواهند بود؛ چون با استفاده از آنها میتوان دستگاههای مختلف را به شبکهی بلاکچین متصل کرد. در واقع، اوراکل های سختافزاری در آینده باعث رشد قابلتوجه اینترنت اشیا خواهند شد و این امکان را به وجود خواهند آورد تا بتوان اطلاعات گوناگون را از دستگاههای مختلف جمعآوری کرد و آن را بهصورت کاملاً امن در شبکهی بلاکچین ثبت نمود.
بسیاری از کارشناسان در مورد کارکرد اوراکلهای سختافزاری اینطور بیان کردهاند که این اوراکلها باعث ترجمه رخدادهای دنیای واقعی به اطلاعاتی خواهند شد که میتوان آنها را به بهترین شکل ممکن در قراردادهای هوشمند ثبت کرد و اپلیکیشنهای فوقالعادهای را توسعه داد.
در رابطه با اینکه مثال واقعی از کاربردهای این نوع اوراکل چیست، باید بدانید که با استفاده از اوراکل سختافزاری میتوان بهراحتی محصولات فروشگاهی را با استفاده از بارکدخوان در شبکهی بلاکچین ثبت نمود یا به ثبت اطلاعات سنسورهای گجتهای هوشمند سلامتی در قراردادهای هوشمند پرداخت.
اوراکلهای ورودی و خروجی
اوراکلها را میتوان براساس جهت تبادل اطلاعات با دنیای بیرون، در دستههای مختلف قرار داد. اوراکلهای ورودی (Inbound oracle) اوراکلهایی هستند که با استفاده از آنها میتوان به دریافت اطلاعات پرداخت؛ مثلاً سرویسهایی که به دریافت اطلاعات مرتبط با قیمت سهام میپردازند، در واقع اوراکل ورودی هستند. اوراکلهای ورودی در حال حاضر بیشتر کاربرد دارند.
اوراکلهای خروجی (Outbound oracle) نوع دیگری از اوراکلها هستند که با استفاده از آنها میتوان به ارسال اطلاعات از قراردادهای هوشمند به نرمافزارهای خارج از شبکهی بلاکچین پرداخت. همچنین، این امکان وجود دارد تا با اوراکلهای خروجی اطلاعات را به شبکههای بلاکچین دیگر ارسال کرد.
در مورد اینکه دیگر کاربرد این نوع اوراکل چیست، بهتر است بدانید که از اوراکلهای خروجی میتوان برای کنترل نرمافزارها و دستگاههای فیزیکی در خارج از شبکهی بلاک چین استفاده کرد. برای مثال، این امکان وجود خواهد داشت تا با استفاده از اوراکل خروجی به بازوبسته کردن قفلهای هوشمند پرداخت.
اوراکلهای متمرکز و غیر متمرکز
اوراکلها را میتوان از نظر سطح اعتمادپذیری به اوراکلهای متمرکز و غیرمتمرکز تقسیم کرد. هر کدام از این اوراکلها مزایا و معایبی دارند که باعث شدهاند بتوان در موارد مختلف به استفاده از آنها پرداخت. اما بهترین اوراکل چیست؟
قبل از اینکه به این موضوع بپردازیم که اوراکلهای متمرکز بهتر هستند یا غیرمتمرکز، باید این را بدانید که بهطور کلی، محبوبیت شبکهی بلاکچین و پیدایش آن به این علت بوده است که با استفاده از آن این امکان به وجود آمد تا بتوان بدون استفاده از شخص ثالت، به ایجاد اعتماد در اپلیکیشنهای مختلف پرداخت و کنترل و حاکمیت متمرکز را حذف کرد.
اوراکلهای متمرکز بهدلیل اینکه اطلاعات خود را از یک منبع متمرکز دریافت میکنند، ماهیت اپلیکیشنهای غیر متمرکز را زیر سؤال میبرند و باعث به وجودآمدن مشکلات مختلفی در قراردادهای هوشمند و اپلیکیشنهای غیر متمرکز میشوند. به همین دلیل، بسیاری از توسعهدهندگان ترجیح میدهند تا به استفاده از اوراکلهای غیر متمرکز بپردازند.
در حال حاضر، در بسیاری از شبکههای بلاک چین امکان ایجاد اوراکلهای غیر متمکز برای سایر بلاک چینها وجود دارد. بدین طریق، این امکان وجود خواهد داشت تا توسعه دهندگان بتوانند با استفاده از این اوراکلها به توسعه اپلیکیشنهای کاملاً امن و قابل اعتماد بپردازند.
اوراکل انسانی
اوراکل انسانی نوعی دیگر از اوراکلهاست که اگرچه در حال حاضر کمتر در اپلیکیشنهای غیر متمرکز استفاده شده است، اما در آیندهای نزدیک در بسیاری از اپلیکیشنها میتوان برای دریافت اطلاعات از آن استفاده کرد.
با استفاده از Human Oracle این امکان وجود دارد تا با سطح اعتمادپذیری بسیار بالا به دریافت اطلاعات واردشده توسط اشخاص پرداخت. در این نوع اوراکلها، هویت اشخاص با استفاده از امضای دیجیتال تأیید میشود، به همین دلیل، میتوان این اطمینان را داشت که اطلاعات وارد شده دقیقاً توسط فرد موردنظر وارد شده است.
در اوراکلهای انسانی امکان تقلب بسیار پایین است؛ بهطوری که در مقایسه با سایر اوراکلها میتوان آن را جزو امنترین موارد دانست.
چالشهای پیش روی اوراکلها
اوراکلها در سالهای اخیر توانستهاند بسیاری از چالشهایی را که با آن روبرو شدهاند، برطرف نمایند. در حال حاضر، اوراکلهای زیادی وجود دارند که توسعهدهندگان برای ایجاد قراردادهای هوشمند از آن استفاده میکنند، اما بهتر است بدانید هنوز هم چالشهای زیادی پیش روی اوراکلهاست؛ بهطوری که در برخی از اپلیکیشنها امکان استفاده از آنها نخواهد بود.
در رابطه با اینکه مهمترین چالش اوراکل چیست، نظرهای کارشناسانه زیادی وجود دارد؛ اما مهمترین چالشی که در حال حاضر وجود دارد، این است که توسعهدهندگان زمانی که به استفاده از یک اوراکل در قراردادهای هوشمند میپردازند، باید این ریسک را قبول کنند که در صورت به وجودآمدن هرگونه مشکل برای اوراکل، شاهد اختلال در اپلیکیشنهای خود باشند.
با توجه به حساسیت بالایی که در رابطه با اوراکلها وجود دارد، باید توسعه آنها بهطوری انجام شود که امکان به وجودآمدن هرگونه خطا در کارکرد آنها از بین رود. تنها در این صورت است که توسعهدهندگان مجاب خواهند شد تا در پروژههای خود به استفاده از اوراکلها بپردازند.
استفاده از اوراکل در قراردهای هوشمند مشکلات دیگری را نیز ممکن است به وجود آورد. کارشناسان معتقد هستند که با استفاده از اوراکلها امکان به وجودآمدن برخی حفرههای امنیتی در قراردادهای هوشمند وجود خواهد داشت.
حملۀ MITM یا مرد میانی یکی از خطراتی است که اپلیکیشنهای هوشمند که از اوراکل استفاده میکنند، با آن روبرو خواهند بود. با استفاده از این روش، هکرها میتوانند به جریان اطلاعاتی که میان قرارداد هوشمند و اوراکل وجود دارد، دسترسی پیدا کنند و به تغییر آنها بپردازند.
دیگر مشکل استفاده از اوراکل این است که اوراکلها تا زمانی که خارج از شبکهی اصلی بلاکچین هستند، امنیت کافی را برای کاربران ایجاد نخواهند کرد؛ چون در این صورت نمیتوانند به استفاده از مکانیسم امنیتی که در شبکهی بلاکچین برای کاربران در نظر گرفته شده است، بپردازند و همین باعث میشود امنیت آنها در شبکه قابل تأیید نباشد.
سوالات متداول
اوراکل رابطی است که با استفاده از آن میتوان به تبادل اطلاعات میان قراردادهای هوشمند و محیط خارج از بلاکچین پرداخت.
- اوراکلها چه کاربردی دارند؟
از اوراکلها میتوان برای دریافت قیمت ارزها، اطلاعات پرواز، اطلاعات سنسورها و موارد این چنینی استفاده کرد.
- در چه بلاکچینهایی میتوان از اوراکل استفاده کرد؟
در تمام شبکههای بلاکچین که از قرارداهای هوشمند پشتیبانی میکنند، میتوان به استفاده از اوراکل پرداخت.