اوراکل و زنجیره بلوکی

اوراکل و زنجیره بلوکی (Blockchain Oracle)

اوراکل ­های مبتنی بر فناوری زنجیره بلوکی منبع داده هایی هستند که زنجیره­ های بلوکی را به سیستم ­های خارجی متصل می­کنند و به قراردادهای هوشمند اجازه می‌ دهند که در ارتباط با ورودی‌ ها و خروجی‌ های به‌ دست‌ آمده از دنیای واقعی اجرا شوند. اوراکل به اکوسیستم‌ های مبتنی بر وب 3.0 روشی را برای اتصال به سیستم‌ های قدیمی موجود، منابع داده و محاسبات پیشرفته ارائه می‌ دهد.

شبکه‌ های اوراکل غیرمتمرکز (DON) اجرای قراردادهای هوشمند ترکیبی را امکان‌ پذیر می‌ سازند، که در آن زیرساخت‌ های خارج از زنجیره و کدهای درون زنجیره‌ ای برای ارائه برنامه‌ های غیرمتمرکز پیچیده (DApps) که به رویدادهای دنیای واقعی واکنش نشان می‌ دهند و با سیستم‌ های سنتی تعامل دارند، همراه می‌ شوند.

فرض کنید آلیس و باب مایل هستند روی نتیجه یک مسابقه اسب‌ سواری شرط‌ بندی کنند. مجموع 80 دلار به‌ واسطه یک قرارداد هوشمند نگهداری می‌ شود، آلیس 50 دلار برای تیم X و باب 30 دلار برای تیم Y شرط‌ بندی می‌ کند. چگونه قرارداد هوشمند می‌ داند که پس از پایان بازی، پول را به آلیس یا باب پرداخت کند؟ برای انجام این کار به یک مکانیسم اوراکل برای بازیابی نتایج دقیق مطابق خارج از زنجیره و تحویل ایمن و قابل‌ اعتماد آن‌ ها به زنجیره بلوکی نیاز است.

به دلیل ویژگی منحصر به ­فرد دفترکل توزیع‌ شده در زنجیره بلوکی، هر گره در شبکه باید با همان ورودی یک نتیجه را به ­دست آورد. به‌ عنوان‌ مثال، اگر یک گره سعی کند تراکنش گره دیگری را تائید کند، نتیجه متفاوتی دریافت خواهد کرد. این معماری برای دست­یابی به قطعیت ایجاد شده است.

فرایند اجماع، تکنیکی برای توافق بر روی یک مقدار داده در زنجیره بلوکی است و برای رسیدن به اجماع در میان گره‌ ها به قطعیت نیاز است. برخی از این روش‌ های اجماع ممکن است برای شما آشنا باشند، مانند اثبات کار (PoW) با اجماع ناکاموتو، اثبات سهام (PoS) و اجماع بیزانس. یکی از عوامل اصلی که باعث می‌ شود زنجیره بلوکی در وهله اول به حیات خود ادامه دهد، فرایند اجماع است.

با این‌ وجود، دنیای زنجیره بلوکی باید با دنیای واقعی ارتباط برقرار کند. برای داشتن یک برنامه غیرمتمرکز پولی و مالیِ DeFi، باید قیمت اتر (ETH) و سایر ارزهای دیجیتال را در یک قرارداد قرار دهیم. ما به داده‌ های هواشناسی برای ارائه بیمه غیرمتمرکز و قابل‌ اعتماد نیاز داریم. برای استفاده از زنجیره بلوکی در یکی از ضروری‌ ترین کاربردهای آن یعنی قراردادهای هوشمند، به داده‌ های ورودی نیاز داریم. بنابراین، با توجه به این محدودیت، چگونه جهان­ های مختلف را به یکدیگر متصل کنیم؟

هدف این مقاله بررسی این موضوع است که اوراکل‌ های زنجیره بلوکی چگونه کار می‌ کنند، مشکل اوراکل در زنجیره بلوکی چیست و در آخر به معرفی پروژه‌ های اوراکل زنجیره بلوکی مختلف خواهیم پرداخت.

مشکلات استفاده از اوراکل­ ها در زنجیره بلوکی

