اوراکلها، نوید آیندهای را میدهند که در آن قرار است دنیای بلاکچین و دنیای واقعی به طور کامل با هم ادغام شوند. دنیای واقعی و دنیای بلاکچین، کاملاً با هم متفاوت هستند؛ میبینیم که دنیای واقعی مملو از دادهها و اطلاعات است، در حالی که بلاکچین برای حفظ امنیت و شفافیت، از دادههای محدودی استفاده میکند.دیفایر در این مقاله قرار است به بررسی اوراکلها، انواع آنها، کاربردها و چالشهای آنها بپردازد پس تا پایان همراه ما باشید.
اوراکلها، پلهای ارتباطی هستند که بلاکچین را به دنیای واقعی متصل میکنند و به قراردادهای هوشمند اجازه میدهند تا بر اساس ورودیها و خروجیهای دنیای واقعی دستورات خود را اجرا کنند. اوراکلها برای اتصال به اکوسیستم Web 3.0 و سیستمهای قدیمی، منابع داده و محاسبات پیشرفته ارائه میکنند. شبکههای اوراکل غیرمتمرکز (DONs) از چندین اوراکل مستقل تشکیل شدهاند تا اطمینان حاصل شود که دادهها دقیق و قابل اعتماد هستند، آنها امکان پیادهسازی قراردادهای هوشمند ترکیبی را فراهم میکنند. این قراردادهای هوشمند، ترکیبی از کد روی زنجیره و کد خارج از زنجیره هستند.
کد روی زنجیره غیرقابل تغییر است و به طور شفاف توسط همه نودهای بلاک چین اجرا میشود این کد در بلاکچین ذخیره میشود. کد خارج از زنجیره برای پشتیبانی از قراردادهای هوشمند هیبریدی مورد نیاز است و روی یک سرور یا رایانه شخصی اجرا میشود. از قراردادهای هوشمند ترکیبی برای ارائه برنامههای غیرمتمرکز (DApp) پیچیده که به رویدادهای دنیای واقعی نیاز دارند و در تعامل با سیستمهای سنتی هستند، استفاده میشود.
فرض کنید دو نفر روی نتیجه یک مسابقه فوتبال شرطبندی میکنند و هر کدام مبالغ خود را در یک قرارداد هوشمند به عنوان امانت نگهداری میکنند، چگونه قرارداد هوشمند میداند که پس از پایان بازی، پول را باید به کدام شخص پرداخت کند؟
راهحل این است که اوراکل به عنوان یک ناظر بیطرف عمل میکند و نتایج مسابقه را از یک منبع خارجی قابل اعتماد، مانند یک وب سایت ورزشی معتبر میگیرد، سپس این نتایج را به قرارداد هوشمند منتقل میکند. قرارداد هوشمند نتایج مسابقه را بررسی کرده و بر اساس آن پول را به برنده میدهد. به دلیل ویژگی دفترچه توزیع شده بلاکچین، هر گره در شبکه باید با توجه به ورودی یکسان، نتیجه یکسانی را به دست آورد. به عنوان مثال، اگر یک گره سعی کند تراکنش گره دیگری را تایید کند، نتیجه متفاوتی دریافت خواهد کرد. این معماری همیشه قطعی است.
مکانیزم اجماع، اولین مرحله عملکرد و تکنیکی برای توافق بر روی یک مقدار داده در بلاکچین است. در این مکانیزم برای اینکه گرهها به اجماع برسند باید یک تصمیم نهایی اتخاذ شود. برخی از این مکانیزمهای اجماع مانند اثبات کار (PoW) مکانیزم پیشنهادی ناکاماتو و مکانیزم اثبات سهام (PoS) ممکن است برای شما آشنا باشند.
برای بهرهمندی از دنیای بلاکچین و قراردادهای هوشمند، به داده نیاز داریم واین دادهها از ارتباط با دنیای واقعی بهدست میآیند. مثلا در DeFi، باید قیمت ارزهای دیجیتال را وارد قرارداد کنیم، یا به دادههای هواشناسی نیاز داریم تا بیمه غیرمتمرکز و بدون اعتماد ارائه کنیم. با توجه به این ویژگی چگونه میتوان این جهانها را به هم متصل کرد؟ حالا که با اوراکل آشنا شدیم وقت آن است تا بفهمیم اوراکلهای بلاکچین چه میکنند، مشکل آنها چیست و در پایان میخواهیم پروژههای مختلف اوراکل بلاک چین را معرفی کنیم.
اوراکل بلاکچین چه مشکلاتی دارد؟
یکی از مشکلات اصلی اوراکلها محدودیت در ارتباط با قراردادهای هوشمند زنجیرههای مختلف است، یعنی آنها نمیتوانند به هیچ وجه با دادهها و سیستمهایی خارج از بلاکچین بومی خود ارتباط برقرار کنند. دادههای خارجی به عنوان دادههای( off-chain) و دادههایی که در حال حاضر در بلاکچین ثبت شدهاند به عنوان دادههای (on-chain) نامگذاری میشوند.
بلاکچینها به گونهای طراحی شدهاند که در یک محیط ایزوله عمل میکنند تا از حملات و دو بار خرج کردن یک رمزارز جلوگیری کنند. با وجود الگوریتمهای اجماع متفاوت در بلاکچین از صحت تراکنشهای کاربر اطمینان حاصل میشود و همچنین با ماهیت توزیعشده هر بلاکچین در برابر خرابی شبکه مقاومت بیشتری ایجاد خواهد شد و اگر یک گره از کار بیفتد، گرههای دیگر همچنان به کار خود ادامه میدهند و بلاکچین همچنان کار میکند و در نهایت باعث کاهش زمان خرابی شبکه میشود. برای ایجاد تعامل ایمن با سیستمهای خارج از زنجیره بلاکچین و پل زدن بیین دو محیط اوراکل خلق شد.
از آنجایی که اکثر موارد استفاده از قرارداد هوشمند، مانند DeFi، به دادهها و اطلاعات دنیای واقعی و خارج از بلاکچین احتیاج است نیاز به اوراکلها احساس میشود. اوراکلها در حالی که ویژگیهای کلیدی و مهم بلاکچین را حفظ میکنند امکان دسترسی به قراردادهای بیشتری را برای بلاکچین فراهم میکنند.
قیمت دارایی برای امور مالی، تأیید هویت برای دولت، انتخاب شانسی برای بازیها، اطلاعات آب و هوا برای بیمه تنها چند نمونه از صنایع هستند که از ادغام اوراکلها با قراردادهای هوشمند سود میبرند.
اوراکل بلاکچین چطور کار میکنند؟
هر پلتفرمی که یک بلاکچین را به دادههای خارج از آن متصل میکند، به عنوان اوراکل بلاکچین شناخته میشود. تمام ورودیهای داده از طریق یک تراکنش خارجی در این اوراکلها ارسال میشوند. بلاکچین تمام اطلاعات لازم برای اجرای درست را با این روش بهدست میآورد. اوراکلها به عنوان واسطه(middleware) بلاکچینی در نظر گرفته میشوند. Chainlink به دلیل غلبه بر دسترسی به دادههای خارجی و رفع مشکلات قرارداد هوشمند، استاندارد صنعتی برای اوراکلهای غیرمتمرکز است. به عنوان یک مثال از اورکلهالی موفق وقت آن است که بهطور خلاصه با Chainlink آشنا شویم؛
Chainlink یک شبکه اوراکل غیرمتمرکز است که دادههای واقعی را به قراردادهای هوشمند بلاکچین منتقل میکند. توکن LINK توکن بومی آن است که برای پرداخت هزینه خدمات شبکه استفاده میشوند.
یک اوراکل متمرکز که توسط یک نهاد مرکزی کنترل میشود در معرض خطر سوء استفاده و دستکاری است که با استفاده ازیک قرارداد هوشمند غیرمتمرکز و امنیتی بلاکچین برطرف میشود اما با وجود اوراکلهای متمرکز دوباره یک نقطه ضعف امنیتی بهوجود میآید، مثلا اگر اوراکل خراب یا به خطر افتاده باشد، تمام قراردادهای هوشمند که به آن متکی هستند میتوانند خراب شوندو کل سیستم را از کار بیاندازد. بنابراین، اگر اوراکل خراب یا به خطر افتاده باشد، چگونه مطمئن باشیم که دادههای دریافت شده دقیق هستند؟
اگر اوراکل خراب یا به خطر افتاده باشد، هیچ راهی برای دانستن اینکه دادههای دریافت شده دقیق هستند وجود ندارد. این امر به این دلیل است که شما نمیتوانید به اوراکل اعتماد کنید تا دادههای دقیق را ارائه دهد. اگر دادههایی که یک قرارداد هوشمند به آنها متکی است مشکوک باشد، قرارداد هوشمند بیفایده است.
این مشکل توسط Chainlink (یک شبکه غیرمتمرکز از گرهها) حل میشود. اوراکلها برای ارائه دادهها و اطلاعات از منابع خارج از بلاکچین به قراردادهای هوشمند روی بلاک چین استفاده میشوند. این تکنیک، همراه با سایر فناوریهای امنیتی، مشکلات قابل اعتماد بودن از یک منبع متمرکز را برطرف میکند. بنابراین، میتوانید به دادههای غیرمتمرکز مراجعه کنید که قبلاً از دنیای واقعی استخراج و با استفاده از ابزارهایی مانند Chainlink جمعآوری شدهاند. این منابع به یک کتابخانه عمومی شباهت دارند با این تفاوت که غیرمتمرکز هستند.
میتوانید شبکههای اوراکل مدولار خود را ایجاد کنید تا هر اطلاعات خاصی را که نیاز دارید به دست آورید. علاوه بر این، میتوانید محاسبات خارج از زنجیره را انجام دهید و دادهها را به دنیای واقعی منتقل کنید. برخی از اوراکلهای برتر بلاکچینهای دیگر Witnet، Paralink، Provable و Dos.Network هستند. این سرویسها اوراکلهایی را ارائه میکنند که از یک قرارداد هوشمند و برخی اجزای خارج از زنجیره تشکیل شدهاند که میتوانند رابطهای کاربری برنامه (API) را پرس و جو کرده و سپس تراکنشها را برای بهروزرسانی منظم دادهها در قرارداد هوشمند ارسال کنند.
انواع اوراکل بلاکچین
اوراکلها که واسطه بلاکچین و دنیای واقعی هستند با بررسی دادههای بیرون آنها را به داخل بلاکچین انتقال میدهند و پس از آن، دادههای تأیید شده برای تأیید یک قرارداد هوشمند استفاده میشوند. این اوراکلها انواع مختلفی دارند که در ادامه با آنها آشنا میشوید.
- اوراکل سختافزاری و نرمافزاری
اوراکلهای سختافزاری دادهها را از دنیای فیزیکی ارائه میدهند، در حالی که اوراکلهای نرمافزاری دادهها را از منابع دیجیتال مانند وبسایتها، سرورها یا پایگاههای داده انتقال میدهند. علاوه بر این، اطلاعات سنسورهای حرکت دوربین و سنسورهای شناسایی فرکانس رادیویی (RFID) را میتوان توسط اوراکلهای سختافزاری ارسال و دریافت کرد. دادههای فوری مانند نرخ ارز، تغییرات قیمت و اطلاعات سفر، میتوانند از طریق اوراکلهای نرمافزاری ارائه شوند.
- اوراکل ورودی و خروجی
اوراکلها یک کانال ارتباطی دو طرفه با بلاکچین ایجاد میکنند و دادهها را وارد و خارج میکنند. در حالی که اوراکلهای خروجی میتوانند دادههای بلاکچین را به دنیای خارج منتقل کنند، اوراکلهای ورودی بیشتر احتمال دارد دادههای خارج از زنجیره یا دنیای واقعی را به بلاکچین انتقال دهند. علاوه بر این، دادههای وارد شده تقریباً میتوانند هر چیزی را از نوسانات قیمت دارایی تا شرایط هواشناسی و تأیید پرداختهای تکمیل شده را نشان دهند. برای اوراکلهای ورودی، یک سناریوی قابل برنامهریزی رایج ممکن است این باشد:
اگر یک دارایی به قیمت خاصی رسید، یک سفارش خرید بگذارید، از سوی دیگر، اوراکل خروجی دنیای خارج را از رویدادی که در زنجیره رخ داده است مطلع میکنند.
- اوراکل متمرکز و غیرمتمرکز
یک اوراکل متمرکز توسط یک نهاد واحد مدیریت میشود و بهعنوان تنها منبع داده قرارداد هوشمند عمل میکند. استفاده از تنها یک منبع اطلاعات میتواند خطرناک باشد زیرا اثربخشی قرارداد کاملاً به نهاد مسئول اوراکل وابسته است. تغییر احتمالی اطلاعات توسط برخی بازیگران خرابکار نیز مستقیماً بر قرارداد هوشمند تأثیر خواهد گذاشت. مشکل اساسی با اوراکلهای متمرکز این است که آنها یک نقطه ضعف واحد دارند و قراردادها را در برابر حملات آسیبپذیرتر میکنند.
برخی از اهداف اوراکل غیرمتمرکز شبیه اهداف بلاکچینهای عمومی است، مانند به حداقل رساندن ریسک طرف مقابل. به عنوان مثال، آنها با عدم وابستگی به یک منبع واحد حقیقت، اطلاعات ارائه شده به قراردادهای هوشمند را قابل اعتمادتر میکنند. قرارداد هوشمند برای ارزیابی اعتبار و صحت دادهها با چندین اوراکل مشورت میکنند. به همین دلیل است که اوراکل غیرمتمرکز نیز به عنوان اوراکل اجماع شناخته میشوند. سایر بلاکچینها میتوانند از خدمات اوراکل غیرمتمرکز ارائه شده توسط برخی پروژههای اوراکل بلاکچین استفاده کنند.
- اوراکل انسانی
گاهی افراد با دانش تخصصی در یک بخش خاص میتوانند به عنوان اوراکل عمل کنند. آنها ممکن است اطلاعات را از منابع مختلف جمعآوری کنند، مشروعیت آن را بررسی کرده و آن را به قراردادهای هوشمند تبدیل کنند. از آنجایی که اوراکلهای انسانی میتوانند از رمزنگاری برای تأیید هویت خود استفاده کنند، احتمال اینکه یک کلاهبردار از آنها جعل هویت کند و دادههای دستکاری شده ارائه دهد، کم است.
- اوراکل قراردادهای خاص
این اوراکلها برای کار با قراردادهای هوشمند خاص ساخته شدهاند. اگر توسعهدهنده قصد استقرار چندین قرارداد هوشمند را داشته باشد، ایجاد اوراکلهای خاص قرارداد مختلف ضروری خواهد بود. اوراکلهای قرارداد خاص ارزش صرف وقت و کار لازم برای بهروز نگه داری ندارند و آنها را فقط باید در شرایط خاص مورد استفاده قرار گیرند.
- اوراکل محاسباتی
اوراکلها را میتوان برای انجام هر راه حل محاسباتی خارج از زنجیره استفاده کرد که با توجه به محدودیت هزینه تراکنش هر بلاک در اتریوم و هزینه محاسباتی بالا، کاربرد آنها مفید است.اوراکل محاسباتی، به جای صرفاً تکرار نتایج یک پرسوجو، میتوانند محاسبات را روی مجموعه دادههای بزرگ انجام دهند و نتایج محاسبات خود را به قراردادهای هوشمند بلاکچین برگردانند، در حالی که محاسبات مورد نیاز برای برخی از برنامههای کاربردی بسیار پیچیده هستند و نمیتوان آنها را به طور مؤثری در زنجیره انجام داد. به عنوان مثال، یک اوراکل محاسباتی میتواند محاسبات پیچیده مورد نیاز برای تخمین بازده اوراق را انجام دهد.
الگوهای طراحی اوراکل
بر اساس تعریف، تمام اوراکلهای مورد بحث چندین نقش کلیدی را ایفا میکنند. این قابلیتها شامل توانایی:
- جمعآوری داده از یک منبع غیربلاک چین.
- ارسال دادهها به زنجیره با استفاده از یک پیام امضا شده.
- ذخیره دادهها در حافظه یک قرارداد هوشمند و در دسترس قرار دادن آن
پس از ذخیره دادهها در یک قرارداد هوشمند، دادهها را میتوان توسط سایر قراردادهای هوشمند بلاک چین استفاده کرد. سایر قراردادهای هوشمند میتوانند با ارسال پیام به قرارداد هوشمند اوراکل، به دادهها دسترسی پیدا کنند. پیامهای ارسالی به قرارداد هوشمند اوراکل، تابع “retrieve” را فراخوانی میکنند. گرههای Ethereum یا مشتریان دارای قابلیت شبکه میتوانند با خواندن دادهها از فضای ذخیرهسازی اوراکل، به طور مستقیم به دادهها دسترسی پیدا کنند.
سه روش اصلی برای ایجاد اوراکل را میتوان به شرح زیر دستهبندی کرد:
- خواندن فوری
اوراکل خواندن فوری اطلاعاتی را ارائه میکنند که فقط برای تصمیمگیری سریع مورد نیاز است، مانند «آیا این دانشآموز بالای ۲۵ سال است؟» کسانی که میخواهند این نوع داده را پرسوجو کنند، معمولاً این کار را بهصورت «just-in-time» انجام میدهند، به این معنی که جستوجو فقط زمانی انجام میشود که اطلاعات مورد نیاز باشد. کدهای منطقهای، گواهینامههای تحصیلی، عضویتهای نهادی، شناسایی فرودگاه و سایر اوراکلها نمونههایی از این نوع هستند.
- انتشار اشتراک
اوراکل دادههایی را ارائه میکند که به طور منظم یا مکرر تغییر میکنند، مانند دادههای هواشناسی یا قیمتهای بازار. اوراکل میتواند توسط یک قرارداد هوشمند در زنجیره مورد بررسی قرار گیرد تا دادههای جدید را بررسی کند یا توسط یک daemon خارج از زنجیره برای بهروزرسانیها تماشا شود. الگوی انتشار-اشتراک برای انواع مختلف دادهها، مانند دادههای هواشناسی، دادههای قیمت، دادههای اقتصادی و دادههای ترافیک استفاده میشود.
- درخواست-پاسخ
چالشبرانگیزترین دسته، درخواست-پاسخ است: در این حالت، فضای داده برای ذخیره در یک قرارداد هوشمند بسیار بزرگ است و انتظار میرود کاربران فقط از بخش کوچکی از کل اطلاعات در یک زمان استفاده کنند. همچنین یک استراتژی تجاری قابل قبول برای ارائهدهندگان داده است. یک اوراکل درخواست-پاسخ ممکن است با استفاده از ترکیبی از قراردادهای هوشمند زنجیرهای و زیرساخت خارج از زنجیره برای نظارت بر درخواستها، بازیابی دادهها از منابع خارج از زنجیره و بازگرداندن دادهها به قراردادهای هوشمند اجرا شود.
مراحل فرآیند میتوانند بدون انتظار برای تکمیل مراحل قبلی شروع شوند. کاربر درخواست داده را به یک برنامه غیرمتمرکز (dApp) ارسال میکند.
- dApp درخواست را به اوراکل ارسال میکند.
- اوراکل درخواست را تأیید میکند و موجودی خود را بررسی میکند.
- اگر درخواست معتبر باشد و اوراکل بودجه کافی داشته باشد، اوراکل دادهها را از منبع داده خارج از زنجیره بازیابی میکند.
- اوراکل دادهها را به dApp بازمیگرداند.
- dApp دادهها را پردازش میکند و آنها را به کاربر نمایش میدهد.
کاربردهای اوراکلها در DAppها
اوراکل مکانیزمی برای برقراری ارتباط بین دنیای خارج از زنجیره و قراردادهای هوشمند مورد استفاده توسط بسیاری از DApp ها در بازار است. در زیر نمونههایی از دادههایی وجود دارد که اوراکلها میتوانند ارائه دهند.
- دادههای زمان و فاصله برای محرکهای رویدادی که بر اساس اندازهگیریهای دقیق زمان استفاده میشوند.
- دادههای بازارهای سرمایه، مانند بستههای قیمتگذاری داراییهای توکنسازی شده و اوراق بهادار.
- دادههای هواشناسی، برای مثال، برای محاسبه حق بیمه بر اساس پیشبینیهای هواشناسی استفاده میشود.
- دادههای موقعیت جغرافیایی، مانند دادههایی که در ردیابی زنجیره تامین استفاده میشود.
- برای قراردادهای بیمه، تأیید خسارت مورد نیاز است.
- رویدادهای ورزشی برای حل و فصل بازارهای پیشبینی و قراردادهای ورزش فانتزی استفاده میشوند.
- آمار پرواز، مانند آمار پروازهایی که توسط گروهها و باشگاهها برای جمعآوری بلیط هواپیما استفاده میشود.
سخن پایانی
اوراکلها با وارد کردن دادههای خارجی به داخل بلاکچین نقش مهمی در اجرای قراردادهای هوشمند ایفا میکنند. اما همزمان میتوانند خطر بزرگی را ایجاد میکنند، زیرا اگر منابع غیرقابل اعتماد باشند و بتوان آنها را هک کرد، اجرای قراردادهای هوشمندی که از منابع اوراکل تغذیه میکنند به خطر میافتد. قبل از استفاده باید مدل اعتماد را بررسی کنید. برخی از این نگرانیها را میتوان از طریق دادههای خارجی اوراکل غیرمتمرکز مانند قراردادهای هوشمند اتریوم برطرف کرد. با توجه به بهروزرسانیهای اخیر چینلینک باید منتظر دستاوردهای بعدی این فضا و تاثیرآن بر بلاکچین بمانیم، نظر شما درباره آینده اوراکلها چیست؟