اوراکل Oracle در بلاک چین
مفهوم اوراکل
اوراکل های بلاک چین Blockchain Oracles سومین بخش قراردادهای هوشمند Smart Contracts هستند که اطلاعات خارجی را برای اسمارت کانترکت ها فراهم میکنند.
بلاک چینها و قراردادهای هوشمند به خارج از شبکه دسترسی ندارند، در حالی که در بسیاری از اسمارت کانترکتها، داشتن اطلاعات خارج از شبکه برای اجرای قرارداد حیاتی است. این زمانی است که نیاز به اوراکلهای بلاک چین احساس میشود، به این شکل که آنها ارتباط بین شبکه با اطلاعات بیرون نتورک را فراهم میکنند. اوراکلها در اکوسیستم بلاک چین بسیار حیاتی هستند، چرا که دامنه فعالیت Smart Contract ها را گسترش میدهند. بدون آنها قراردادهای هوشمند کاربرد بسیار محدودی خواهند داشت. دلیل این است که Oracle ها، فقط به دادههای درون شبکههای خود دسترسی پیدا میکنند.
توجه به این نکته ضروری است که یک اوراکل خود منبع داده نیست، بلکه لایهای است که منابع داده خارجی را جستجو، تأیید و سپس آن اطلاعات را انتقال میدهد. دادههای منتقل شده توسط Oracle، به اشکال مختلفی ارائه میشوند. به عنوان مثال اطلاعات مربوط به قیمت، تکمیل موفقیتآمیز پرداخت یا دمای اندازهگیری شده توسط یک سنسور.
با دستور قراردادهای هوشمند برای دستیابی به اطلاعات خارج از شبکه، منابع شبکه مصرف میشوند. برخی از اوراکلها علاوه بر جمع آوری داده برای اسمارت کانترکتها، توانایی ارسال داده از قرارداد هوشمند به بیرون از شبکه را نیز دارند. انواع مختلفی از اوراکلها وجود دارند. نحوه عملکرد یک Oracle، کاملاً به آنچه برای آن طراحی شده، بستگی دارد.
فرض کنید که دیوید و جو بر روی اینکه چه کسی برنده انتخابات ریاست جمهوری ایالات متحده می شود، شرطبندی کردهاند. دیوید معتقد است که نامزد جمهوریخواه پیروز خواهد شد، در حالی که جو معتقد است دموکراتها برنده خواهند بود. آنها در مورد شرایط شرطبندی توافق کرده و وجوه خود را در یک قرارداد هوشمند قفل میکنند، تا بر اساس نتایج انتخابات، تمام مبلغ به برنده داده شود.
از آنجایی که اسمارت کانترکت نمیتواند با دادههای خارجی تعامل داشته باشد، باید به اوراکل وابسته شود، تا اطلاعات لازم را در اختیار او قرار دهد (در این مثال، نتایج انتخابات ریاست جمهوری). پس از پایان انتخابات، Oracle از یک API قابل اعتماد برای یافتن اینکه کدام نامزد برنده شده است سوال میکند و این اطلاعات را به قرارداد هوشمند میفرستد. سپس قرارداد بسته به نتیجه، وجوه را برای دیوید یا جو ارسال مینماید.
بدون انتقال داده اوراکل، هیچ راهی برای حل این شرط، به گونهای که از اجرای قطعی آن توسط طرفین مطمئن باشیم، وجود ندارد.
انواع مختلف اوراکل در بلاک چین
اوراکل ها با توجه به آیتمهای مختلفی طبقهبندی میشوند :
- منبع – آیا دادهها از نرم افزار یا سخت افزار سرچشمه میگیرند؟
- مسیر اطلاعات – اطلاعات ورودی یا خروجی است؟
- اعتماد – آیا متمرکز است یا غیرمتمرکز؟
یک اوراکل میتواند در چند دسته باشد. به عنوان مثال، اوراکلی که از طریق وب سایت یک شرکت اطلاعات را تهیه میکند، یک اوراکل متمرکز نرم افزاری ورودی است.
اوراکل های نرم افزاری – Software Oracle
اوراکل نرم افزاری، با منابع آنلاین اطلاعات تعامل دارد و آن را به بلاک چین منتقل میکند. این اطلاعات میتوانند از طریق پایگاه دادههای آنلاین، سرورها، وب سایتها یا هر منبع اطلاعاتی در وب باشند.
این واقعیت که اوراکل نرم افزاری به اینترنت متصل است، نه تنها به آنها امکان میدهد اطلاعات را برای قراردادهای هوشمند تهیه کنند، بلکه این اطلاعات را در لحظه نیز منتقل میکنند. این امر Oracle ها را به یکی از متداول ترین انواع اوراکلهای زنجیرهای تبدیل کرده است. اطلاعاتی که معمولاً توسط اوراکل نرم افزاری ارائه میشوند، میتوانند شامل نرخ ارز، قیمت دارایی دیجیتال یا اطلاعات پرواز در لحظه باشند.
اوراکل سخت افزاری – Hardware Oracle
برخی از قراردادهای هوشمند باید با دنیای واقعی ارتباط برقرار کنند. اوراکلهای سخت افزاری برای دستیابی به اطلاعات از دنیای فیزیکی و قراردادن آنها در اختیار اسمارت کانترکتها، طراحی شدهاند. چنین اطلاعاتی میتواند از حسگرهای الکترونیکی، اسکنر بارکد و سایر دستگاههای خواندن اطلاعات منتقل شود.
اوراکل سخت افزاری، در اصل رویدادهای دنیای واقعی را به مقادیر دیجیتالی ترجمه میکند، به طوریکه توسط قراردادهای هوشمند قابل درک باشد. به عنوان مثال، نمونهای از آنها میتواند یک سنسور باشد، که رسیدن یک کامیون حامل کالا به اسکله بارگیری را بررسی و اطلاعات را به شبکه ارسال میکند، تا Smart Contract با توجه به آن، تصمیماتی را اجرا کند.
اوراکلهای ورودی و خروجی
اوراکلهای ورودی – Inbound Oracle، اطلاعات را از منابع خارجی به قراردادهای هوشمند انتقال میدهند، در حالی که اوراکلهای خروجی – Outbound Oracle، اطلاعات را از اسمارت کانترکتها به دنیای خارجی میفرستند.
نمونهای از اوراکلهای ورودی: میتوان به قرارداد هوشمندی گفت که دما، توسط یک سنسور اندازه گیری شود تا از آن استفاده کند. نمونه ای از اوراکلهای خروجی: اوراکل را میتوان سنسور قفل هوشمند در نظر گرفت. اگر وجوهی به یک آدرس واریز شود، قرارداد هوشمند این اطلاعات را از طریق اوراکل خروجی به مکانیزمی ارسال و قفل هوشمند را باز میکند.
اوراکل های متمرکز و غیرمتمرکز
یک اوراکل متمرکز – Centralized Oracle توسط یک نهاد واحد کنترل میشود و تنها ارائهدهنده اطلاعات برای قرارداد هوشمند است. استفاده از تنها یک منبع اطلاعات میتواند خطرناک باشد، چراکه اثر بخشی قرارداد کاملاً به نهاد کنترل کننده آن Oracle بستگی دارد.
همچنین، دستکاری هرگونه عامل خارجی میتواند تأثیر مخرب مستقیمی بر اسمارت کانترکت داشته باشد. مشکل اصلی اوراکلهای متمرکز، وجود یک نقطه شکست است، که باعث میشود قراردادها نسبت به آسیبها و حملات، کمتر مقاومت کنند.
اوراکل های غیر متمرکز – Decentralized Oracles، برخی از اهداف مشابه بلاک چین عمومی را دارند. آنها به یک منبع جهت ارائه دادهها به قرارداد هوشمند اتکا نکرده و برای تعیین اعتبار و صحت دادهها، از Oracleهای مختلف استفاده میکنند. به همین دلیل میتوان از اوراکلهای غیر متمرکز به عنوان اوراکل اجماع نیز نام برد.
برخی از پروژههای بلاک چینی وجود دارند، که خدمات اوراکل غیرمتمرکز را به دیگر بلاک چینها ارائه میدهند. اوراکلهای غیر متمرکز همچنین میتوانند در بازارهای پیش بینی مفید باشند، جایی که اعتبار یک نتیجه خاص با اجماع اجتماعی، قابل اثبات است.
اوراکل های غیرمتمرکز برای دستیابی به عدم نیاز به اعتماد تلاش میکنند، اما توجه به این نکته مهم است که درست مانند شبکههای بی نیاز به اعتماد بلاک چین، Oracleهای غیر متمرکز نیز عدم نیاز به اعتماد را به طور کامل از بین نمیبرند، بلکه توزیع آن را در بین بسیاری از شرکت کنندگان انجام میدهند.
اوراکل های قرارداد خاص – Contract-specific Oracles
این اوراکلها، برای استفاده توسط قراردادهای هوشمند خاصی طراحی شدهاند. این بدان معناست که اگر کسی بخواهد چندین Smart Contract راهاندازی کند، باید تعداد متناسبی از اوراکلهای خاص قرارداد را توسعه دهد.
این نوع اوراکل، برای ادامه کار بسیار وقتگیر و گران به حساب میآید. شرکتهایی که میخواهند دادهها را از منابع مختلف استخراج کنند، ممکن است این رویکرد را بسیار غیرعملی بدانند. اما از طرف دیگر، از آنجایی که اوراکل های خاص قرارداد میتوانند از ابتدا برای یک استفاده خاص طراحی شوند، توسعهدهندگان از انعطافپذیری بالایی برای متناسبسازی آنها با نیازهای خاص برخوردار هستند.
اوراکلهای انسانی – Human Oracles
بعضی اوقات افراد با دانش تخصصی در یک زمینه خاص نیز میتوانند به عنوان اوراکل ظاهر شوند. آنها میتوانند صحت اطلاعات را از منابع مختلف تحقیق، تأیید و آن اطلاعات را به قراردادهای هوشمند ترجمه کنند. از آنجایی که اوراکلهای انسانی میتوانند هویت خود را با استفاده از رمزنگاری تأیید کنند، احتمال اینکه کلاهبرداری هویت خود را جعل کند و دادههای خراب را ارائه دهد، نسبتاً کم است.
چالش اوراکل ها
از آنجایی که قراردادهای هوشمند تصمیمات را بر اساس دادههای ارائه شده توسط اوراکلها اجرا میکنند، آنها برای یک اکوسیستم بلاک چین سالم، مهم هستند. چالش اصلی در زمینه طراحی اوراکل این است که اگر Oracle به خطر بیفتد، اسمارت کانترکتی که به آن متکی است نیز به خطر میافتد. این اتفاق اغلب به عنوان چالش اوراکل خوانده میشود.
از آنجایی که اوراکل بخشی از اجماع اصلی بلاک چین نیست، در نتیجه متأسفانه بخشی از سازوکارهای امنیتی که Blockchain های عمومی میتوانند ارائه دهند، از Oracle ها پشتیبانی نمیکند. تضاد اعتماد بین اوراکل ها، به عنوان سومین بخش یک قرارداد و اجرای بدون اعتماد قراردادهای هوشمند، یک چالش عمدتاً حل نشده است.
سخن پایانی
یک مکانیسم قابل اعتماد که ارتباط بین قراردادهای هوشمند و جهان خارجی را تسهیل کند، برای پذیرش جهانی بلاک چین بسیار حیاتی است. بدون اوراکل های بلاک چین، اسمارت کانترکتها فقط باید به اطلاعاتی که قبلاً در شبکههایشان وجود دارد اتکا کنند، که قابلیتهای آنها را به میزان قابل توجهی محدود میکند.
اوراکل های غیر متمرکز امکان معرفی مکانیسمهای ایمنی را دارند که میتوانند بسیاری از ریسکهای سیستمیک را از اکوسیستم بلاک چین دور کند. Oracle های بلاک چین یکی از ستونهای مهم ساختمانی است، که باید بصورت ایمن، مطمئن و بی نیاز به اعتماد، برای رشد اکوسیستم بلاک چین اجرا شود.
منبع : وال هالا کریپتو