اوراکل و نقش آن در بلاکچین

0

 

اوراکل چیست؟

به هر وسیله یا عاملی که یک بلاکچین معین را به داده های خارج از زنجیره (بلاکچین) متصل می کند، اوراکل بلاکچین (Blockchain Oracle) گفته می شود.

در این جمله نا گفته های بسیاری وچود دارد که به تفصیل شرح خواهیم داد.

برای درک اوراکل های یک بلاکچین و اینکه چرا به آنها نیاز داریم، بیایید به یکی از ویژگی های اصلی بلاکچین  یعنی “غیر متمرکز” بودن نگاهی بیاندازیم.

مشکل اصلی بلاکچین ها

از آنجا که بلاکچین دارای ماهیتی به نام دفتر کل توزیع شده[1] است، هر گره یا node در شبکه باید بتواند نتیجه نهایی یکسان را با توجه به ورودی یکسان پیدا کند. در غیر این صورت، هنگامی که یک گره به دنبال تأیید معامله ای است گره دیگری نیز همین کار را انجام می دهد که در نهایت نتیجه های متفاوتی حاصل می شود. این نوع از معماری هدف مند است و به گونه ای طراحی شده است که به صورت رابطه علت و معلولی باشد.

اجازه بدید با مثالی قضیه را روشن تر کنیم؛ فرض کنید باب در شبکه بلاکچین می خواهد 5 دلار از حساب خودش برای آلیس بفرستد برای اینکار 5 دلار از موجودی باب کسر می شود و به حساب آلیس اضافه می شود، هر گره در شبکه به راحتی می تواند این کار را انجام دهد و نتایج یکسانی را بدست آورد.

اما اگر قضیه به این سادگی نباشد چطور؟ بیایید یک بلاکچین فرضی را تصور کنیم که در آن از API[2] ها برای تأیید معاملات استفاده می شود. فرض کنید می خواهیم مبلغ متغیری را براساس قیمت ETH (اتریوم) از حساب باب به آلیس ارسال کنیم. ما باید قرارداد خود را به یک API متصل کنیم تا قیمت ETH را دریافت کرده و سپس آن مبلغ را برای باب ارسال کنیم. در این مورد هر گره یا نود دیگری که بخواهد این قرارداد را تأیید کند نیز باید به همین API متصل شود.

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

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

 

 

در صورت عدم قطعی بودن بلاکچین، اجماع امکان پذیر نیست

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

اما ما نیاز داریم تا دنیای بلاکچین را با دنیای واقعی مرتبط کنیم. ما باید قیمت ETH و سایر ارزهای دیجیتال را در یک قرارداد داشته باشیم تا بتوانیم DeFi داشته باشیم. ما باید داده های هواشناسی را بدست آوریم تا بتوانیم یک سیستم غیر متمرکز بدون نیاز به اعتماد[3] داشته باشیم. ما برای استفاده از بلاکچین در جهت رسیدن به یکی از مهمترین اهداف آن یعنی قراردادهای هوشمند به داده ها نیاز داریم. پس چگونه می توانیم با این محدودیت ها ارتباط بین این دو جهان را برقرار کنیم؟

چگونه اوراکل ها این مشکل را حل می کنند؟

اوراکل بلاکچین به هر وسیله یا عاملی گفته می شود که یک بلاکچین معین را به داده های خارج از زنجیره (بلاکچین) متصل می کند. این اوراکل ها هر داده ورودی را وارد یک معامله خروجی می کنند. از این طریق می توان اطمینان داشت که بلاکچین خود حاوی تمام اطلاعات مورد نیاز برای تأیید خود است. به همین دلیل اوراکل ها به عنوان واسط یا دلال اطلاعات بلاکچین شناخته می شوند: آنها پل ارتباطی بین دنیای بلاکچین و دنیای واقعی هستند.

اما گفته می شود اوراکل ها بی عیب نیستند.

مشکل اوراکل چیست؟

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

اگر داده ها را از یک API، گره یا منبع واحد وارد بلاکچین کنیم، اساساً کل هدف استفاده از بلاکچین را خراب کرده ایم. منظور از اوراکل متمرکز این است که یک نهاد یا یک عامل، اختیار قرارداد هوشمند شما را در دست می گیرد و قرارداد هوشمند شما اکنون تفاوتی با یک قرارداد عادی ندارد. و حتی اگر اوراکل متمرکز هیچ گونه هدف مخربی نداشته باشد، ما قبلاً شاهد حملاتی بوده ایم که در آن یک اوراکل متمرکز مورد هک یا حمله قرار می گیرد و یا منسوخ می شود، یا به درستی حفظ نمی شود که در نهایت باعث آسیب می شود.

 

 