معضل اوراکل زنجیره بلوکی یک محدودیت کلیدی در قراردادهای هوشمند را برجسته می‌ کند؛ یعنی به‌ هیچ‌ عنوان نمی‌ تواند با داده‌ ها و سیستم‌ های خارج از زمینه زنجیره بلوکی خود ارتباط برقرار کند. به همین علت منابع خارجی را داده­ های «خارج از زنجیره (off-chain)»، و داده­ های ثبت شده در زنجیره بلوکی را داده های «داخل زنجیره ­ای (on-chain)» می نامند.

مشکلات اوراکل زنجیره بلوکی

زنجیره‌ های بلوکی با جدا شدن هدفمند از سیستم‌ های خارجی، سودمندترین ویژگی‌ های خود را مانند جلوگیری از حملات دوبار خرج کردن (double-spending)، اجماع قوی در ارتباط با صحت تراکنش ­های کاربران و کاهش زمان خاموشی شبکه را به دست می آورند. برای تعامل ایمن با سیستم‌ های خارج از زنجیره از یک زنجیره بلوکی و پر کردن شکاف بین دو محیط، به یک زیرساخت مازاد پایه‌ ای به نام «اوراکل» نیاز است.

از آنجایی‌ که اکثر موارد استفاده از قراردادهای هوشمند، مانند DeFi، نیازمند دانشی از داده‌ های دنیای واقعی و رویدادهایی هستند که خارج از زنجیره رخ می‌ دهند، حل مشکلات اوراکل‌ ها بسیار مهم است. درنتیجه، اوراکل‌ ها انواع قراردادهای دیجیتالی را که زنجیره­ های بلوکی ممکن است با ارائه یک دروازه جهانی به منابع خارج از زنجیره و در عین‌ حال حفظ کیفیت‌ های امنیتی کلیدی زنجیره بلوکی، فعال کنند، گسترش می‌ دهند.

قیمت دارایی برای امور مالی، تأیید هویت برای دولت، تصادفی بودن در یک بازی، اطلاعات آب‌ و هوا برای بیمه تنها تعدادی از صنایعی هستند که از ادغام اوراکل‌ ها با قراردادهای هوشمند سود می‌ برند.

اوراکل‌ زنجیره بلوکی چگونه کار می‌ کند؟

هر دستگاهی که یک زنجیره بلوکیِ قطعی را به داده‌ های خارج از زنجیره متصل می‌ کند، اوراکل زنجیره بلوکی نامیده می‌ شود. هر یک از ورودی‌ های داده از طریق یک تراکنش خارجی در این اوراکل‌ ها، هدایت می‌ شود.

با این‌ وجود، می‌ توانیم مطمئن باشیم که زنجیره بلوکی تمام اطلاعات مورد نیاز برای احراز هویت خود را از این طریق به­ دست می­ آورد. اوراکل‌ ها به‌ عنوان میان‌ افزار در فناوری زنجیره بلوکی در نظر گرفته می‌ شوند، زیرا به‌ عنوان پیوندی بین این دو حوزه عمل می‌ کنند.

Chainlink استانداردی صنعتی برای اوراکل‌ های غیرمتمرکز است زیرا هم به دسترسی به داده‌ های خارجی و هم بر تمرکز بر مشکلات قراردادهای هوشمند غلبه می‌ کند. بنابراین، اوراکل‌ های Chainlink چیست؟

Chainlink یک شبکه اوراکل غیرمتمرکز است که داده‌ های دنیای واقعی را برای قراردادهای هوشمند زنجیره بلوکی تغذیه می‌ کند. توکن‌ های LINK توکن‌ های دارایی دیجیتال هستند که برای پرداخت خدمات شبکه استفاده می‌ شوند.

از سوی دیگر، یک اوراکل متمرکز خود باعث ایجاد مشکل خاصی می‌ شود زیرا یک نقطه شکست در شبکه است که قرارداد هوشمند غیرمتمرکز و ایمن با زنجیره بلوکی آن را حل می کند. بنابراین، اگر اوراکل معیوب باشد یا به خطر بیفتد، چگونه می‌ توان فهمید که داده‌ های شما دقیق هستند؟ اگر داده‌ هایی که به آن‌ ها تکیه می‌ کند مشکوک باشند، یک قرارداد ایمن، قابل‌ اعتماد و هوشمند روی زنجیره بلوکی چه سودی دارد؟

