اوراکل (Oracle) چیست؟
اوراکلها (Oracle) خدمات واسطهای هستند که اطلاعاتی را از دنیای خارج به درون بلاک چین و قرارداد هوشمند وارد میکنند. اوراکلها بهعنوان پلی بین قراردادهای هوشمند و منابع بیرونی عمل میکنند. یک اوراکل عاملی است که نهتنها منابع بیرونی دادهها را به درون مخابره میکند، بلکه دقیق بودن آن دادهها را نیز تایید خواهد کرد. پس اوراکلها مسئول ارائه اطلاعات حیاتی و قابل اتکا به قراردادهای هوشمند هستند که بهنوبه خود وظایف مشخصی را انجام میدهند.
پیشنهاد مطالعه: قرارداد هوشمند چیست؟ (Smart Contract)
اهمیت اوراکل در این نهفته است که قراردادهای هوشمند بلاک چین تنها به دادههایی دسترسی دارند که درون خود شبکه دیجیتال قرار دارد. بنابراین اوراکل یک ابزار برقراری ارتباط است که رویدادهای دنیای واقعی (دادههای غیرقطعی) را به مقادیر دیجیتال ترجمه و تفسیر میکند تا توسط قراردادهای هوشمند (دادههای قطعی) قابل تشخیص باشند.
تاریخچه اوراکل
ایدهی اوراکلها به زمان باستان و اسطورهشناسی یونانی بازمیگردد. اوراکل موجودی بود که بهعنوان پُل یا رابطی بین مردم و خدایان عمل میکرد و دانش آینده را برایشان میآورد. دریافت این اطلاعات را طالعبینی هم میگفتند. اگرچه روشهای مختلفی برای طالعبینی مورد استفاده قرار میگرفت، اما ایدهی اوراکل به همان شکل باقی مانده است. در دنیای مدرن نیز هر منبع خوب اطلاعاتی را میتوان یک اوراکل نامید.
اوراکلها و قراردادهای هوشمند
قراردادهای هوشمند برای اجرای برگشتناپذیر عملیاتها طراحی شدهاند. به همین دلیل است که اطلاعات واردشده به اوراکلها باید از منابع معتبری بهدست بیاید. اطلاعات درست و معتبر به انجام درست عملیاتها توسط قرارداد هوشمند کمک میکند؛ ارائه این اطلاعات صحیح برعهده اوراکل است.
البته فراموش نکنید که یک اوراکل بلاک چین خودش یک منبع اطلاعاتی نیست، بلکه لایهای است که منابع بیرونی دادهها را جستجو، پیمایش و تایید میکند و سپس به ارسال داده و اطلاعات میپردازد. دادههایی که اوراکل ارسال میکند به شکلهای مختلفی درمیآید (اطلاعات قیمت، انجام موفق یک پرداخت، یا دمای اندازهگیریشده توسط یک حسگر).
قرارداد هوشمند برای دریافت دادهها از دنیای خارج، باید درخواست ارسال کند و منابعی نیز صرف شوند. برخی اوراکلها میتوانند نهتنها اطلاعات را به سمت قراردادهای هوشمند سرازیر کنند، بلکه به منابع خارجی نیز برگردانند.
انواع اوراکل
اوراکلها به طور کلی بر اساس تعداد کیفیتهای مختلفی که دارند به سه دسته تقسیم میشوند:
- منبع – آیا منبع داده نرمافزاری است یا سختافزاری؟
- مسیر اطلاعات – ورودی است یا خروجی؟
- تراست – متمرکز است یا غیرمتمرکز؟
یک اوراکل میتواند در چند دسته قرار بگیرد. مثلاً اوراکلی که از وبسایت یک شرکت اطلاعاتی دریافت میکند، یک اوراکل نرمافزاری ورودی متمرکز است.
پیشنهاد مطالعه: پروژه اوراکل عمومی Bridge ؛ آیا میتوان به چنین پروژههایی اعتماد کرد؟
اوراکلهای نرمافزاری
اوراکلهای نرمافزاری (Software Oracles) با منابع آنلاین دادهها تعامل داشته و آنها را به بلاک چین منتقل میکنند. این اطلاعات میتواند از پایگاههای داده آنلاین، سرورها، وبسایتها و هر منبع داده دیگری در فضای وب بیرون بیایند.
اتصال اوراکلهای نرمافزاری به اینترنت نهتنها امکان ارائه اطلاعات به قراردادهای هوشمند را فراهم میکند، بلکه آن اطلاعات را نیز به صورت واقعی انتقال خواهد داد. همین باعث میشود که اوراکل نرمافزاری یکی از رایجترین اوراکلهای بلاک چین شود.
اطلاعات تامینشده بهوسیله اوراکل نرمافزاری، معمولاً شامل نرخ تبدیل صرافی، قیمت دارایی دیجیتال یا اطلاعات مربوط به پرواز میشود.
اوراکلهای سختافزاری
قراردادهای هوشمند باید با دنیای واقعی بیرون ارتباط داشته باشند. اوراکلهای سختافزاری برای گرفتن اطلاعات از دنیای فیزیکی طراحی شدهاند و این اطلاعات را در اختیار قراردادهای هوشمند میگذارند. این اطلاعات میتواند از حسگرهای الکترونیکی، بارکدخوانها و دیگر ابزارهای اسکن اطلاعات گرفته شود.
یک اوراکل سختافزاری اساساً رویدادهای واقعی را به مقادیر دیجیتالی تفسیر و ترجمه میکند تا توسط قرارداد هوشمند قابل درک باشد.
یک نمونه از اوراکل سختافزاری، حسگری است که بررسی میکند کامیون حامل بار به پایانه رسیده است یا خیر. اگر رسیده باشد، اطلاعات آن به قرارداد هوشمند ارسال میشود تا بر اساس آن تصمیمهایی اتخاذ کند.
اوراکلهای ورودی و خروجی
اوراکلهای ورودی، دادهها را از منابع خارجی به قراردادهای هوشمند وارد میکنند، درحالیکه اوراکلهای خروجی برعکس عمل میکنند، یعنی دادهها را از قراردادهای هوشمند به دنیای خارج انتقال میدهند.
یک نمونه از این اوراکل ورودی، اوراکلی است که به قرارداد هوشمند میگوید که حسگر چه دمایی را ثبت کرده است. مثال اوراکل خروجی نیز در یک قفل هوشمند مشاهده میشود. اگر وجوه به یک آدرس واریز شوند، قرارداد هوشمند اطلاعات مربوط به آن را از راه یک اوراکل خروجی به مکانیزمی که قفل هوشمند را باز میکند میفرستد.
اوراکلهای متمرکز و غیرمتمرکز
اوراکل متمرکز (Centralized Oracles) توسط یک نهاد واحد کنترل شده و تنها تامینکننده اطلاعات برای قرارداد هوشمند است. استفاده از تنها یک منبع اطلاعاتی میتواند خطرآفرین باشد (کارایی قرارداد کاملا بر نهاد کنترلکننده اوراکل بستگی خواهد داشت). همچنین درصورت نفوذ خرابکارانه از طرف عوامل خارجی، قرارداد هوشمند بهصورت مستقیم تحت تاثیر قرار میگیرد. بزرگترین مشکل اوراکلهای متمرکز، وجود نقطه شکست است که قراردادها را در برابر آسیبپذیری و حمله، شکننده میکنند.
اوراکلهای غیرمتمرکز (Decentralized Oracles) اهداف مشترکی با بلاک چین دارند، مانند اجتناب از ریسک ورود طرفین دیگر و واسطهها. آنها اعتبار و قابلیت اتکای اطلاعات ارائهشده به قراردادهای هوشمند را با اتکا نکردن بر یک منبع واحد اطلاعات حقیقی افزایش میدهند. قرارداد هوشمند برای تایید اعتبار و دقت دادهها، در اوراکلهای مختلف به جستجو میپردازد؛ به همین دلیل است که اوراکلهای غیرمتمرکز را اوراکلهای اجماع (Consensus Oracles) نیز مینامند.
برخی از پروژههای بلاک چین، خدمات اوراکلی غیرمتمرکز به بلاک چینهای دیگر ارائه میکنند. اوراکلهای غیرمتمرکز در پیشبینی بازارها نیز میتوانند سودمند باشند؛ جایی که یک خروجی خاص میتواند با اجماع اجتماعی تایید شود.
اگرچه هدف اوراکلهای غیرمتمرکز واسطهزدایی یا بیواسطگی (Trustlessness) است، اما نباید فراموش کرد که اوراکلهای غیرمتمرکز، درست مثل شبکههای بلاک چین بدون واسطه، واسطه را کاملاً از بین نمیبرند، بلکه آن را میان شرکتکنندگان مختلف توزیع میکنند.
اوراکلهای مختص قرارداد
یک اوراکل مختص قرارداد (Contract-specific oracle)، اوراکلی است که توسط یک قرارداد هوشمند به کار گرفته میشود. این یعنی اگر کسی بخواهد چند قرارداد هوشمند را اجرا کند، باید به تعداد قراردادها اوراکل مختص قرارداد توسعه دهد.
این نوع از قرارداد بسیار زمانبر بوده و نگهداری آن نیز پُرهزینه است. شرکتهایی که قصد استخراج دادهها از چندین منبع را دارند، این رویکرد اصلاً کاربردی برایشان نخواهد داشت. از طرف دیگر، چون اوراکلهای مختص قرارداد میتوانند برای یک مورد خاص طراحی شوند، دست توسعهدهندگان در ساخت آنها برای الزامات خاص بسیار باز است.
اوراکلهای انسانی
گاهی افراد با دانشی خاص در رشتهای خاص میتوانند بهعنوان یک اوراکل عمل کنند. آنها میتوانند به جستجو پرداخته و صحت اطلاعات منابع گوناگون را تایید کرده و آن را به اطلاعاتی قابل فهم توسط قراردادهای هوشمند تفسیر و ترجمه نمایند. به این دلیل که اوراکلهای انسانی (Human Oracles) میتوانند با رمزنگاری هویتشان را تایید کنند، احتمال جعل هویت و ارائه دادههای مخدوش نسبتاً پایین است.
پیشنهاد مطالعه: نگاهی بر ویژگیهای اوراکل غیرمتمرکز tellor
مشکلات اوراکل چیست؟
از آنجایی که قرادادهای هوشمند بر اساس دادههای اوراکلها اقدام به تصمیمگیری میکنند، از ارکان مهم یک اکوسیستم سالم بلاک چین به حساب میآیند. چالش اصلی طراحی اوراکلها این است که اگر اوراکل مورد دستکاری و تقلب قرار بگیرد، قرارداد هوشمند وابسته به آن نیز دستکاری و مشکلدار خواهد شد. این مسئله را مشکل اوراکل یا The Oracle Problem میگویند.
چون اوراکلها بخشی از اجماع بلاک چین اصلی نیستند، متاسفانه بخشی از مکانیزم امنیتی بلاک چین عمومی هم نخواهند بود. تعارض اعتماد بین اوراکلهای واسطه و اجرای بدون واسطهی قراردادهای هوشمند، یک مساله حلنشده است.
حملات انسانی هم که در آن مهاجم به جریان دادهها بین اوراکل و قرارداد هوشمند دست پیدا کرده و اقدام به دستکاری یا جعل اطلاعات میکند هم یک تهدید دیگر است.
ملاحظات پایانی
مکانیزم قابل اطمینانی که ارتباط بین قراردادهای هوشمند و دنیای خارج را تسهیل کند، در توسعه جهانی بهکارگیری بلاک چینها بهشدت ضروری و حیاتی است. قرادادهای هوشمند بدون وجود اوراکلهای بلاک چین باید تنها بر اطلاعاتی که از قبل در شبکه وجود دارد متکی باشند؛ این امر باعث میشود قراردادهای هوشمند دستوپا بسته شده و در تواناییهای خود دچار محدودیت شوند.
اوراکلهای غیرمتمرکز، پتانسیل ارائه مکانیزمهای محافظتی که ریسک سیستمی اکوسیستم بلاک چین را از بین میبرد دارند. اوراکلهای بلاک چین یکی از ارکان حیاتی هستند که باید به شکل ایمن، قابل اتکا و بدون واسطه پیاده شوند تا اکوسیستم بلاک چین رشد پیدا کند.