اوراکل چیست؟ معرفی ۴ مورد از بهترین پروژه های Oracle در دنیای بلاکچین
فناوری بلاکچین هرچند با ویژگیهای زیادی که دارد توانسته است بسیاری از مشکلات را حل کند، اما هنوز موفق به رفع برخی محدودیتها نشده است. یکی از مشکلات بلاکچین عدم توانایی در ارتباط با دنیای بیرون است. اوراکل (Oracle) یکی از راهحلهای کاربردی برای حل این مشکل است. اوراکل به زبان ساده به عنوان یک رابط بین منابع بیرونی و قراردادهای هوشمند عمل میکند.
در این مقاله قرار است ما به صورت تخصصی در مورد Oracle و موارد استفاده از آن در بلاکچین صحبت کنیم. با توجه به اینکه اوراکل ارز دیجیتال یکی از اصطلاحات بسیار کاربردی در دنیای کریپتوکارنسی است توصیه میکنیم حتما این مطلب را مطالعه کنید.
اوراکل (Oracle) چیست؟
به پلتفرم یا پروژههایی که اطلاعات و دادههای دنیای واقعی را به داخل بلاک چین انتقال میدهند، اوراکل گفته میشود. در فضای بلاکچین اوراکلها همچون سرویسهای شخص ثالثی هستند که دادههای خارج از زنجیره بلاک را برای قراردادهای هوشمند ارسال میکنند. پس به نوعی آنها یک پل ارتباطی بین بلاکچین و دنیای خارج محسوب میشوند و موجب گسترش دامنه فعالیتهای قرارداد هوشمند میگردند.
Oracle یک منبع داده نیست، بلکه صرفا لایهای است که منابع داده خارجی را پس از جستجو، تایید و احراز هویت، مجدداً به مقصد خاصی ارسال میکند. اطلاعات ارسالی اوراکلها در قالبهای فرمی مختلفی هستند که میتوان به دادههای قیمت، اتمام موفقیت آمیز یک پرداخت یا دمای اندازهگیری شده توسط یک سنسور اشاره کرد. برای فراخوانی دادهها از دنیای خارج، ابتدا باید یک قرارداد هوشمند فراخوانی شود. برخی اوراکلها نه تنها توانایی ارسال اطلاعات به قراردادهای هوشمند را دارند، بلکه قادرند آنها به منابع خارجی هم ارسال کنند.
رفع مشکل بلاکچین توسط اوراکلها
یکی از مشکلات بلاکچین و قراردادهای هوشمند عدم برقراری ارتباط با منابع خارج از بلاک چین یا آف-چین(Off-chain) است.با توجه به اینکه نیاز به دادههای خارجی در بلاکچین روز به روز در حال افزایش است رفع مشکل بلاکچین توسط اوراکلها از اهمیت ویژهای برخوردار شده است. از طرفی بسیاری از قراردادهای هوشمند مانند دیفای برای آنکه بتوانند به صورت صحیح اجرا شوند نیاز به دادههای مربوط به دنیای خارج از زنجیره دارند. این اغلب به عنوان مشکلات اوراکل شناخته میشود.
اوراکل برای دریافت اطلاعات خارج از شبکه، از وبسرویسها و APIها استفاده میکند. در شرایطی که قرارداد هوشمند به منابع اطلاعاتی آف-چین نیاز داشته باشد، دستور لازم را به Oracle ارسال میکند و اوراکل درخواست مربوطه را به API منتقل میکند و در پایان این پروسه، قرارداد هوشمند پاسخ مورد نیاز خود را دریافت میکند.
کاربرد اوراکل در برنامههای غیرمتمرکز (DApps)
با یک مثال شروع میکنیم: فرض کنید دو نفر درخصوص نتیجه مسابقه فوتبال بین دو تیم ایتالیا و انگلیس شرطبندی کردهاند. شخص اول معتقد است ایتالیا برنده میشود و شخص دوم انگلیس را پیروز مسابقه میداند. آنها تصمیم میگیرند مبلغی را در یک قرارداد هوشمند بلاک کنند تا براساس نتیجه مسابقه به فرد برنده اعطا شود.
از آنجا که قرارداد هوشمند جهت باخبر شدن از نتیجه مسابقه قادر به ارتباط با منابع خارجی نیست، اوراکل وظیفه دریافت این دادهها از یک منبع معتبر و ارسال آن به قرارداد هوشمند را عهدهدار است. در پایان، قرارداد هوشمند براساس نتیجه مسابقه، وجوه را به فرد برنده پرداخت میکند.
موارد زیر نمونه هایی از دادههایی است که توسط اوراکلها به پلتفرمهای مختلف ارسال میشود:
- دادههای بازار سرمایه، مانند بستههای قیمتگذاری داراییها و اوراق بهادار.
- دادههای مرجع معیار مانند نرخ بهره.
- دادههای آب و هوایی برای محاسبه حق بیمه.
- دادههای موقعیت جغرافیایی، مانند آنچه در ردیابی زنجیره تامین استفاده می شود.
- دادههای ورزشی برای حل و فصل بازارهای پیشبینی و قراردادهای ورزشی.
- دادههای پرواز مانند مواردی که توسط باشگاهها برای جمعآوری بلیطهای پرواز استفاده میشود.
انواع اوراکل در بلاکچین
اوراکلها را میتوان بسته به سطح کیفی دادهی آنها به پنج دسته طبقهبندی کرد:
- پایگاه داده (نرمافزاری یا سختافزاری)
- مسیر داده (ورودی یا خروجی)
- تراست (متمرکز یا غیرمتمرکز)
- اختصاصی
- انسانی
در ادامه هر کدام این موارد را بیشتر بررسی میکنیم.
اوراکل پایگاه داده
با توجه به گستردگی منابع برون زنجیرهای، اوراکلهای بلاک چینی در انواع مختلف هستند. در حالت کلی اوراکل به دو دسته نرمافزاری و سختافزاری تقسیم میشود:
الف) نرم افزاری:
اوراکل نرمافزاری (Software oracles)، توسط ارتباط با منابع اطلاعاتی آنلاین، دادهها را به بلاک چین منتقل میکند. این اطلاعات میتوانند از پایگاههای داده آنلاین، سرورها و وبسایتها بدست آیند.
این واقعیت که اوراکلهای نرمافزاری به اینترنت متصل هستند، به آنها این امکان را میدهد تا اطلاعات را برای قراردادهای هوشمند به صورت بلادرنگ انتقال دهند. همین امر آنها را به یکی از متداولترین اوراکلهای بلاکچین بدل کرده است. اطلاعاتی که توسط Oracleنرمافزاری ارایه میشوند معمولا شامل نرخ نوسان ارز، بهای یک دارایی دیجیتال یا اطلاعات لحظهای پروازهای یک شرکت هواپیمایی هستند.
ب) سختافزاری:
اوراکل سختافزاری (Hardware oracles)، برای بدست آوردن دادههای فیزیکی از دنیای واقعی و در دسترس قرار دادن آنها برای قراردادهای هوشمند طراحی شده است. چنین اطلاعاتی را میتوان از طریق سنسورهای الکترونیکی، اسکنر بارکد و سایر دستگاههای دادهخوان ارسال کرد. اساساً یک Oracle سختافزاری وقایع دنیای حقیقی را به منظور قابل فهم شدن برای قراردادهای هوشمند، به مقادیر دیجیتال تبدیل میکند.
به عنوان مثال میتوان به سنسوری اشاره کرد که با رسیدن کامیون حامل کالا به محل بارگیری، اطلاعاتی را به یک قرارداد هوشمند ارسال میکند تا تصمیماتی بر اساس آن اتخاذ شود.
اوراکل مسیر داده (اوراکل ورودی و خروجی)
اوراکل ورودی (Inbound oracles)، دادهها را از منابع خارجی به قراردادهای هوشمند منتقل میکنند و Oracleخروجی (outbound oracles)، دادههای قراردادهای هوشمند را به دنیای خارج میفرستند.
سنسور اندازهگیری دما، نمونهای از اوراکل ورودی است که دادههای دما را به یک قرارداد هوشمند ارسال میکند. همچنین قفل هوشمند را میتوان به عنوان یک نمونه از Oracle خروجی در نظر گرفت که در صورت واریز وجوه به نشانی مورد نظر، قرارداد هوشمند این اطلاعات را از طریق اوراکل خروجی به فانکشن مربوطه ارسال و قفل را باز میکند.
اوراکل تراست (اوراکل متمرکز و غیرمتمرکز)
یک اوراکل متمرکز (Centralized oracles) همانند یک نهاد واحد است که تنها از یک منبع اطلاعاتی دادههای قرارداد هوشمند را تامین میکند. بنابراین، کارایی قرارداد هوشمند با نهاد در ارتباط با آن اوراکل گره خورده است. همچنین هرگونه رخنه توسط یک بازیگر مخرب، تاثیر مستقیمی بر عملکرد قرارداد هوشمند خواهد داشت. از این رو مشکل اصلی اوراکلهای متمرکز، اتکای آنها به یک منبع اطلاعاتی واحد است و این موجب افزایش آسیبپذیری قراردادهای هوشمند در برابر حملات هکرها میشود.
در سوی دیگر، اوراکلهای غیرمتمرکز (Decentralized oracles) برای افزایش اعتبار دادههای خود، از چندین منبع خارجی استفاده میکنند. از آنجا که این اوراکلها اعتبار و صحت دادههای ارسالی را با اجماع بین منابع خارجی تعیین میکنند، به آنها اوراکلهای اجماع (Consensus Oracles) نیز گفته میشود.
برخی از پروژههای بلاکچینی خدمات Oracle غیرمتمرکز را به بلاکچینهای دیگر ارائه میدهند. همچنین اوراکلهای غیرمتمرکز میتوانند در بازارهای پیشبینی، جایی که درصد موفقیت یک نتیجه خاص را میتوان با اجماع جمعی تایید نمود، مثمرثمر باشند.
اوراکل اختصاصی
اوراکل اختصاصی (Contract-specific oracles)، تنها جهت استفاده در یک قرارداد هوشمند مشخص طراحی شده است. بدین معنا که اگر کسی بخواهد چندین قرارداد هوشمند را بهکار گیرد، باید متناسب با تعداد آنها از اوراکلهای اختصاصی هم استفاده کند.
بنابراین استفاده از این نوع اوراکل بسیار زمانبر و پرهزینه بوده و اجرای آنها از سوی شرکتها و موسساتی که مایلند از منابع داده مختلفی استفاده کنند، چندان توجیهپذیر نیست. از طرف دیگر، از آنجا که این اوراکلها از ابتدا مختص یک قرارداد میباشند، توسعهدهندگان انعطافپذیری بیشتری جهت تنظیم آنها بر اساس نیازهای اختصاصی خود خواهند داشت.
اوراکل انسانی
گاهی افراد دارای دانش تخصصی در یک زمینه خاص هم میتوانند به عنوان Oracle عمل کنند. آنها اطلاعات را پس از بررسی صحتشان (توسط منابع مختلف)، برای قراردادهای هوشمند ترجمه میکنند. به دلیل اینکه اوراکلهای انسانی هویت خود را به صورت رمزنگاری تایید میکنند، احتمال جعل هویت در آنها توسط کلاهبرداران و ارایه دادههای نامعتبر بسیار کم است.
مشکلات و چالشهای اوراکل
به دلیل اینکه تصمیمات اتخاذ شده در قراردادهای هوشمند بر اساس دادههای اوراکلها تعیین میشوند و آنها نقشی کلیدی در یک اکوسیستم بلاکچینی ایفا میکنند، چالش اصلی آنها دستکاری در منابع دادهای است که به آنها استناد میکنند. این دستکاری میتواند توسط حملات هکرها و بازیگران مخرب انجام شود. به عنوان مثال هک شدن یک منبع داده میتواند منجربه ارسال اطلاعاتی غلط به یک Oracle و اجرای قرارداد هوشمند در راستای اهداف هکر گردد.
همچنین به دلیل اینکه اوراکلها بخشی از اجماع اصلی بلاکچین محسوب نمیشوند، متاسفانه در مکانیزم امنیتی بلاکچینهای عمومی جایی نخواهند داشت. این موجب افزایش آسیبپذیری آنها میشود. با این حال روش های مختلفی برای اعتبارسنجی اطلاعات دریافتی از نودهای Oracle در شبکه وجود دارد.
روشهای اعتبارسنجی منابع داده اوراکلها
معمولاً تعریف اعتبارسنجی منابع داده به فرآیند ارسال اطلاعات بر روی بلاکچین اطلاق میشود. برای درک بهتر و دقیقتر ماهیت فنی اوراکلهای بلاکچین میتوان دو مؤلفه «دستیابی به دادههای معتبر» و «ثبت آنها در بلاکچین» را جداگانه درنظر گرفت. نوشتن دادهها در بلاک چین ساده است: هنگامی که اطلاعات توسط قرارداد هوشمند اوراکل دریافت شود، از طریق یک فراخوانی در دسترس عموم قرار می گیرد.
اما بخش مهم اینجاست: چگونه میتوان از صحت دادههای ثبت شده در بلاکچین مطمئن شد؟
شهرت و پرداخت
اگر یک نود اوراکل به طور مداوم نتایج خوبی ارائه داد، شهرت آن افزایش مییابد. این میتواند به پرداخت های بیشتر برای ارائه داده مرتبط باشد که به عنوان یکی از روشهای اصلی تشویق در شبکههای Oracle عمل میکند.
منابع داده چندگانه
یک روش ساده برای کاهش ریسک اطلاعات نادرست، استفادهی نودها از میانگین نتایج داده دریافتی است. به این ترتیب، تنها در صورتی که اکثر منابع داده یا خود نود در معرض خطر قرار گیرد، دادههای نادرست روی زنجیره ثبت میشوند.
اوراکلهای متعدد
یک شبکه Oracle یا مصرفکننده اطلاعات میتواند از اوراکلهای متعددی برای کاهش خطر دادههای اشتباه استفاده کند. در این حالت احتمال اینکه اکثر اوراکلها، مخرب باشند بسیار کم است. (تنها در صورتی که همه اوراکلها بر منابع داده یکسانی تکیه کنند)
استیکینگ
در اینجا استیکینگ برخلاف استفاده رایج این کلمه به معنای کسب سود نقدینگی نیست. بلکه بدین معناست که نودهای Oracle باید توکنهایی را برای ضمانت دادههای خود وثیقه کنند. این مسلماً یکی از بهترین مکانیسمهای اعتمادسازی در اپراتورهای نود اوراکل است.
محیط اجرایی قابل اعتماد (TEE)
به زبان ساده، محیط اجرایی قابل اعتماد یا TEE به برنامهها این امکان را میدهد که در قسمت جداگانهای از پردازنده اصلی اجرا شوند. این موجب حفاظت بیشتر آنها در برابر حملات خرابکارانه میشود. با این کار در حالی که خود برنامه همچنان قادر به خواندن و نوشتن حافظه خارج از بخش جداگانهاش است، سایر بخشهای سیستمعامل قادر به خواندن دادهها نیستند. بنابراین اجرای سرویسهای اوراکل در TEE موجب ایجاد یک لایه امنیتی اضافه خواهد شد.
معرفی بهترین پروژه های اوراکل در بلاکچین
Oracle دارای مکانیزمی نسبتا قابل اعتماد است که ارتباط بین قراردادهای هوشمند را تسهیل میکنند. برای اینکه بلاکچینها تأثیری پایدار در کاربردهای عملی و صنایع مختلف داشته باشند، باید به طور مداوم با دادههای دنیای واقعی ارتباط برقرار کنند. این کار توسط اوراکلها ممکن میشود. در ادامه بهترین پروژه های اوراکل که در بلاک چین اجرا شدهاند را معرفی میکنیم.
چین لینک (Chainlink)
چین لینک یک اوراکل یا نرمافزار واسطه است که دادههای قراردادهای هوشمند خود را از پلتفرمهای خارج از زنجیرهای (Off-Chain) دریافت میکند. این اکوسیستم متشکل از بیش از ۵۰ پروژه بلاکچینی و ۱۰۰ شرکت نرمافزاری است. چینلینک در سال ۲۰۲۰ به یکی از برترین ارائهدهندگان اوراکل بلاکچین بدل شد.
بند پروتکل (BAND protocol)
بند، یک اوراکل میان زنجیرهای در بستر شبکه اتریوم است که قراردادهای هوشمند را قادر میسازد هر منبع داده خارجی یا API را به روشی مقیاسپذیر، تجمیع و به هم متصل کند. در واقع این یک نرمافزار به منظور تشویق کاربرانی است که دادههای دنیای واقعی را به اپلیکیشنهای غیرمتمرکز در بلاکچین ارایه میدهند.
دیا (DIA)
دیا یک بلاکچین و یک شبکه معاملات مالی متن باز است که مانند بسیاری از رقبای خود با هدف حذف واسطه، افزایش امنیت و بالا بردن سرعت تبادلات جهانی ارائه شده است. از جمله اهداف پروژه DIA میتوان به آموزش سرمایهگذاری آنلاین و همچنین ارایه دادههای بلادرنگ اشاره کرد.
تلور (Tellor)
Tellor یک اوراکل غیرمتمرکز است که در آن شبکهای از ماینرهای مبتنی بر الگوریتم اثبات کار (PoW) برای دریافت دادههای قراردادهای هوشمند، با یکدیگر به رقابت میپردازند.
آینده اوراکلها را چگونه ارزیابی میکنید؟
اوراکلها علیرغم چالشهای موجود از قبیل دستکاری در منابع اطلاعات، پیشرفتهای قابل توجهی داشتهاند. همچنین در آینده اتصال بین بلاکچینها و فیدهای داده خارجی، یک جهش بزرگ برای این فناوری محسوب میشود.
تجربه شخصی شما از کار کردن با پروژههای اوراکل در بلاکچین چیست؟ با توجه به برخی رخنههای امنیتی در Oracle، آینده این فناوری در بلاکچین را چگونه ارزیابی میکنید؟