این مشکل توسط Chainlink (شبکه غیرمتمرکز گره‌ ها) حل می‌ شود که از اوراکل‌ ها برای ارائه داده‌ ها و اطلاعات از منابع خارج از زنجیره بلوکی به قراردادهای هوشمند درون زنجیره بلوکی استفاده می‌ کند. این تکنیک، همراه با سایر فناوری‌ های ایمن، مشکلات قابلیت اطمینان را که ممکن است در صورت استفاده از یک منبع متمرکز منفرد ایجاد شود، حذف می‌ کند.

Chainlink یک آگنوستیک زنجیره بلوکی است؛ زیرا تمام محیط‌ های اصلی زنجیره بلوکی عمومی و خصوصی را با استفاده از یک چارچوب واحد به هم متصل کرده و یک سطح انتزاعی معمولی را برای ارتباطات بین شبکه ­ای فراهم می‌ کند.

بنابراین، می‌ توانید به داده‌ های غیرمتمرکز زنجیره‌ ای که قبلاً از دنیای واقعی استخراج شده اند و با استفاده از خدماتی مانند Chainlink که شبیه به کتابخانه عمومی است، به‌ جز داده‌ های غیرمتمرکز، جمع‌ آوری شده‌ اند؛ دسترسی پیدا کنید. حتی می‌ توانید شبکه‌ های اوراکل مدولار خود را برای به دست آوردن اطلاعات خاصی که نیاز دارید ایجاد کنید. علاوه بر این، می‌ توانید محاسبات خارج از زنجیره را انجام، و داده‌ ها را به دنیای واقعی انتقال دهید.

دیگر اوراکل‌ های برتر زنجیره بلوکی عبارت‌ اند از Witnet ،Paralink ،Provable و Dos.Network. این سرویس‌ ها اوراکل‌ هایی را ارائه می‌ کنند که از یک قرارداد هوشمند و برخی اجزای خارج از زنجیره تشکیل‌ شده‌ اند که می‌ توانند رابط‌ های کاربری اپلیکیشن (API) را پرس‌ و جو کنند و سپس تراکنش‌ هایی را برای به‌ روزرسانی داده‌ های قرارداد هوشمند به‌ طور منظم ارسال کنند.

انواع اوراکل‌ های زنجیره بلوکی

اوراکل یک زنجیره بلوکی یا قرارداد هوشمند را برای برقراری ارتباط با داده‌ های خارجی ارائه می‌ دهد. در مقابل، آن‌ ها به‌ عنوان رابط در دنیای خارج از زنجیره بلوکی عمل می‌ کنند. داده‌ های بیرونی باید در بسیاری از شرایط به سیستم زنجیره بلوکی بسته منتقل شوند، به‌ خصوص زمانی که قراردادهای هوشمند با رویدادهای دنیای واقعی مرتبط هستند. داده‌ های خارجی توسط اوراکل‌ های کریپتو پرس‌ و جو، تائید و احراز هویت می‌ شوند و سپس آن‌ ها را به سیستم بسته منتقل می‌ کنند. پس از آن، داده‌ های تائید شده برای اعتبار سنجی یک قرارداد هوشمند استفاده می‌ شود.

اوراکل‌ های سخت‌ افزاری و نرم‌ افزاری

اگرچه همیشه این‌ طور نیست، اما بیشتر اوراکل‌ های رمزنگاری، داده‌ های دیجیتال را تجزیه‌ و تحلیل می‌ کنند. اوراکل‌ های سخت‌ افزاری داده‌ ها را از دنیای فیزیکی تحویل می‌ گیرند، درحالی‌ که اوراکل‌ های نرم‌ افزاری داده‌ ها را از منابع دیجیتالی مانند وب‌ سایت‌ ها، سرورها یا پایگاه‌ های داده دریافت می‌ نمایند. علاوه بر این، اطلاعات از حسگرهای حرکت دوربین و حسگرهای شناسایی فرکانس رادیویی (RFID) می‌ تواند توسط اوراکل‌ های سخت‌افزاری تحویل و ارسال شود. داده‌ های فوری مانند نرخ ارز، تغییرات قیمت و اطلاعات سفر را می‌ توان از طریق اوراکل‌ های نرم‌ افزاری تحویل داد.

