اوراکل چیست؟ (Oracle)
اوراکل به سیستمی اطلاق میشود که دادهها یا اطلاعات مورد نیاز را از خارج یک بلاکچین به درون آن منتقل میکند تا قراردادهای هوشمند بتوانند با اطلاعات واقعی دنیای بیرون تعامل داشته باشند. اوراکلها به عنوان پلی بین دنیای بلاکچین و دادههای خارج از آن عمل میکنند، مثلاً قیمتهای بازار، نتایج ورزشی، یا حتی وضعیت آب و هوا را به قراردادهای هوشمند منتقل میکنند تا این قراردادها بتوانند وظایف خود را بر اساس اطلاعات دقیق و بهروز انجام دهند.
اوراکل چیست؟ چرا وجود اوراکل برای کاربردی شدن قراردهای هوشمند واجب است؟ سرمایهگذاری بر روی ارزهای دیجیتال به علت جدا بودن کاربرد آنها از دنیای واقعیت همیشه با خطر و ریسک فراوانی همراه بوده است. این ریسک را قراردادهای هوشمند تا حد زیادی پوشش دادند. اما واقعیت این است که یک قرارداد هوشمند بدون وجود اوراکل ممکن است بسیار بی ارزش باشد!
آشنایی با اوراکل کمترین حسنی که برای شما خواهد داشت این است که شما را با ارزش خرید چین لینک و دیگر ارزهای بر پایه اوراکل بیشتر آشنا میکند. با ما همراه باشید تا در ادامه با این راه حل هوشمندانهِ دنیای بلاک چین یعنی اوراکلها بیشتر آشنا شوید.
اوراکل چیست ؟
اوراکل های بلاک چین، خدمات شخص ثالثی هستند که اطلاعات خارجی مورد نیاز را برای قراردادهای هوشمند ارائه میدهند. به زبان ساده،اوراکل ها به عنوان پلی بین بلاک چینها و دنیای خارج عمل میکنند. بلاکچین ها و قراردادهای هوشمند نمیتوانند به دادههایی که خارج از شبکه هستند (off-chain) دسترسی داشته باشند. با این وجود برای بسیاری از قراردادها، داشتن اطلاعات مناسب از دنیای خارج بسیار حیاتی است.
در اینجاست که اوراکلهای بر بستر بلاکچین وارد جریان میشوند. به این صورت که ارتباط میان دادههای off-chain (بیرون شبکه) و on-chain (داخل شبکه) برقرار میکنند. اوراکلها در اکوسیستم بلاکچین بسیار حیاتی هستند، زیرا که باعث گسترش دامنه فعالیت قراردادهای هوشمند میشوند. بدون اوراکلهای بلاکچینی، استفاده از قراردادهای هوشمند بسیار محدود میشوند، به این دلیل که آنها فقط به دادههای درون شبکه خود دسترسی خواهند داشت.
برای جستجوی دادهها از خارج از محیط بلاکچین، قراردادهای هوشمند باید از منابع مختلفی کمک بگیرند و همینطور باید از منابع شبکه نیز استفاده کنند. همچنین برخی از اوراکلها نه تنها توانایی این را دارند که اطلاعات را به قراردادهای هوشمند انتقال دهند، بلکه قابلیت ارسال مجدد آنها به منابع خارجی را نیز دارند.
اوراکلها انواع زیادی دارند و نحوه عملکرد اوراکل بر بستر بلاکچین، کاملاً به موضوعی بستگی دارد که اوراکل برای آن طراحی شده است. این مقاله به مرور برخی از این طرحها میپردازد.
نمونهای از اوراکل بلاکچین
فرض کنید آلیس و باب بر سر اینکه چه کسی برنده انتخابات آمریکا میشود شرط ببندند. آلیس فکر میکند که نامزد جمهوریخواه پیروز خواهد شد، درحالیکه باب معتقد است که دموکراتها پیروز انتخابات خواهند بود. آنها در مورد شرط بندی خود به توافق میرسند و وجوه خود را در یک قرارداد هوشمند قفل میکنند که بر اساس نتیجه انتخابات، تمام وجوه را به نفع برنده، آزاد و برای او واریز میکند.
از آنجایی که قرارداد هوشمند نمیتواند با دادههای خارجی تعامل داشته باشد، بنابراین برای تأمین اطلاعات لازم (در این مورد نتایج انتخابات ریاست جمهوری) باید به یک اوراکل متصل شود. بعد از این که انتخابات به پایان رسید، اوراکل از یک API معتبر، اطلاعات لازم را دریافت و به قرارداد هوشمند انتقال میدهد. سپس قرارداد هوشمند وجوه را بر اساس نتیجه انتخابات برای آلیس یا باب واریز میکند.
اطلاعات بیشتر
API به زبان ساده یک کد است که رابط بین دو نرم افزار و دو محیط از هم جداست. |
بدون انتقال اطلاعات توسط اوراکل، هیچ راهی وجود نداشت که این شرط بنا گذاشته شود و توسط شرکت کنندگان در قرارداد هوشمند، قابل اجرا باشد.
انواع مختلف اوراکلهای بلاکچین
اوراکلهای بلاک چینی را میتوان بر اساس کیفیت آنها به چند گروه مختلف طبقهبندی کرد:
- براساس منبع؛ آیا منبع اطلاعات از نرم افزار است یا سخت افزار؟
- از لحاظ جهت اطلاعات؛ ورودی است یا خروجی؟
- بر اساس صحت اطلاعات؛ آیا متمرکز است یا غیرمتمرکز؟
یک اوراکل میتواند در این دستهها قرار گیرد. برای مثال، اوراکلی که منبع آن، اطلاعات وبسایت یک شرکت باشد، یک اوراکل نرمافزاری متمرکز ورودی است.
-
اوراکل های نرم افزاری
اوراکلهای نرم افزاری (Software oracles) به منابع اطلاعاتی آنلاین وصل میشوند و اطلاعات را به بلاکچین منتقل میکنند. این اطلاعات میتواند از پایگاههای داده آنلاین، سرورها، وبسایت ها یا اساساً از هر منبع اطلاعاتی در وب بدست آید.
این واقعیت که اوراکلهای نرم افزاری به اینترنت متصل هستند، نه تنها آنها را قادر میسازد که اطلاعات قراردادهای هوشمند را تأمین کنند، بلکه میتوانند این اطلاعات را در آن واحد انتقال هم بدهند. این قابلیت آنها را به یکی از متداولترین اوراکلهای بلاکچینی تبدیل میکند.
اطلاعاتی که معمولاً توسط اوراکلهای نرم افزاری ارائه میشوند، میتوانند شامل نرخ ارزهای دیجیتال مانند قیمت خرید بیت کوین (BTC) و قیمت خرید تتر(USDT) یا اطلاعات لحظه ای پروازها و امثال این دادهها باشند.
-
اوراکل های سخت افزاری
برخی از قراردادهای هوشمند باید رابط مشترکی با دنیای واقعی داشته باشند. اوراکلهای سخت افزاری (Hardware oracles) برای بدست آوردن اطلاعات از دنیای واقعی و ارسال این اطلاعات به قراردادهای هوشمند، طراحی شده اند. چنین اطلاعاتی به عنوان مثال میتواند از طریق سنسورهای الکترونیکی، بارکدخوان و سایر دستگاههایی که برای خواندن اطلاعات به کار میروند، منتقل شوند.
اساساً یک اوراکل سخت افزاری اتفاقات دنیای واقعی را به مقادیر دیجیتالی ترجمه میکند که برای قراردادهای هوشمند قابل فهم است.
برای مثال، این سخت افزار میتواند سنسوری باشد برای بررسی اینکه آیا کامیونی که کالا را حمل میکند به محل بارگیری رسیده است یا خیر. اگر رسیده باشد، اوراکل اطلاعات را به یک قرارداد هوشمند انتقال میدهد که میتواند تصمیمات اتخاذ شده مبتنی بر آن را اجرا کند.
-
اوراکل های ورودی و خروجی
اوراکلهای ورودی (Inbound oracles)، اطلاعات را از منابع خارجی به قراردادهای هوشمند منتقل میکنند، در حالی که اوراکلهای خروجی (outbound oracles)، اطلاعات قراردادهای هوشمند را به دنیای خارج میفرستند.
مثالی از اوراکلهای ورودی این است که به قرارداد هوشمند میگوید دمایی که توسط یک سنسور اندازهگیری شده، چقدر است و مثال در مورد اوراکل خروجی، میتوان یک قفل هوشمند در نظر گرفت که اگر وجهی به آدرسی خاص واریز شود، قرارداد هوشمند این اطلاعات را از طریق یک اوراکل خروجی به مکانیزمی ارسال مینماید که قفل هوشمند را باز میکند.
-
اوراکل متمرکز و اوراکل غیرمتمرکز
در یک اوراکل متمرکز (Centralized oracles) ، فرایند توسط یک نهاد مرکزی کنترل میشود که ارائه دهنده انحصاری اطلاعات به قرارداد هوشمند است. استفاده از تنها یک منبع اطلاعاتی، میتواند مخاطرهآمیز باشد، زیرا اثربخشی قرارداد کاملاً به نهادی وابسته است که اوراکل را کنترل میکند. همچنین هرگونه عملکرد مجرمانه از سوی یک عضو، تأثیر سوء مستقیمی روی قرارداد هوشمند خواهد داشت. مشکل اصلی اوراکلهای متمرکز، این است که وجود یک نقطه ضعف و خرابی، باعث می شود که قراردادها در برابر آسیب پذیریها و حملات، مقاومت کمتری داشته باشند.
اوراکل غیرمتمرکز (Decentralized oracles) از برخی جهات، اهدافی یکسان با بلاکچینهای عمومی دارند؛ مانند جلوگیری از ریسک طرف مقابل. آنها میزان اعتبار اطلاعات ارائه شده به قراردادهای هوشمند را با اتصال به چندین منبع اطلاعاتی معتبر، افزایش میدهند. قراردادهای هوشمند اطلاعات را از چندین اوراکل مختلف جمعآوری میکنند تا اعتبار و صحت دادهها را مشخص کنند، به همین خاطر است که می توان اوراکل غیرمتمرکز را اوراکلهای اجماع عمومی (Consensus oracles) نیز نامید.
برخی از پروژههای بلاکچین، خدمات اوراکلهای غیرمتمرکز را به دیگر بلاکچینها ارائه میدهند. به عنوان مثال اوراکلهای غیرمتمرکز میتوانند در پیش بینی بازار نیز مفید باشند، یعنی جایی که درستی یک نتیجه خاص را میتوان به وسیله “اجماع نظر اجتماعی” تأیید کرد. هدف اوراکلهای غیرمتمرکز، دستیابی به عدم نیاز به شناخت و اعتماد به طرف مقابل (trustlessness) است. توجه به این نکته ضروری است که همانند شبکههای بلاکچینی که بر اساس اعتماد متقابل (ustless) هستند، اوراکلهای غیرمتمرکز نیز چالش اعتماد (trust) را کاملاً از بین نمیبرند، بلکه آن را میان تعداد بیشتری از مشترکان و کاربران توزیع میکنند.
-
اوراکل های اختصاصی برای یک قرارداد خاص
اوراکل اختصاصی برای یک قرارداد خاص (Contract-specific oracles)، اوراکلی است که برای استفاده در یک قرارداد هوشمند بخصوص طراحی شده است. این بدان معناست که اگر کسی بخواهد از چندین قرارداد هوشمند استفاده کند، باید به تناسب تعداد آنها، اوراکلهای مخصوص به آن قراردادها را تهیه کند.
این نوع از اوراکلها بسیار زمانبر و نگهداری از آنها پر هزینه است. شرکتهایی که میخواهند اطلاعات را از منابع مختلف به دست آورند ممکن است این روش را بسیار غیرعملی بدانند. از طرف دیگر از آنجا که این نوع از اوراکلهای اختصاصی، از ابتدا طراحی میشوند، سازندگان و توسعه دهندگان، متناسب با نیازهای مختص آن قرارداد، قابلیت انعطاف پذیری بالایی دارند.
-
اوراکلهای انسانی
گاهی اوقات افرادی با دانش تخصصی در زمینهای خاص نیز میتوانند در جایگاه اوراکل عمل کنند. آنها میتوانند صحت اطلاعات را از منابع مختلف بدست آورده و آن اطلاعات را به زبان قابل فهم برای قراردادهای هوشمند ترجمه کنند. از آنجا که اوراکلهای انسانی میتوانند هویت خود را به صورت رمزنگاری شده تأیید کنند در نتیجه احتمال جعل هویت آنها توسط یک کلاهبردار و ارائه اطلاعات نادرست نسبتاً کم است.
ایراد اوراکل
ازآنجاییکه قراردادهای هوشمند تصمیمات را بر اساس اطلاعات داده شده توسط اوراکلها اجرا میکنند، برای یک اکوسیستم بلاکچین سالم، حیاتی هستند. اصلیترین چالش در طراحی اوراکلها این است که اگر ماهیت اوراکل در معرض خطر قرار گیرد، قرارداد هوشمندی که به آن اتکا دارد نیز به خطر میافتد. از این جریان اغلب با عنوان ایراد اوراکل (The Oracle Problem) یاد میشود.
ازآنجاییکه اوراکلها از توافق عمومی بلاکچین تبعیت نمیکنند، در نتیجه شامل مکانیزمهای امنیتی که بلاکچینهای عمومی ارائه میدهند، نیستند. موضوع اعتماد در اوراکلهای ثالث و غیرمتمرکز و نحوه اجرا شدن قراردادهای هوشمند، همچنان به عنوان مسئله ای حل نشده باقی مانده است.
حملاتی که انسان در آنها نقش دارد نیز میتوانند یک تهدید باشند. بدین صورت که فردی با نیت بد، به جریان دادههای بین اوراکل و قرارداد دسترسی پیدا کند و دادهها را تحریف و یا جعل نماید.
مطالب بیشتر: حد ضرر چیست ؟ |
جمع بندی: اوراکل های بلاک چین
ما سعی کردیم در این مقاله با این سوال شما را آشنا کنیم که معنی اوراکل چیست و چه کاربردهایی دارد؟! برای پذیرش جهانی بلاکچین ها، مکانیزم قابل اتکایی که ارتباط میان قراردادهای هوشمند و دنیای خارج را تسهیل میکنند، حیاتی است. بدون اوراکلهای بر بستر بلاکچین، قراردادهای هوشمند مجبورند که تنها به اطلاعات درون شبکه اتکا کنند که به طور قابل توجهی قابلیتهای آنها را محدود میکند. اوراکلهای غیرمتمرکز، پتانسیل ایجاد مکانیزمهای امنیتی که بسیاری از ریسکهای سیستمی را از اکوسیستم بلاک چین حذف کنند را دارند. اوراکل های بلاکچینی، هنوز هم یکی از مهمترین عناصر تشکیل دهنده بلوکها هستند که با عملکردی ایمن، قابل اطمینان و بدون نیاز به اعتماد متقابل (trustless)، برای ارتقاء اکوسیستم بلاکچین فعالیت میکنند.
سوالات متداول
- اوراکل چیست؟
اوراکل های بلاک چین، خدمات شخص ثالثی هستند که اطلاعات خارجی مورد نیاز را برای قراردادهای هوشمند ارائه میدهند. به زبان ساده،اوراکل ها به عنوان پلی بین بلاک چینها و دنیای خارج عمل میکنند. بلاکچین ها و قراردادهای هوشمند نمیتوانند به دادههایی که خارج از شبکه هستند (off-chain) دسترسی داشته باشند. با این وجود برای بسیاری از قراردادها، داشتن اطلاعات مناسب از دنیای خارج بسیار حیاتی است.
- انواع مختلف اوراکلهای بلاکچین
- اوراکل های نرم افزاری
- اوراکل های سخت افزاری
- اوراکل های ورودی و خروجی
- اوراکل متمرکز و اوراکل غیرمتمرکز
- اوراکل های اختصاصی برای یک قرارداد خاص
- اوراکلهای انسانی
- معایب اوراکل چیست؟
اصلیترین چالش در طراحی اوراکلها این است که اگر ماهیت اوراکل در معرض خطر قرار گیرد، قرارداد هوشمندی که به آن اتکا دارد نیز به خطر میافتد. از این جریان اغلب با عنوان ایراد اوراکل (The Oracle Problem) یاد میشود.
ازآنجاییکه اوراکلها از توافق عمومی بلاکچین تبعیت نمیکنند، در نتیجه شامل مکانیزمهای امنیتی که بلاکچینهای عمومی ارائه میدهند، نیستند. موضوع اعتماد در اوراکلهای ثالث و غیرمتمرکز و نحوه اجرا شدن قراردادهای هوشمند، همچنان به عنوان مسئله ای حل نشده باقی مانده است.
حملاتی که انسان در آنها نقش دارد نیز میتوانند یک تهدید باشند. بدین صورت که فردی با نیت بد، به جریان دادههای بین اوراکل و قرارداد دسترسی پیدا کند و دادهها را تحریف و یا جعل نماید.