اوراکل چیست؟
- شقایق یوسفی
- مقالات عمومی
- آبان 20, 1403
فناوری بلاک چین هرچند با ویژگیهای زیادی که دارد توانسته است بسیاری از مشکلات را حل کند، اما هنوز موفق به رفع برخی محدودیتها نشده است. قراردادهای هوشمند که بر بستر بلاک چین اجرا میشوند، پتانسیل بالایی برای افزایش کارایی و همچنین کاهش هزینههای تراکنش در بسیاری از صنایع دارند. قرارداد هوشمند ریسک نقض پیمان را بین طرفین معامله کاهش داده و شفافیت ایجاد میکند اما محدودیت هایی هم دارد یکی از مشکلات عدم توانایی در ارتباط با دنیای بیرون است.اوراکل به زبان ساده به عنوان یک رابط بین منابع بیرونی و قراردادهای هوشمند عمل میکند.
اوراکل چیست؟
اوراکل (Oracle) یک فناوری کاربردی در دنیای بلاک چین است که اطلاعات را از خارج از قراردادهای هوشمند به داخل و اطلاعات داخل را به خارج انتقال میدهد. پس به نوعی آنها یک پل ارتباطی بین بلاک چین و دنیای خارج محسوب میشوند و موجب گسترش دامنه فعالیتهای قرارداد هوشمند میگردند.
Oracle یک منبع داده نیست، بلکه صرفا لایهای است که منابع داده خارجی را پس از جستجو، تایید و احراز هویت، مجدداً به مقصد خاصی ارسال میکند. اطلاعات ارسالی اوراکلها در قالبهای فرمی مختلفی هستند که میتوان به دادههای قیمت، اتمام موفقیت آمیز یک پرداخت یا دمای اندازهگیری شده توسط یک سنسور اشاره کرد. برای فراخوانی دادهها از دنیای خارج، ابتدا باید یک قرارداد هوشمند فراخوانی شود. برخی اوراکلها نه تنها توانایی ارسال اطلاعات به قراردادهای هوشمند را دارند، بلکه قادرند آنها به منابع خارجی هم ارسال کنند.
رفع مشکل بلاک چین توسط اوراکلها
یکی از مشکلات بلاک چین و قراردادهای هوشمند عدم برقراری ارتباط با منابع خارج از بلاک چین یا آف-چین(Off-chain) است.با توجه به اینکه نیاز به دادههای خارجی در بلاک چین روز به روز در حال افزایش است رفع مشکل بلاک چین توسط اوراکلها از اهمیت ویژهای برخوردار شده است. از طرفی بسیاری از قراردادهای هوشمند مانند دیفای برای آنکه بتوانند به صورت صحیح اجرا شوند نیاز به دادههای مربوط به دنیای خارج از زنجیره دارند. این اغلب به عنوان مشکلات اوراکل شناخته میشود
اوراکل برای دریافت اطلاعات خارج از شبکه، از وبسرویسها و APIها استفاده میکند. در شرایطی که قرارداد هوشمند به منابع اطلاعاتی آف-چین نیاز داشته باشد، دستور لازم را به Oracle ارسال میکند و اوراکل درخواست مربوطه را به API منتقل میکند و در پایان این پروسه، قرارداد هوشمند پاسخ مورد نیاز خود را دریافت میکند. دادههایی که قراردادهای هوشمند به آنها نیاز دارند شامل اطلاعاتی مثل قیمتها، آب و هوا و یا حتی ایجاد شماره تصادفی برای قماربازی است.
کاربرد های اوراکل ها
اوراکلها بین بلاک چین و منابع داده قرار گرفته و اطلاعات موردنیاز بلاک چین را با اجرای پرسوجو (Query) در اختیار آن قرار میدهد. بنابراین قراردادهای هوشمند میتوانند بر اساس اطلاعاتی که اوراکلها در اختیارشان قرار میدهند اجرا شوند.
برای مثال فرض کنید دو نفر درخصوص نتیجه مسابقه فوتبال بین دو تیم ایتالیا و انگلیس شرطبندی کردهاند. شخص اول معتقد است ایتالیا برنده میشود و شخص دوم انگلیس را پیروز مسابقه میداند. آنها تصمیم میگیرند مبلغی را در یک قرارداد هوشمند بلاک کنند تا براساس نتیجه مسابقه به فرد برنده اعطا شود.
از آنجا که قرارداد هوشمند جهت باخبر شدن از نتیجه مسابقه قادر به ارتباط با منابع خارجی نیست، اوراکل وظیفه دریافت این دادهها از یک منبع معتبر و ارسال آن به قرارداد هوشمند را عهدهدار است. در پایان، قرارداد هوشمند براساس نتیجه مسابقه، وجوه را به فرد برنده پرداخت میکند.
انواع اوراکل در بلاکچین
اوراکلها را میتوان بسته به سطح کیفی دادهی آنها به پنج دسته طبقهبندی کرد:
- پایگاه داده (نرمافزاری یا سختافزاری)
- مسیر داده (ورودی یا خروجی)
- تراست (متمرکز یا غیرمتمرکز)
- اختصاصی
- انسانی
اوراکل پایگاه داده که به دو نوع سخت افزاری و نرم افزاری تقسیم می شود:
-نرم افزاری
اوراکل نرمافزاری (Software oracles)، توسط ارتباط با منابع اطلاعاتی آنلاین، دادهها را به بلاک چین منتقل میکند. این اطلاعات میتوانند از پایگاههای داده آنلاین، سرورها و وبسایتها بدست آیند.
از آنجا که اوراکلهای نرمافزاری به اینترنت متصل هستند، به آنها این امکان را میدهد تا اطلاعات را برای قراردادهای هوشمند به صورت بلادرنگ انتقال دهند. همین امر آنها را به یکی از متداولترین اوراکلهای بلاک چین بدل کرده است. اطلاعاتی که توسط Oracleنرمافزاری ارایه میشوند معمولا شامل نرخ نوسان ارز، بهای یک دارایی دیجیتال یا اطلاعات لحظهای پروازهای یک شرکت هواپیمایی هستند.
-سخت افزاری
اوراکل سختافزاری (Hardware oracles)، برای بدست آوردن دادههای فیزیکی از دنیای واقعی و در دسترس قرار دادن آنها برای قراردادهای هوشمند طراحی شده است. چنین اطلاعاتی را میتوان از طریق سنسورهای الکترونیکی، اسکنر بارکد و سایر دستگاههای دادهخوان ارسال کرد. اساساً یک Oracle سختافزاری وقایع دنیای حقیقی را به منظور قابل فهم شدن برای قراردادهای هوشمند، به مقادیر دیجیتال تبدیل میکند.
به عنوان مثال سنسوری که با رسیدن کامیون حامل کالا به محل بارگیری، اطلاعاتی را به یک قرارداد هوشمند ارسال میکند تا تصمیماتی بر اساس آن اتخاذ شود.
اوراکل مسیر داده (اوراکل ورودی و خروجی)
اوراکل ورودی (Inbound oracles)، دادهها را از منابع خارجی به قراردادهای هوشمند منتقل میکنند و Oracleخروجی (outbound oracles)، دادههای قراردادهای هوشمند را به دنیای خارج میفرستند.
سنسور اندازهگیری دما، نمونهای از اوراکل ورودی است که دادههای دما را به یک قرارداد هوشمند ارسال میکند. همچنین قفل هوشمند را میتوان به عنوان یک نمونه از Oracle خروجی در نظر گرفت که در صورت واریز وجوه به نشانی مورد نظر، قرارداد هوشمند این اطلاعات را از طریق اوراکل خروجی به فانکشن مربوطه ارسال و قفل را باز میکند.
اوراکل تراست (اوراکل متمرکز و غیرمتمرکز)
یک اوراکل متمرکز (Centralized oracles) همانند یک نهاد واحد است که تنها از یک منبع اطلاعاتی دادههای قرارداد هوشمند را تامین میکند. بنابراین، کارایی قرارداد هوشمند با نهاد در ارتباط با آن اوراکل گره خورده است. همچنین هرگونه رخنه توسط یک بازیگر مخرب، تاثیر مستقیمی بر عملکرد قرارداد هوشمند خواهد داشت. از این رو مشکل اصلی اوراکلهای متمرکز، اتکای آنها به یک منبع اطلاعاتی واحد است و این موجب افزایش آسیبپذیری قراردادهای هوشمند در برابر حملات هکرها میشود.
در سوی دیگر، اوراکلهای غیرمتمرکز (Decentralized oracles) برای افزایش اعتبار دادههای خود، از چندین منبع خارجی استفاده میکنند. از آنجا که این اوراکلها اعتبار و صحت دادههای ارسالی را با اجماع بین منابع خارجی تعیین میکنند، به آنها اوراکلهای اجماع (Consensus Oracles) نیز گفته میشود.
برخی از پروژههای بلاک چینی خدمات Oracle غیرمتمرکز را به بلاک چینهای دیگر ارائه میدهند. همچنین اوراکلهای غیرمتمرکز میتوانند در بازارهای پیشبینی، جایی که درصد موفقیت یک نتیجه خاص را میتوان با اجماع جمعی تایید نمود، مثمرثمر باشند.
اوراکل اختصاصی
اوراکل اختصاصی (Contract-specific oracles)، تنها جهت استفاده در یک قرارداد هوشمند مشخص طراحی شده است. بدین معنا که اگر کسی بخواهد چندین قرارداد هوشمند را بهکار گیرد، باید متناسب با تعداد آنها از اوراکلهای اختصاصی هم استفاده کند.
بنابراین استفاده از این نوع اوراکل بسیار زمانبر و پرهزینه بوده و اجرای آنها از سوی شرکتها و موسساتی که مایلند از منابع داده مختلفی استفاده کنند، چندان توجیهپذیر نیست. از طرف دیگر، از آنجا که این اوراکلها از ابتدا مختص یک قرارداد میباشند، توسعهدهندگان انعطافپذیری بیشتری جهت تنظیم آنها بر اساس نیازهای اختصاصی خود خواهند داشت.
اوراکل انسانی
گاهی افراد دارای دانش تخصصی در یک زمینه خاص هم میتوانند به عنوان Oracle عمل کنند. آنها اطلاعات را پس از بررسی صحتشان (توسط منابع مختلف)، برای قراردادهای هوشمند ترجمه میکنند. به دلیل اینکه اوراکلهای انسانی هویت خود را به صورت رمزنگاری تایید میکنند، احتمال جعل هویت در آنها توسط کلاهبرداران و ارایه دادههای نامعتبر بسیار کم است.
مشکلات و چالشهای اوراکل
مشکل اصلی این است که این اوراکلها از منابع متمرکز سرچشمه میگیرند که معمولاً به مجوزهای بیرونی نیاز دارند و این نقطهای است که بلاک چین با آن مشکل دارد.
جیمی سانگ (Jimmy Song) تجزیه و تحلیل خوبی از مشکلات پایهای اوراکلها و قراردادهای هوشمند ارائه داده است. مشکلات اوراکلها بیشتر در زمینه امنیت، اعتبار و اعتماد است که میان اوراکلهای دیگر و اجرای غیرمطمئن قراردادهای هوشمند رخ میدهد.
اوراکلها در زمینه اتصال دارایی فیزیکی به بلاک چین، توانایی تأیید مالکیت یک دارایی مثلاً زمانی که یک خانه به شخص دیگری واگذار میشود را بدون شخص ثالث ندارند، حتی اگر مالک جدید توکنی که نشاندهنده مالکیت است را بر روی بلاک چین نگه دارد.
مالکیت در قراردادهای هوشمند همیشه به مالکیت دنیای واقعی منتقل نمیشود. در نتیجه قرارداد هوشمند در قالب یک اوراکل، نیازمند فرایند تأیید رویدادها از سوی بخشهای دیگر است.
یکی دیگر از این مشکلات دستکاری در منابع دادهای است که به آنها استناد میکنند. این دستکاری میتواند توسط حملات هکرها و بازیگران مخرب انجام شود. به عنوان مثال هک شدن یک منبع داده میتواند منجربه ارسال اطلاعاتی غلط به یک Oracle و اجرای قرارداد هوشمند در راستای اهداف هکر گردد.
همچنین به دلیل اینکه اوراکلها بخشی از اجماع اصلی بلاک چین محسوب نمیشوند، متاسفانه در مکانیزم امنیتی بلاک چینهای عمومی جایی نخواهند داشت. این موجب افزایش آسیبپذیری آنها میشود. با این حال روش های مختلفی برای اعتبارسنجی اطلاعات دریافتی از نودهای Oracle در شبکه وجود دارد.
روشهای اعتبارسنجی منابع داده اوراکلها
نوشتن دادهها در بلاک چین ساده است: هنگامی که اطلاعات توسط قرارداد هوشمند اوراکل دریافت شود، از طریق یک فراخوانی در دسترس عموم قرار می گیرد.
اما بخش مهم اینجاست: چگونه میتوان از صحت دادههای ثبت شده در بلاک چین مطمئن شد؟
شهرت و پرداخت
اگر یک نود اوراکل به طور مداوم نتایج خوبی ارائه داد، شهرت آن افزایش مییابد. این میتواند به پرداخت های بیشتر برای ارائه داده مرتبط باشد که به عنوان یکی از روشهای اصلی تشویق در شبکههای Oracle عمل میکند.
منابع داده چندگانه
یک روش ساده برای کاهش ریسک اطلاعات نادرست، استفادهی نودها از میانگین نتایج داده دریافتی است. به این ترتیب، تنها در صورتی که اکثر منابع داده یا خود نود در معرض خطر قرار گیرد، دادههای نادرست روی زنجیره ثبت میشوند.
اوراکلهای متعدد
یک شبکه Oracle یا مصرفکننده اطلاعات میتواند از اوراکلهای متعددی برای کاهش خطر دادههای اشتباه استفاده کند. در این حالت احتمال اینکه اکثر اوراکلها، مخرب باشند بسیار کم است. (تنها در صورتی که همه اوراکلها بر منابع داده یکسانی تکیه کنند)
استیکینگ
در اینجا استیکینگ برخلاف استفاده رایج این کلمه به معنای کسب سود نقدینگی نیست. بلکه بدین معناست که نودهای Oracle باید توکنهایی را برای ضمانت دادههای خود وثیقه کنند. این مسلماً یکی از بهترین مکانیسمهای اعتمادسازی در اپراتورهای نود اوراکل است.
محیط اجرایی قابل اعتماد (TEE)
به زبان ساده، محیط اجرایی قابل اعتماد یا TEE به برنامهها این امکان را میدهد که در قسمت جداگانهای از پردازنده اصلی اجرا شوند. این موجب حفاظت بیشتر آنها در برابر حملات خرابکارانه میشود. با این کار در حالی که خود برنامه همچنان قادر به خواندن و نوشتن حافظه خارج از بخش جداگانهاش است، سایر بخشهای سیستمعامل قادر به خواندن دادهها نیستند. بنابراین اجرای سرویسهای اوراکل در TEE موجب ایجاد یک لایه امنیتی اضافه خواهد شد.
بهترین پروژه های اوراکل در بلاک چین
Oracle دارای مکانیزمی نسبتا قابل اعتماد است که ارتباط بین قراردادهای هوشمند را تسهیل میکنند. برای اینکه بلاک چینها تأثیری پایدار در کاربردهای عملی و صنایع مختلف داشته باشند، باید به طور مداوم با دادههای دنیای واقعی ارتباط برقرار کنند. این کار توسط اوراکلها ممکن میشود
- چین لینک (ChainLink)
- بند پروتکل (Band Protocol)
- API۳
- پایت نتورک (Pyth Network)
- فلیر نتورک (Flare Network)
- دیا (DIA)
- تلور (Tellor)
چین لینک (Chainlink)
چین لینک یک اوراکل یا نرمافزار واسطه است که دادههای قراردادهای هوشمند خود را از پلتفرمهای خارج از زنجیرهای (Off-Chain) دریافت میکند. این اکوسیستم متشکل از بیش از 50 پروژه بلاک چینی و 100 شرکت نرمافزاری است. چینلینک در سال 2020 به یکی از برترین ارائهدهندگان اوراکل بلاک چین بدل شد.
بند پروتکل (BAND protocol)
بند پروتکل یک اوراکل غیرمتمرکز با تمرکز بر مقیاسپذیری و انعطافپذیری است. این پروژه برای شبکه نودهای اوراکل خود از مکانیسم اجماع اثبات سهام نمایندگیشده استفاده میکند.
بند پروتکل یک توکن بومی به نام BAND دارد که ابزار حاکمیت و حفظ امنیت شبکه است. اعتبارسنجها توکنهای BAND خود را استیک میکنند و از این طریق در حفظ امنیت شبکه مشارکت میکنند. البته که در ازای این کار پاداش دریافت میکنند.
API۳
API۳ پروژهای است که APIهای سنتی را به بلاک چین متصل میکند. این پروژه در حقیقت به فراهمکنندگان API اجازه میدهد نودهای خودشان را اجرا کنند و از این طریق بدون نیاز به واسطهها، دیتا را مستقیماً در اختیار بلاک چینها قرار دهند.
این رابط منحصربهفرد API به قرارداد هوشمند، در کنار حاکمیت غیرمتمرکز و تلاش برای حذف واسطهها، API3 را به پروژهای موفق در فضای اوراکل تبدیل کرده است. رویکرد خلاقانه این پروژه در وصلکردن منابع داده سنتی به دنیای بلاک چین منجر به موفقیت و محبوبیت آن شده است.
دیا (DIA)
دیا یک بلاک چین و یک شبکه معاملات مالی متن باز است که مانند بسیاری از رقبای خود با هدف حذف واسطه، افزایش امنیت و بالا بردن سرعت تبادلات جهانی ارائه شده است. از جمله اهداف پروژه DIA میتوان به آموزش سرمایهگذاری آنلاین و همچنین ارایه دادههای بلادرنگ اشاره کرد.
تلور (Tellor)
Tellor یک اوراکل غیرمتمرکز است که در آن شبکهای از ماینرهای مبتنی بر الگوریتم اثبات کار (PoW) برای دریافت دادههای قراردادهای هوشمند، با یکدیگر به رقابت میپردازند.
پایت نتورک (Pyth Network)
تمرکز پایت نتورک روی بازارهای مالی و ارائه قیمت به اپلیکیشنهای بلاک چینی است. این پروژه دیتای خود را از چندین منبع موثق دریافت میکند و سپس آنها را به حالت آنچین تبدیل میکند. آپدیتهای مکرر، تمرکز روی بازارهای مالی، و همکاری با تأمینکنندگان دیتای حرفهای از جمله نقاط قوت پایت نتورک هستند.
فلیر نتورک (Flare Network)
فلیر نتورک قصد دارد انتقال دیتا بین بلاک چینها و اینترنت را تسهیل کند. این پروژه قراردادهای هوشمند اتریوم را با پروتکل اجماع اولنچ ادغام میکند. به این ترتیب، سرعت را در کنار امنیت تضمین میکند. ادغام با قراردادهای هوشمند اتریوم در کنار پشتیبانی از توکنهای غیرتورینگ مانند ریپل را میتوان نقطه قوت فلیر نتورک دانست.
آینده اوراکلها را چگونه ارزیابی میکنید؟
بلاک چین برای اینکه بتواند در برنامههای کاربردی و صنایع تاثیری پایدار بگذارد، باید قادر باشد با دادههای دنیای واقعی ارتباط برقرار کند. این قضیه با اوراکلها سخت و چالش برانگیز است. علیرغم چالشهای موجود از قبیل دستکاری در منابع اطلاعات،اوراکل ها پیشرفتهای قابل توجهی داشتهاند . همچنین در آینده اتصال بین بلاک چینها و فیدهای داده خارجی، یک جهش بزرگ برای این فناوری محسوب میشود.