اوراکل‌ های ورودی و خروجی

اوراکل یک کانال ارتباطی دوطرفه با زنجیره بلوکی ایجاد و داده‌ ها را به داخل و خارج ارسال می‌ کند. درحالی‌ که اوراکل‌ های خروجی می‌ توانند داده‌ های زنجیره بلوکی را به دنیای خارج برسانند، اوراکل‌ های ورودی به احتمال زیاد داده‌ های خارج از زنجیره یا دنیای واقعی را به زنجیره بلوکی تحویل می‌ دهند. همچنین، داده‌ های وارداتی می‌ توانند تقریباً هر اطلاعاتی را از نوسانات قیمت دارایی گرفته تا شرایط هواشناسی و تأیید پرداخت‌ های تکمیل‌ شده، نشان دهند.

برای اوراکل‌ های ورودی، یک سناریوی قابل برنامه‌ ریزی معمول ممکن است موضوع ذیل باشد: اگر دارایی به قیمت مشخصی رسید، سفارش خرید بدهید. از سوی دیگر، اوراکل‌ های خروجی به دنیای بیرون از رویدادی که در زنجیره رخ داده است، هشدار می‌ دهند.

اوراکل‌ های متمرکز و غیرمتمرکز

اوراکل متمرکز توسط یک نهاد واحد مدیریت می‌ شود و به‌ عنوان تنها منبع داده قرارداد هوشمند عمل می‌ کند. استفاده از تنها یک منبع اطلاعاتی می‌ تواند خطرناک باشد زیرا اثربخشی قرارداد صرفاً به نهاد مسئول اوراکل بستگی دارد.

مداخله خصمانه یک بازیگر مخرب نیز مستقیماً بر قرارداد هوشمند تأثیر می‌ گذارد. مشکل اساسی اوراکل‌ های متمرکز این است که آن‌ ها یک نقطه شکست دارند و قراردادها را در برابر حملات و ضعف‌ ها آسیب‌ پذیرتر می‌ کنند.

برخی از اهداف اوراکل‌ های غیرمتمرکز مانند به حداقل رساندن ریسک طرف مقابل، مشابه اهداف زنجیره ­های بلوکی عمومی است. به‌ عنوان‌ مثال، آن‌ ها اطلاعات تحویل‌ داده ­شده به قراردادهای هوشمند را با عدم وابستگی به یک منبع حقیقت، قابل‌ اعتمادتر می‌ سازند.

قرارداد هوشمند برای ارزیابی اعتبار و صحت داده‌ ها با چندین اوراکل مشورت می‌ کند. به همین دلیل است که اوراکل‌ های غیرمتمرکز به‌ عنوان اوراکل‌ های اجماع نیز شناخته می‌ شوند. سایر زنجیره ­های بلوکی می‌ توانند از خدمات اوراکل غیرمتمرکز ارائه‌ شده توسط برخی از پروژه‌ های اوراکل زنجیره بلوکی استفاده کنند.

اوراکل‌ های انسانی

افرادی با دانش تخصصی در یک بخش خاص گاهی اوقات می‌ توانند به‌ عنوان اوراکل عمل کنند. آن‌ ها ممکن است اطلاعات را از منابع مختلف جمع‌ آوری، مشروعیت آن را بررسی و آن را به قراردادهای هوشمند تبدیل کنند. از آنجایی‌ که اوراکل‌ های انسانی می‌ توانند از رمزنگاری برای تأیید هویت خود استفاده کنند، احتمال اینکه یک کلاه‌ بردار با جعل هویت، یکی از اوراکل‌ های انسانی باشد و داده‌ های دستکاری‌ شده را ارائه دهد، اندک است.

اوراکل‌ های ویژه قراردادهای هوشمند

این اوراکل‌ ها برای کار با قراردادهای هوشمند ساخته‌ شده‌ اند که مجرد هستند. اگر توسعه‌ دهنده قصد دارد قراردادهای هوشمند متعددی را مستقر کند، لازم است اوراکل‌ های مختلف ویژه قرارداد را ایجاد کند.

