بلاک چین و ارزهای رمزنگاری شده بدون واسطه و نهادهای متمرکز مانند دولتها یا بانکها کار میکنند و این همان ویژگی منحصر به فرد آنها است؛ اما گاهی برای تنظیم قراردادهای هوشمند نیاز به اطلاعات خارج از دنیای بزرگ خود نیاز دارند که اوراکل (Oracle) راه حل این مشکل است.
اوراکلها راهی برای دریافت و ارسال امن دادههای خارج از زنجیره بلاکها به محیط داخل و خارج بلاک چین هستند. در ادامه، به بررسی اینکه اوراکل چیست، چگونه کار میکند و چه ارتباطی بین آن با قراردادهای هوشمند وجود دارد صحبت خواهیم کرد و در آخر برترین پروژههای اوراکل را معرفی میکنیم.
اوراکل چیست؟
اوراکل (oracle) در پلتفرم بلاک چین، اوراکل اساسا یک منبع اطلاعات است که به عنوان پل ارتباطی بین منابع خارجی و قراردادهای هوشمند مورد استفاده قرار میگیرد. اوراکل هم با منابع داده خارجی در ارتباط است و هم به تایید صحت اطلاعات میپردازد. در ادامه این مقاله در ارزتودی به معرفی مفهوم اوراکلها و دادههایی که توسط آنها برای استفاده در قراردادهای هوشمند استفاده میشود پرداختهایم.
همانطور که گفتیم بلاک چین و قراردادهای هوشمند نمیتوانند به دادههای خارج از زنجیره (دادههای off chain) دسترسی پیدا کنند؛ همچنین این را هم میدانیم که بسیاری از قراردادها، به اطلاعات و دادههای مربوط به دنیای خارج از زنجیره برای اجرای توافق نیاز دارند.
اینجا جایی است که اوراکلها وارد عمل میشوند و با پرس و جو (Query) اطلاعاتی را که قراردادهای هوشمند نمیتوانند به تنهایی بهدست آورند را مییابند؛ در نهایت قراردادهای هوشمند با استفاده از این اطلاعات و منابع اجرا میشوند.
رابطه بین اوراکل و قراردادهای هوشمند
قراردادهای هوشمندی که روی شبکههای بلاک چین اجرا میشوند، باعث افزایش کارایی، شفافیت دادهها و قرارداد، کاهش هزینههای معاملات بین طرفین و همچنین کاهش ریسک میشوند؛ اما با این وجود برخی محدودیتهایی برای Smart Contractها وجود دارد.
از آنجا که نیاز به دادههای خارجی در بلاک چین و قراردادهای هوشمند در حال افزایش است، نیاز به اوراکل و فناوریهای مربوط به آن بیش از پیش حس میشود. این احساس نیاز روزافزون به اوراکلها نشاندهنده گسترش مداوم سیستمهای بلاک چین به موارد عملی و واقعی است که در آنها دقت دادهها بسیار اهمیت دارد.
قرارداد هوشمند (Smart Contract) چیست؟
به طور ساده بخواهیم بگوییم قرارداد هوشمند، برنامه کامپیوتری خودکاری است که به عنوان یک عملیات روی بلاک چین معرفی میشود؛ این برنامههای کد نویسی شده به صورت مستقل، شفاف و بدون واسطه، تحت شرایط خاصی که طرفین قرارداد مشخص کردهاند اجرا میشوند.
Smart Contract نیاز به شخص ثالث و واسط برای اجرای قرارداد ندارد؛ همچنین مانند بلاک چین، پس از تنظیم و تایید کامل و ورود به زنجیره بلاکها، قابل تغییر نیستند. با این تفاسیر، برنامهنویسهای قراردادهای هوشمند برای کدنویسی آنها باید دقت بسیار زیادی به خرج دهند.
با اینکه قراردادهای هوشمند مزایای زیادی دارند اما به علت محدود بودن دادههای درون زنجیرهای (on chain) و نداشتن ظرفیت کافی، برای تعامل با دادههای دنیای خارجی و اجرا شدن در محیط خارج از بلاک چینی که در آن قرار دارند، دارای محدودیتهایی نیز هستند که دقیقا اینجا اوراکل وارد داستان میشود.
روش کار یک اوراکل چگونه است؟
اوراکل برای دریافت اطلاعات مورد نیاز قراردادهای هوشمند از خارج شبکه، از وبسرویسها و APIهای مربوط به این زمینه استفاده میکند. خوب است بدانید که نرمافزارها برای برقراری ارتباط با یکدیگر از APIها استفاده میکنند؛ یعنی API به آنها این امکان را میدهد تا از طریق اینترنت یا سایر روشهای انتقال اطلاعات، منابع و دادههای مورد نیاز را منتقل کنند.
هنگامی که قرارداد هوشمند به اطلاعات خارج از شبکه نیاز دارد، به اوراکل اطلاع میدهد و اوراکل به API مورد نظر درخواست ارسال میکند و در نهایت پاسخ را از آن دریافت و به قرارداد هوشمند میدهد.
انواع اوراکل (oracles)
اوراکلها انواع مختلفی دارند که قراردادهای هوشمند بر اساس نیازی که دارند، از آنها استفاده میکنند. انواع Oracle عبارتند از:
۱. اوراکلهای نرمافزاری و سختافزاری (Hardware and software oracles)
اوراکل بر اساس نوع دریافت دادهها به دو نوع نرمافزاری و سختافزاری تقسیم میشوند؛ اوراکلهای سختافزاری دادهها را از دنیای فیزیکی دریافت و به بلاک چین ارسال میکنند، در حالی که اوراکلهای نرمافزاری دادهها را از منابع دیجیتالی و آنلاین مانند وبسایتها، سرورها یا پایگاههای داده دریافت میکنند.
اطلاعاتی مانند دادههای حسگرهای حرکت دوربین و حسگرهای شناسایی فرکانس رادیویی (RFID) میتوانند توسط اوراکلهای سخت افزاری دریافت و ارسال شوند؛ دادههای آنلاین و لحظهای (real time) مانند نرخ ارز دیجیتال، تغییرات قیمت و اطلاعات سفر را اوراکل های نرم افزاری دریافت و ارسال میکنند.
در حال حاضر اوراکلهای نرمافزاری بسیار پرکاربردتر از اوراکلهای سختافزاری هستند؛ اما در آیندهای نه چندان دور استفاده از اوراکلهای سختافزاری بیشتر خواهد شد. این اوراکلها میتوانند دستگاههای مختلف را به شبکههای بلاک چین متصل کنند؛ در واقع میتوان گفت Hardware oracle باعث رشد اینترنت اشیا میشود و اطلاعات را از اشیا و دستگاههای دنیای واقعی جمعآوری و به صورت امن به بلاک چین انتقال میدهد.
۲. اوراکلهای ورودی و خروجی (Inbound and outbound oracles)
اوراکلها بر اساس جهت تبادل اطلاعات، یک کانال ارتباطی دو طرفه با بلاک چین ایجاد میکنند تا دادهها را به داخل یا خارج از زنجیره ارسال کنند. اوراکلهای ورودی دادهها و اطلاعات دنیای خارج از زنجیرهها (off chain) را دریافت میکنند و اوراکلهای خارجی نتیجه قراردادهای هوشمند را از بلاک چین و Smart Contract به خارج از زنجیره بلاکها ارسال میکنند.
به عنوان مثال سرویسهایی که اطلاعات سهام و ارز را لحظهای دریافت میکنند، اوراکل ورودی هستند. از اوراکلهای خروجی میتوان به کنترل نرمافزارها و دستگاههای خارجی (مثلا باز و بسته کردن دربهای هوشمند) اشاره کرد.
۳. اوراکلهای متمرکز و غیرمتمرکز (Centralized and decentralized oracles)
بر اساس سطح اعتماد، اوراکلها به دو دسته متمرکز و غیر متمرکز تقسیم میشوند. اوراکلهای متمرکز از یک منبع داده، اطلاعات را برای قراردادهای هوشمند تامین میکنند؛ بنابراین کارایی و صحت قرارداد هوشمند، به منبع اطلاعاتی آن اوراکل بستگی دارد.
چنین اوراکلهایی که دادهها و اطلاعات خود را از یک منبع داده دریافت میکنند، سطح امنیت بالایی ندارند؛ زیرا در صورت وجود رخنه به آن منبع داده، اطلاعات قرارداد هوشمند مورد دستکاری قرار میگیرد.
نکته: دقت و اثربخشی قراردادهای هوشمند به کیفیت دادههایی که دریافت میکنند بستگی دارد؛ در نتیجه اگر اوراکل متمرکز اطلاعات صحیحی را ارسال نکند، امنیت قرارداد به خطر میافتد.
اوراکلهای غیرمتمرکز یا شبکه اوراکلهای غیرمتمرکز، گروهی از اوراکلهای مستقل هستند که دادهها را در اختیار یک بلاک چین قرار میدهند. هر گره یا اوراکل مستقل در شبکه غیرمتمرکز اوراکل، به طور مستقل دادهها را از یک منبع خارج از زنجیره دریافت میکند و آن را روی زنجیره میآورد؛ سپس دادههای بدست آمده اجماع میشوند تا سیستم بتواند به یک مقدار قطعی و صحیح برسد.
۴. اوراکلهای اختصاصی (Contract-specific oracles)
اوراکل اختصاصی، فقط برای استفاده توسط یک قرارداد هوشمند طراحی میشود؛ یعنی اگر کسی بخواهد چندین قرارداد هوشمند تنظیم کند، لازم است اوراکلهای مختلف ویژه هر قرارداد را بسازد.
استفاده از این نوع اوراکلها بسیار پرهزینه و زمانبر است؛ معمولا شرکتهایی که از دادهها و منابع مختلفی استفاده میکنند، این رویکرد را عاقلانه نمیبینند.
۵. اوراکلهای انسانی (Human oracles)
گاهی افراد با دانش تخصصی در یک بخش خاص، میتوانند به عنوان اوراکل عمل کنند. آنها پس از تحقیق و تایید صحت اطلاعات از منابع مختلف، دادههای جمعآوری شده را به قراردادهای هوشمند ترجمه میکنند. از آنجا که اوراکلهای انسانی میتوانند هویت خود را با استفاده از رمزنگاری تأیید کنند، امکان جعل هویت توسط کلاهبرداران و ارائه دادههای مخرب نسبتاً کم است.
اوراکلها با چه چالشهایی رو به رو هستند؟
با توجه به توضیحات قبل میتوان گفت اوراکلها نقشی کلیدی در یک بلاک چین دارند؛ زیرا نتیجه و تصمیمات نهایی یک قرارداد هوشمند به دادهها و اطلاعات ارسالی اوراکلها بستگی دارد. با این وجود بزرگترین چالشی که اوراکلهای بلاک چین با آن روبهرو هستند دستکاری منابع دادههایی است که از آنها استفاده میکنند. اگر منابع داده دستکاری شوند، ممکن است نتایج قراردادهای هوشمندی که بر آن اوراکل متکی هستند اطلاعات غلطی را نشان دهند.
چالش اصلی طراحی اوراکل این است که اگر اوراکل به خطر بیفتد، قرارداد هوشمند متکی بر آن نیز به خطر می افتد. این اغلب به عنوان مشکل اوراکل نامیده میشود.
کاربردهای اوراکل در برنامههای غیر متمرکز (DApps)
همانطور که گفتیم اوراکل لایهای برای پر کردن شکاف بین دنیای خارج از زنجیره و قراردادهای هوشمند است. اکنون نمونههایی از دادههایی که اوراکلها به پلتفرمهای دیگر ارسال میکنند را بررسی میکنیم:
- دادههای زمانی
- دادهها و اطلاعات بازار سرمایه، مانند قیمتگذاریهای سهام و ارزها
- دادههای آب و هوا
- اطلاعات موقعیت جغرافیایی
- اطلاعات رویدادهای ورزشی برای نتایج پیشبینی
- آمار و اطلاعات پروازها
برترین پروژههای اوراکل در بلاک چین
در ادامه پروژههای برتر اوراکل را که در بلاک چین اجرا شدهاند را معرفی میکنیم:
۱. چین لینک
چین لینک ChainLink اوراکلی است که دادهها را از منابع خارج از بلاک چین (off chain) به قراردادهای هوشمند درون بلاک چین اسال میکند. اکوسیستم چینلینک از بیش از ۵۰ پروژه بلاک چین و ۱۰۰ شرکت نرم افزاری تشکیل شده است و در سال ۲۰۲۰، به یکی از برترین ارائهدهندگان اوراکل در بلاک چین تبدیل شد.
۲. بند پروتکل
بند پروتکل Band Protocol یک اوراکل غیرمتمرکز است که دادهها و APIهای دنیای واقعی را جمعآوری و سپس آن را به قراردادهای هوشمند ارسال میکند. اساساً، این نرم افزار برای تشویق کاربرانی توسعه یافته که دادههای دنیای واقعی را به برنامههای غیرمتمرکز در حال اجرا بر روی بلاک چین ارائه می دهند.
۳. دیا
دیا DIA یک بلاک چین معاملات مالی منبع باز (Open Source) است که مانند سایر رقبا با هدف افزایش امنیت، افزایش سرعت تبادلات و نیز حذف واسطه ارائه شد. پروژه دیا در آموزش سرمایهگذاری آنلاین، دریافت و ارسال دادههای لحظهای موفق عمل کرده است.
۴. تلور
تلور Tellor مانند چینلینک یک اوراکل غیرمتمرکز است که در آن استخراجکنندگان مبنی بر الگوریتم اثبات کار (PoW) برای دریافت دادهها و قرار دادن آن در زنجیره برای قراردادهای هوشمند با یکدیگر رقابت میکنند.
نتیجهگیری
با توجه به چالشهای اوراکل، تاکنون پیشرفت چشمگیری داشتند و انتظار میرود در آینده اتصال بین بلاک چینها و دادههای خارج از دنیای ارزهای دیجیتال، باعث یک جهش بزرگ برای این فناوری شود. اوراکلهای بلاک چین به اکوسیستم بلاک چین کمک میکند تا امنیت و اعتماد در این جامعه بیشتر رشد کند.
اگر تجربه شخصی از کار با اوراکلها دارید، حتما نظر خود را با ما در میان بگذارید.
سوالات متداول
اوراکل (oracles) چیست؟
اوراکلها در زمینه بلاک چین به عنوان پل ارتباطی بین قراردادهای هوشمند و منابع دنیای خارج عمل میکنند.
قرارداد هوشمند (Smart Contract) چیست؟
قرارداد هوشمند، برنامه کامپیوتری خودکاری است که به صورت مستقل، شفاف و بدون واسطه، تحت شرایط خاصی که طرفین قرارداد مشخص کردهاند روی بلاک چین اجرا میشود.
انواع اوراکل چیست؟
۱. اوراکلهای نرمافزاری و سختافزاری ۲. اوراکلهای ورودی و خروجی ۳. اوراکلهای متمرکز و غیرمتمرکز۴. اوراکلهای اختصاصی ۵. اوراکلهای انسانی
نکته: توجه داشته باشید این مقاله صرفا با هدف راهنمایی و آشنایی نوشته شده و آکادمی ارز دیجیتال ارزتودی مسئولیتی در مقابل تصمیمات افراد یا عواقب مالی آن ندارد.