اوراکل

به نام خداامیررضا یوسفونددرس پایگاه دادهاستاد حاج اسماعیلیموضوع:اوراکلاوراکل چیست و در بلاک چین چه می‌ کند؟داده‌های بیرونی که شبکه‌ی بلاک چین و قرارداد‌های هوشمند به آن دسترسی ندارند توسط «اوراکل»‌ (Oracle) در دسترس آن‌ها قرار می‌گیرد. اوراکل پلی است، میان دنیای بلاک چین و دنیای بیرون از آن. بسیاری از معاملاتی که به شکل قراردادهای هوشمند در سطح بلاک چین و شبکه‌های غیرمتمرکز مختلف صورت می‌گیرند، نیاز به اطلاعاتی در بیرون از این شبکه دارند که در این حال اوراکل وارد می‌شود. داده‌های خارجی اوراکل به شکل سخت‌افزاری، نرم‌افزاری و به‌کمک اینترنت اشیا یا برنامه‌های کار با داده‌های بزرگ به قراردادهای هوشمند ارسال می‌شوند. داده‌هایی که از سوی اوراکل به‌سمت بلاک چین فرستاده می‌شوند، از انواع مختلفی هستند. مثلاً می‌توانند داده‌هایی درباره‌ی نوسانات قیمت یا اطلاعاتی درباره‌ی تراکنش‌های موفق باشند تا طرفین یک معامله بتوانند درباره‌ی تراکنش‌ها و قرارداد‌هایشان تصمیم‌گیری کنند.انواع اوراکلحالا که مشخص شد اوراکل اهمیت زیادی در پیشبرد شبکه‌های بلاک چین و قراردادهای هوشمند دارد، پس بگذارید در ادامه به معرفی انواع اوراکل بپردازیم. به‌ طور کلی اوراکل به چند دسته‌ی زیر تقسیم می‌شود که در ادامه بیشتر به آن‌ها می‌پردازیم.اوراکل نرم‌افزاریاوراکل سخت‌افزاریاوراکل ورودیاوراکل خروجیاوراکل مبتنی بر اجماعاوراکل‌های متمرکز و غیرمتمرکزاوراکل‌ انسانیاوراکل قراردادهای خاصاوراکل نرم‌ افزاری«اوراکل نرم‌افزاری» (Software Oracle) نوعی از سرویس‌های آنلاین است که به منابع آنلاین داده‌های موردنیاز بلاک چین و قراردادهای هوشمند دسترسی دارد. این منابع می‌توانند پایگاه‌های داده‌ی آنلاین، سرورها، وب‌سایت‌های آنلاین و پایگاه‌های داده‌ی عمومی باشند. این سرویس‌ها اطلاعاتی مانند دمای هوا، داده‌های مربوط به حمل‌ونقل و تردد، قیمت و نوسانات ارزش دارایی‌‌های مختلف و مواردی از این دست را تهیه می‌کنند. ارتباط اوراکل‌های نرم‌افزاری با داده‌های تازه و دست‌اول اینترنت باعث می‌شود که حسابی کاربرد داشته باشند. در واقع، اطلاعات و داده‌هایی که اوراکل‌های نرم‌افزاری در دست دارند، بسیار به‌روز است.اوراکل سخت‌ افزاریبرخی از قراردادهای هوشمند به دریافت اطلاعاتی نیاز دارند که مستقیماً از دنیای بیرون از بلاک چین و از منابع فیزیکی و سخت‌افزاری به دست‌شان می‌رسد. برای مثال، پیش‌برد امور مرتبط با زنجیره‌ی تأمین وابسته به داده‌هایی است که «اوراکل‌های سخت‌افزاری» (Hardware Oracle) از کالاهای موجود در زنجیره دریافت می‌کنند و آن‌ها را به بلاک چین انتقال می‌دهند. اوراکل سخت‌ افزاری مثل سنسوری است که با کالاهای فیزیکی در ارتباط است، مانند اسکنرهای خواندن بارکدهای محصولات و کدهای RFID (همان سریال‌های شناسایی هر کالا) که اطلاعات را دریافت می‌کنند، آن را به شکل کدهایی قابل‌درک برای بلاک چین درمی‌آورند و سپس به قراردادهای هوشمند ارسال می‌کنند تا کار خود را پیش ببرند.اوراکل ورودی«اوراکل‌های ورودی» (Inbound Oracles) اطلاعات را از دنیای بیرون به داخل شبکه‌ی بلاک چین می‌آورند. مثلاً نمونه‌ای از اوراکل ورودی، اوراکلی است که اطلاعات مربوط به دما را از طریق سنسوری که دما را اندازه می‌گیرد به شبکه‌ی بلاک چین می‌فرستد. بعد از ارسال این داده‌ها از بیرون شبکه قرارداد‌های هوشمند به فعالیت خود ادامه می‌دهند.اگر بخواهیم مثال‌های دیگری از اوراکل ورودی بزنیم، مثلاً باید به وب‌سایتی اشاره کنیم که آخرین اخبار هواشناسی را به بلاک چین منتقل می‌کند. این اطلاعات می‌تواند در قراردادهای هوشمند متنوعی کاربرد داشته باشد. مثلاً در بازی معروف پوکیمان‌گو (Pokemon Go) از اوراکل ورودی استفاده می‌شود. براساس موقعیت مکانی کاربر که از طریق جی‌پی‌اس تعیین می‌گردد، بازی مشخص می‌کند که فاصله‌ی جوجه‌هایی که از تخم بیرون می‌آیند، چقدر است (اگر با این بازی آشنا باشید، می‌دانید که در آن تخم‌ها و جوجه‌هایی در کار است). البته محدودیت‌هایی برای سرعت حرکت کاربران وجود دارد و نباید سرعت از میزان مشخصی تجاوز کند. اگر سرعت از حدی بیشتر شود، مسافت طی‌شده برای دریافت مجوز بیرون‌آمدن جوجه‌ها از تخم در بازی صادر نخواهد شد.در چنین بازی و موردی، تیم طراحی برای دریافت اطلاعات و سازماندهی روند بازی به داده‌هایی استناد می‌کند که از طریق جی‌پی‌اس کاربران دریافت می‌شود. این روند مشابه عملکرد اوراکل ورودی است و در آن داده‌هایی از بیرون، تکلیف سلسله‌ای از اقدامات را در داخل قرارداد هوشمند تعیین می‌کنند. شناخت اینکه اوراکل چیست می‌تواند به درک بهتر سازوکار بسیاری از شبکه‌های موجود در فناوری‌های مختلف کمک کند.اوراکل خروجی«اوراکل‌های خروجی» (Outbound Oracles) به قراردادهای هوشمند کمک می‌کنند که اطلاعات موجود در خود را به دنیای بیرون از شبکه‌ی بلاک چین بفرستند. برای مثال، قفلی هوشمند را در نظر بگیرید که بعد از دریافت اطلاعات پرداخت از سوی بلاک چین طی یک قرارداد هوشمند و به طور خودکار در یک برنامه‌ی رایانه‌ای باز می‌شود.این نمونه‌ای از ارتباط میان بلاک چین و اوراکل‌های خارجی است. در مثالی که درباره‌ی آقای ایکس و خانم ایگرگ و شرط‌بندی بر سر آب‌وهوا زده شد، می‌توانیم به استفاده از اوراکل خروجی اشاره کنیم. فرض کنید که خانم ایگرگ برنده‌ی شرط‌بندی شده بود، در این صورت، قرارداد هوشمند می‌تواند اطلاعات نهایی درباره‌ی برنده را به کیف پول دیجیتالی او گزارش بدهد و مبلغی را به شکل خودکار برایش واریز کند. در واقع، با اطلاعاتی که از سوی بلاک چین به نشانی کیف پول دیجیتالی این فرد ارسال می‌شود، تراز مالی‌اش افزایش پیدا می‌کند و مبلغی به کیف پولش واریز می‌شود.در اینجا، قرارداد هوشمند نقش یک اوراکل خارجی را بازی خواهد کرد. پس اطلاعات می‌توانند در قالبی دوسویه از بلاک چین به فضای بیرونی آن و از بیرون به فضای داخلی بلاک چین در تبادل باشند. بلاک چین و قراردادهای هوشمند آن، برای شکوفایی و امکان به‌کارگیری در عرصه‌های مختلف نیاز به تبادل اطلاعات دارند.اوراکل مبتنی بر اجماعیکی دیگر از انواع اوراکل، «اوراکل مبتنی بر اجماع» (Consensus-based Oracle) است. این اوراکل‌ها از منابع متنوعی برای جمع‌آوری اطلاعات و داده‌ها استفاده می‌کنند. مثلاً به جای اینکه فقط از یک وب‌سایت برای جمع‌آوری اطلاعات بهره ببرند، داده‌های خود را از ۴ وب‌سایت دریافت می‌کنند.البته این تمام ماجرا نیست. دلیل اینکه به این اوراکل‌ها، اوراکل مبتنی بر اجماع می‌گویند این است که تنها زمانی اطلاعات جمع‌آوری‌شده از منابع مختلف را به بلاک چین منتقل می‌کنند که این اطلاعات از منابع مختلف‌شان با هم هم‌خوانی و شباهت داشته باشد؛ به عبارت دیگر، زمانی که نوعی اجماع بر سر شباهت و یکسانی داده‌ها و اطلاعات وجود داشته باشد، این اطلاعات به بلاک چین ارسال می‌شوند.مثلاً اگر قرار باشد که اوراکل درباره‌ی دمای هوای روز یکشنبه اطلاعات جمع‌آوری کند و به بلاک چین برای پیش‌برد یک قرارداد هوشمند وارد نماید، چندین سایت هواشناسی را جست‌وجو می‌کند و تا رسیدن به نتیجه‌ی یکسان در تمام منابع، کار جست‌وجو را ادامه می‌دهد. حال اگر ۵ سایت هواشناسی را جست‌وجو کرد و همگی دمای فرضا، ۲۰ سانتی‌گراد را نشان دادند، عدد را به بلاک چین اعلام می‌کند. واضحاً این مسئله باعث می‌شود که سرعت اوراکل‌های مبتنی بر اجماع از نمونه‌های دیگر کمتر باشد و البته درصد اطمینان از اطلاعات اوراکل‌های مبتنی بر اجماع بیش از سایر اوراکل‌هاست.اوراکل‌ های متمرکز و غیرمتمرکز«اوراکل‌های متمرکز» (Centralized Oracles) فقط از یک منبع اطلاعاتی استفاده می‌کنند. به همین خاطر است که نمی‌توان زیاد به آن‌ها اعتماد کرد و زمانی که پای داده‌های مهم به میان باشد باید منابع دیگر را هم بررسی کرد و به سراغ انواع دیگری از اوراکل رفت. ضمن اینکه از طریق این اوراکل‌ها امکان دارد که دخالت مشکوک کاربران و تهاجم‌های هکرها هم به میان بیاید که روی نتیجه‌ی قراردادهای هوشمند اثرگذار هستند. اوراکل‌های متمرکز همواره در خطر حملات هکرها هستند و آسیب‌پذیری‌شان زیاد است.نوع دیگر اوراکل‌ها هم مدل «غیرمتمرکز» (Decentralized Oracles) است. این اوراکل‌ها برخی از ویژگی‌های بلاک چین‌های عمومی را دارند. اوراکل‌های غیرمتمرکز فقط به یک منبع استناد نمی‌کنند و به نوعی شبیه اوراکل‌های مبتنی بر اجماع هستند. با اینکه اوراکل‌های غیرمتمرکز تلاش می‌کنند بحث اعتماد به طرفین را از بین ببرند ولی باید توجه داشت که این موضوع به‌صورت کامل محقق نمی‌شود. در واقع در این نوع اوراکل، درست مانند شبکه‌های بلاک چین، مشکل اعتماد کاملاً حل نمی‌شود، بلکه بین چندین طرف توزیع شده و از این راه ضریب اطمینان را افزایش می‌دهد.اوراکل‌ های انسانیگاهی برخی از افراد با دانشی تخصصی در زمینه‌ای خاص هم می‌توانند در نقش اوراکل ظاهر شوند که به آن‌ها «اوراکل‌های انسانی» (Human Oracles) می‌گوییم. این دسته از افراد با جست‌وجو درباره‌ی اطلاعات موردنیاز برای قراردادهای هوشمند، اطلاعاتی دقیق و درست را از منابع گوناگون تهیه می‌کنند و آن‌ها را در اختیار قراردادهای هوشمند در بلاک چین قرار می‌دهند. از آنجایی که اوراکل‌های انسانی می‌توانند به کمک رمزنگاری هویت خود را ثابت کنند، احتمال اینکه تقلب و ورود اطلاعات اشتباه به بلاک چین رخ دهد، کم می‌شود. روش‌های مختلفی برای جمع‌آوری اطلاعات اوراکل‌های انسانی و انتقال‌شان به بلاک چین وجود دارد. در هر حال، این اوراکل‌ها می‌توانند اطلاعات لازم برای پاسخ‌گویی به پرسش‌های برخی از قراردادهای هوشمند را پیدا کنند.برخی از اوراکل‌های انسانی حالتی جمعی دارند و گروهی از افراد متخصص درباره‌ی موضوعی خاص با هم دست به جمع‌آوری اطلاعات می‌زنند و بعد از اینکه به اجماع و اتفاق نظر درباره‌ی یک موضوع رسیدند، پاسخ قرارداد هوشمند را آماده می‌کنند و آن را به بلاک چین منتقل می‌نمایند. برای رسیدن به پاسخ پرسش‌های کیفی که بیشتر نیاز به تحلیل دارند، استفاده از اوراکل‌های انسانی به اوراکل‌های دیگر ترجیح داده می‌شود. مثلاً زمانی که قرار است یک قرارداد هوشمند براساس پاسخ به این پرسش پیش برود که آیا یک مقام سیاسی به کشورش خیانت خواهد کرد یا نه، نظر افراد بسیار مهم‌تر از داده‌هایی است که به شکل دیجیتالی جمع‌آوری می‌شوند.مشکلاتمشکل اصلی اوراکل چیست و چه چالش‌هایی ایجاد می‌کند؟ یکی از مشکلات اساسی اوراکل این است که کاربران باید به منابع خارجی اطلاعاتی که آن‌ها فراهم می‌کنند، اعتماد داشته باشند. فرقی نمی‌کند که اطلاعات اوراکل از یک سنسور تولید شده یا از یک وب‌سایت جمع‌آوری شده باشد. در هر حال، کاربر چاره‌ای جز اعتمادکردن به آن‌ها ندارد.از آنجایی که اوراکل‌ها در نقش طرف ثالث یا واسطه در ارتباط با شبکه‌های بلاک چین فعالیت می‌کنند و در واقع، عضوی از این شبکه‌ها نیستند، نمی‌توان زیرساخت‌های امنیتی و اعتمادی که در تأیید داده‌های درونی بلاک چین وجود دارد، را برای آن‌ها هم به کار برد. در میان پُل ارتباطی که بین اوراکل و بلاک چین قرار دارد، ممکن است یک واسطه‌ی خطرناک مثل مهاجم یا هکر قرار داشته باشد. البته روش‌های مختلفی برای بالابردن امنیت اوراکل‌ها وجود دارد. در هر حال، شکاف‌های امنیتی و چالش‌هایی هم در این میان وجود دارد که نمی‌توان آن‌ها را نادیده گرفت.مثلاً در نمونه‌ای که در مقاله گفته شد، زمانی که آقای ایکس و خانم ایگرگ شرط‌بندی کردند، امکان دارد که یکی از این دو نفر، به وب‌سایتی دسترسی پیدا کند که قرار است، اطلاعات دمای هوا در روز موعود را به اطلاع او برساند. دستکاری اطلاعات از سوی یکی از این دو نفر برای پیش‌بردن شرط‌بندی به سمت‌و‌سوی دلخواه‌شان محتمل است.یکی از روش‌های افزایش امنیت اوراکل‌ها استفاده از انواعی است که از چندین منبع برای جمع‌آوری اطلاعات‌شان استفاده می‌کنند. اگر قرار باشد که در صنایع مختلف، بازارهای گوناگون و زمینه‌های سیاسی، اقتصادی و اجتماعی متنوع از بلاک چین استفاده شود و پای ارزهای دیجیتال به دنیا بازتر شود، نیاز به رشد و توسعه‌ی اوراکل‌ها هم وجود دارد. استفاده از داده‌ها و اطلاعات جهان بیرون از بلاک چین و شبکه‌های غیرمتمرکزِ مختلف است که می‌تواند به توسعه‌ی استفاده از انواع کریپتوکارنسی هم منجر شود یا غیرمتمرکزبودن را در ارتباطات و تعاملات مختلف جا بیندازد.سخن پایانیدر این مقاله به بررسی اینکه یک اوراکل چیست و در دنیای دیجیتال چگونه کار می‌کند پرداختیم. به‌شکل خیلی خلاصه گفتیم که اوراکل‌ها اطلاعات مورد نیاز قراردادهای هوشمند را که در شبکه‌ی بلاک چین قرار ندارد در اختیار آن‌ها می‌گذارد. در ادامه نیز به بررسی انواع این اوراکل‌ها و نحوه‌ی کارشان پرداختیم که کاربرد بسیار جالبی نیز دارند. امُیدواریم که اطلاعات این مقاله مورد استفاده‌ی شما قرار بگیرد و شما را یک قدم با دنیای دیجیتال و قراردادهای هوشمند بیشتر آشنا کند.