اوراکل‌ های مخصوص قرارداد ارزش زمان و کار لازم برای به‌ روز نگه‌ داشتن آن‌ ها را ندارند. در عوض، آن‌ ها ناخوشایند هستند و فقط باید در شرایط خاصی مورد استفاده قرار گیرند.

اوراکل‌ های محاسباتی

تا به اینجا در مورد اوراکل‌ ها از نظر جستجو و ارائه داده صحبت کردیم (که به‌ عنوان اوراکل حامل داده یا اوراکل خودکار شناخته می‌ شود). با این‌ وجود، اوراکل‌ ها را می‌ توان برای انجام هر راه‌ حل محاسباتی دلخواه «خارج از زنجیره» مورد استفاده قرار داد، به‌ ویژه با توجه به محدودیت gas پرداختی بلوکی ذاتی اتریوم و هزینه محاسباتی بسیار بالا، سودمند است.

اوراکل‌ های محاسباتی، به‌ جای این­که صرفاً نتایج یک پرس‌ و جو را ارسال کنند، می‌ توانند برای انجام محاسبات بر روی مجموعه‌ ای از ورودی‌ ها و برگرداندن یک نتیجه محاسبه‌ شده استفاده شوند. در غیر این صورت محاسبه روی زنجیره غیرممکن است. به‌ عنوان‌ مثال، برای تخمین بازده یک قرارداد اوراق قرضه، می‌ توان از یک اوراکل محاسباتی برای انجام یک محاسبه رگرسیونی پیچیده محاسباتی استفاده کرد.

الگوهای طراحی اوراکل در زنجیره بلوکی

طبق تعریف، همه اوراکل‌ های مورد بحث چند نقش کلیدی دارند. این قابلیت‌ ها شامل توانایی‌ های زیر است:

  • داده‌ ها را از یک منبع غیر زنجیره بلوکی جمع‌ آوری کنید.
  • با استفاده از یک پیام امضا شده، داده‌ ها را روی زنجیره ارسال کنید.
  • داده‌ ها را با ذخیره‌ سازی آن‌ ها در یک قرارداد هوشمند در دسترس قرار دهید.

هنگامی‌ که داده‌ ها در فضای ذخیره‌ سازی قرارداد هوشمند ذخیره می‌ شوند، سایر قراردادهای خودکار می‌ توانند از طریق تماس‌ های پیامی که تابع «بازیابی» قرارداد هوشمند اوراکل را فراخوانی می‌ کنند، به آن دسترسی داشته باشند. همچنین می‌ توان آن را مستقیماً توسط گره‌ های اتریوم یا کلاینت‌ های فعال شبکه با «نگاه به فضای ذخیره‌سازی اوراکل» فراخوانی کرد.

سه روش اصلی برای راه‌ اندازی اوراکل را می‌توان به ­صورت زیر دسته ­بندی کرد:

راه هایی برای راه اندازی اوراکل

  1. اوراکل‌ های immediate-read اطلاعاتی را ارائه می‌ دهند که فقط برای تصمیم‌ گیری سریع لازم است، مانند «آیا این دانش‌آموز بالای 25 سال است؟» کسانی که می‌ خواهند این نوع داده‌ ها را پرس‌ و جو کنند معمولاً این کار را به‌ صورت «فوری» انجام می‌ دهند، به این معنی که جستجو فقط زمانی انجام می‌ شود که اطلاعات مورد نیاز باشد. به‌ عنوان‌ مثال، می‌ توان به کدهای شماره‌ گیری، گواهینامه­ های دانشگاهی، عضویت در سازمان، شناسایی فرودگاه و سایر اطلاعات اشاره کرد.
  2. اوراکلی که به­ صورت موثر یک سرویس پخش برای داده‌ هایی که احتمالاً تغییر می‌ کنند را (شاید هم به ­صورت منظم و هم به­ صورت مکرر) ارائه می‌ کند، یا توسط یک قرارداد هوشمند در زنجیره، نظرسنجی می‌ شود یا برای به‌ روزرسانی‌ ها توسط یک daemon (برنامه ­های پشت پرده) خارج از زنجیره مشاهده می‌ شود. داده‌ های آب‌ و هوا، فیدهای قیمت، آمارهای اقتصادی یا اجتماعی و داده‌ های ترافیک تنها چند نمونه از تنظیمات مربوط به اوراکل­ های انتشار – اشتراک هستند.
  3. چالش‌ برانگیزترین مقوله پاسخ به درخواست است. اینجا جایی است که فضای داده آن‌ قدر بزرگ است که در یک قرارداد هوشمند ذخیره نمی‌ شود و انتظار می‌ رود کاربران فقط از بخش کوچکی از کل اطلاعات در یک‌ زمان استفاده کنند. همچنین یک استراتژی تجاری قابل‌ دوام برای ارائه ­دهندگان داده است.