اوراکل های متمرکز دلیل نقص های اساسی هستند (منبع تصویر: Chainlink)

تعریف مشکل اوراکل

عیب اوراکل ها ترکیبی از این دو است:

  1. بلاکچین خود به تنهایی نمی تواند به داده های خارجی دسترسی پیدا کند.
  2. استفاده از اوراکل های متمرکز مزیت قراردادهای هوشمند را باطل می کند و خطرات عمده امنیتی ایجاد می کند.

راه حل:

Chainlink هر دوی این مشکلات را حل می کند و استانداردی برای اوراکل های غیر متمرکز است.

اوراکل غیر متمرکز چیست؟

یک اوراکل غیر متمرکز یا شبکه اوراکل غیر متمرکز گروهی از اوراکل های بلاکچین به طور مستقل هستند که داده های یک بلاکچین را فراهم می کنند. هر گره (node) یا اوراکل مستقل در شبکه اوراکل غیر متمرکز به طور مستقل داده ها را از یک منبع خارج از بلاکچین گرد هم می آورد و آنها را به بلاکچین ارائه می دهد. سپس داده ها جمع می شوند تا سیستم بتواند به مقدار قطعی و معینی از واقعیت در مورد یک داده برسد. بنابراین اوراکل های غیر متمرکز “مشکل اوراکل” را حل می کنند.

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

بازارهای مختلفی وجود دارند که از فناوری Chainlink استفاده می کنند تا به شما کمک کنند شبکه ای از گره های مستقل خود را برای استخراج داده های مورد نیازتان انتخاب کنید. به این ترتیب، قراردادهای هوشمند شما هرگز به راحتی بلا استفاده نخواهند شد.

این فناوری در واقع “چند بلاکچینه”[4] است و به طور مداوم در تلاش است تا با بلاکچین های بیشتری ادغام شود تا همه بلاکچین ها بتوانند به داده های مطمئن و خارج از بلاکچین امن دسترسی داشته باشند. و از همه بهتر، مستند سازی و جمع آوری مدارک این تکنولوژی برای مهندسین مبتدی و با تجربه عالی است.

استفاده از فقط یک اوراکل بلاکچین ریسک بزرگی است و chainlink یک اکوسیستم جدید خارق العاده را در مورد داده ارائه می دهد. اوراکل های بلاکچین چراغ راهی به سوی آینده است که قراردادهای هوشمند برای ما در نظر گرفته اند. اوراکل ها همچنین راهی برای ارتباط بلاکچین ها با یکدیگر فراهم می کنند که به عنوان قابلیت “کارکرد پذیری مشترک” شناخته می شود و همچنین گام رو به جلوی مهمی است.

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

[1]  دفتر کل توزیع شده که دفتر کل اشتراکی یا فناوری دفتر کل توزیع شده، نیز نامیده می‌شود، اجتماعی از داده‌های دیجیتال تکراری، اشتراک‌گذاری شده و همگام سازی شده‌است که از لحاظ جغرافیایی در جاهای مختلف، کشورها یا موسسات گسترده شده‌است. هیچ مدیر مرکزی یا ذخیره‌سازی متمرکز داده‌هایی در آن وجود ندارد.

[2]  واسط برنامه‌ نویسی کاربردی (Application programming interface) رابط بین یک سیستم عامل ( یا یک کتابخانه ) و برنامه هایی است که از آن تقاضای سرویس می کنند.

[3]  یک سیستم بدون نیاز به اعتماد (Trustless) به این معنی است که مشارکان درگیر در آن، برای عملکرد سیستم نیازی به شناختن یکدیگر و یا اعتماد به یکدیگر و یا یک شخص ثالث ندارند.

[4] blockchain agnosticیا بی طرفی در بلاکچین به این معنی است که راه حل های مختلف تجاری شما می تواند از طریق فناوری های مختلف بلاکچین بنیادی ساخته شود یا مورد استفاده قرار گیرد.

 

منبع: betterprogramming

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.