در عمل، اوراکلی با این مشخصات ممکن است به‌ عنوان سیستمی از قراردادهای هوشمند درون زنجیره‌ ای و زیرساخت‌ های خارج از زنجیره برای نظارت بر درخواست‌ ها و بازیابی و بازگرداندن داده‌ ها اجرا شود. درخواست داده از یک برنامه غیرمتمرکز اغلب یک روش ناهم‌ زمان با چندین مرحله است که در شکل زیر نشان داده شده است.

request response اوراکل

کاربردهای اوراکل در DApp ها

اوراکل مکانیسمی برای پل زدن شکاف بین دنیای خارج از زنجیره و قراردادهای هوشمند است که توسط بسیاری از برنامه‌ های کاربردی موجود در بازار استفاده می‌ شود. موارد زیر نمونه‌ هایی از داده‌ هایی است که اوراکل‌ ها ممکن است ارائه دهند:

  • داده‌ های زمانی و بازه­ های زمانی که برای محرک‌ های رویداد براساس اندازه‌ گیری‌ های دقیق زمان استفاده می‌ شوند.
  • داده‌ های بازار سرمایه، مانند بسته‌ های قیمت‌گذاری دارایی‌ ها و اوراق بهادار.
  • داده‌ های مرجع معیار، مانند نرخ بهره، در مشتقات مالی هوشمند گنجانده شده است.
  • داده‌ های آب‌ و هوا برای محاسبه حق بیمه براساس پیش‌ بینی آب‌ و هوا استفاده می‌ شود.
  • داده‌ های موقعیت جغرافیایی، مانند آنچه در ردیابی زنجیره تأمین استفاده می‌ شود.
  • برای قراردادهای بیمه، تائید خسارت مورد نیاز است.
  • رویدادهای ورزشی برای حل‌ و فصل بازارهای پیش‌ بینی و قراردادهای ورزشی استفاده می‌ شود.
  • آمار پرواز، مانند آماری که توسط گروه‌ ها و باشگاه‌ ها برای جمع‌ آوری بلیت‌ های پرواز استفاده می‌ شود.

مراقب نگرانی‌ های امنیتی باشید

اوراکل‌ ها با واردکردن داده‌ های خارجی به معادله، نقش مهمی در اجرای قرارداد هوشمند دارند. از سوی دیگر، اوراکل‌ ها خطر بزرگی را به همراه دارند، زیرا اگر منابع قابل‌ اعتمادی باشند و قابل هک باشند، می‌ توانند اجرای قراردادهای هوشمندی را که تغذیه می‌ کنند، به خطر بیندازند.

به‌ طور کلی، ضمن در نظر گرفتن استفاده از اوراکل، مدل اعتماد باید به دقت مورد توجه قرار گیرد. اگر فرض کنید که اوراکل قابل‌اعتماد است، ممکن است با قرار دادن آن در معرض ورودی‌ های احتمالی نادرست، امنیت قرارداد هوشمند را قربانی کنید. با این‌ وجود، اگر مفروضات امنیتی به دقت در نظر گرفته شوند، اوراکل‌ ها می‌ توانند ارزشمند باشند.

برخی از این نگرانی‌ ها را می‌ توان از طریق اوراکل‌ های غیرمتمرکز، ارائه قراردادهای هوشمند اتریوم با داده‌ های خارجی که قابل‌ اعتماد نیستند، برطرف کرد. قبل از شروع کاوش در اوراکل‌ ها که همانند پلی بین اتریوم و دنیای واقعی هستند، باید نوع اوراکل و مدل اعتماد آن را با دقت انتخاب کنید.

محمد امیدی
ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *