اوراکل بلاکچین سیستمی است که دادهی دنیای بیرون، مثل قیمت یک دارایی، را دریافت و بررسی میکند و به قرارداد هوشمند میرساند. قرارداد هوشمند برنامهای روی بلاکچین است که خودکار اجرا میشود، اما به اینترنت دسترسی ندارد. پس بدون اوراکل نمیداند قیمت بیرون چقدر است. در دیفای (خدمات مالی روی بلاکچین) و وام رمزارزی، اوراکل قیمت وثیقه را اعلام میکند. LTV (نسبت وام به ارزش وثیقه) و زمان لیکوییدیشن (فروش اجباری وثیقه) بر همین اساس تعیین میشود. اگر دادهی اوراکل غلط یا دستکاریشده باشد، قرارداد سالم هم تصمیم اشتباه میگیرد.
آخرین بهروزرسانی: ۲۶ مهر ۱۴۰۵
فهرست مطالب
- اوراکل بلاکچین چیست؟
- چرا قرارداد هوشمند به اوراکل نیاز دارد؟
- اوراکل قیمت چگونه کار میکند؟
- نقش اوراکل در وام رمزارزی چیست؟
- Oracle Problem چیست؟
- انواع اوراکل
- حمله دستکاری اوراکل چیست؟
- اوراکلهای معروف
- چطور ریسک اوراکل کم میشود؟
- کاربر عادی چه چیزهایی را بررسی کند؟
- جمعبندی
- سوالات متداول دربارهی اوراکل بلاکچین
قرارداد هوشمند میتواند دارایی جابهجا کند، وام بدهد و وثیقه را لیکویید کند. اما خودش نمیداند بیرون از بلاکچین چه اتفاقی افتاده است. برای دریافت قیمت، نتیجهی یک رویداد یا هر دادهی دنیای واقعی، قرارداد به یک پل نیاز دارد. این پل اوراکل بلاکچین است.
اوراکل بلاکچین چیست؟
اوراکل بلاکچین (Blockchain Oracle) سیستمی است که دادهی دنیای بیرون را دریافت، بررسی و به قرارداد هوشمند منتقل میکند. این داده میتواند قیمت، آبوهوا، نتیجهی مسابقه یا وضعیت یک تراکنش در شبکهی دیگر باشد. اوراکل بخشی از خود بلاکچین نیست، اما به برنامههای روی بلاکچین اجازه میدهد بر اساس اطلاعات واقعی تصمیم بگیرند.
تعریف دقیق اوراکل بلاکچین (Blockchain Oracle)
اوراکل بلاکچین یک واسطهی نرمافزاری یا سختافزاری است. دادههای خارج از زنجیره (Off-chain) را جمعآوری و تأیید میکند و به قراردادهای هوشمند درون بلاکچین (On-chain) میرساند. ویکیپدیا اوراکل را سرویسی شخص ثالث برای قراردادهای هوشمند معرفی میکند که دادهی جهان بیرون را وارد زنجیره میکند (Blockchain oracle).
اوراکلها پل ارتباطی دوطرفهاند. دادههایی مثل قیمت لحظهای رمزارزها یا نتیجهی مسابقات را به درون بلاکچین میآورند. نتیجهی اجرای قرارداد هوشمند را هم میتوانند به سیستمهای بیرون از شبکه برسانند.
اوراکل به زبان خیلی ساده؛ تشبیه اوراکل به دنیای واقعی
بلاکچین را مثل اتاقی کاملاً بسته و بدون پنجره تصور کنید. قراردادهای هوشمند کسانی هستند که داخل این اتاق کار میکنند. کارشان را با دقت و امنیت زیادی انجام میدهند، اما راهی به بیرون ندارند. نمیدانند بیرون باران میبارد یا قیمت یک کیلو سیب در بازار چقدر است.
اوراکل مثل یک پیک امین است. بیرون میرود، اطلاعات واقعی را میپرسد، روی کاغذ مینویسد و از درگاه مخصوص به دست افراد داخل اتاق میرساند. بدون اوراکل، بلاکچین شبیه کامپیوتری پیشرفته اما بدون اینترنت است. برنامههای داخلیاش را عالی اجرا میکند، ولی از دنیای بیرون خبر ندارد.
چرا قرارداد هوشمند به اوراکل نیاز دارد؟
قرارداد هوشمند به اوراکل نیاز دارد، چون بلاکچین محیطی بسته و قطعی است. یعنی همهی نودها، کامپیوترهایی که بلاکچین را اجرا میکنند، باید با دادهی یکسان به نتیجهی یکسان برسند. اگر هر قرارداد مستقیم به اینترنت وصل شود، نودها ممکن است جوابهای متفاوتی بگیرند. راه دستکاری هم باز میشود. اوراکل داده را به شکل استاندارد و قابل بررسی وارد شبکه میکند. مستندات اتریوم هم همین نقش را برای اوراکلها توضیح میدهد (Oracles در ethereum.org).
اوراکل قیمت چگونه کار میکند؟
اوراکل قیمت داده را از چند منبع جمع میکند، آنها را مقایسه میکند و نتیجه را به قرارداد میفرستد. روند کار معمولاً از یک درخواست شروع میشود. قرارداد هوشمند به دادهای مثل قیمت لحظهای یک دارایی نیاز دارد. پس درخواست خود را روی شبکه ثبت میکند، یا قیمت را از یک فید میخواند؛ یعنی جریانی از قیمت که مرتب بهروز میشود. نودهای اوراکل نتیجهی نهایی را همراه با امضای دیجیتال به بلاکچین میفرستند. امضای دیجیتال نشان میدهد داده واقعاً از همان فرستنده آمده است. فیدهای قیمت شبکههایی مثل Chainlink نمونهی رایج این مدلاند (Chainlink Data Feeds).
| مرحله | وظیفه |
|---|---|
| جمعآوری | دریافت قیمت از صرافیها و بازارهای مختلف |
| اعتبارسنجی | حذف دادههای مشکوک |
| تجمیع | ساخت قیمت میانه یا میانگین مقاوم |
| انتشار | ارسال قیمت نهایی به قرارداد |
| مصرف | استفاده برای LTV، وام و لیکوییدیشن |
نقش اوراکل در وام رمزارزی چیست؟
اوراکل به پروتکل وام، یعنی برنامهی وامدهی روی بلاکچین، میگوید وثیقهی کاربر چقدر ارزش دارد. مثلاً اگر کاربر ETH وثیقه بگذارد، اوراکل قیمت دلاری آن را اعلام میکند. سپس LTV محاسبه میشود. اگر ارزش وثیقه کم شود، اوراکل قیمت جدید را اعلام میکند. در این حالت پروتکل ممکن است موقعیت را لیکویید کند؛ یعنی وثیقه را بهاجبار بفروشد.
پس در یک وام رمزارزی سه عدد به هم وصلاند. قیمت وثیقه ارزش لحظهای دارایی است. LTV نسبت وام به ارزش وثیقه است. آستانهی لیکوییدیشن نقطهای است که فروش اجباری وثیقه از آن شروع میشود. هر سه به دادهی اوراکل وابستهاند.
فرض کنید در یک پروتکل دیفای اتر وثیقه گذاشتهاید و تتر وام گرفتهاید. یک شب قیمت اتر در چند صرافی بهسرعت افت میکند. شما هنوز خبر ندارید، اما اوراکل قیمت جدید را به قرارداد رسانده و LTV شما بالا رفته است. اگر حاشیهی امن کافی نگذاشته باشید، لیکوییدیشن پیش از آنکه گوشیتان را نگاه کنید اتفاق میافتد.
Oracle Problem چیست؟
مشکل اوراکل این است: چطور مطمئن شویم دادهی واردشده درست است؟ قرارداد میتواند کد خود را اجرا کند، اما نمیتواند بهتنهایی ثابت کند قیمت بیرونی درست است. برای مثال، اگر قیمت یک توکن ۱ دلاری یک میلیون دلار اعلام شود، قرارداد ممکن است وثیقهی کمارزش را بسیار گران حساب کند.
بیشتر بخوانید: LTV چیست؟ عددی که مشخص میکند روی رمزارزتان چقدر وام میگیرید
انواع اوراکل
اوراکلها را از دو جهت دستهبندی میکنند: منبع داده (متمرکز یا غیرمتمرکز) و زمان انتشار داده (Push یا Pull).
اوراکل متمرکز
داده از یک منبع میآید. این مدل ساده است، اما نقطهی شکست واحد دارد. یعنی اگر همان یک منبع مختل یا دستکاری شود، قرارداد هم دادهی غلط میگیرد.
اوراکل غیرمتمرکز
داده از چند منبع و چند نود جمع میشود و معمولاً مقاومتر است. با این حال کاملاً بدون نیاز به اعتماد نیست، چون خود اوراکل بیرون از اجماع اصلی بلاکچین کار میکند. اجماع روشی است که نودها با آن بر سر یک نتیجه توافق میکنند.
اوراکل Push
قیمت بهصورت دورهای، یا وقتی به اندازهی مشخصی تغییر کند، روی زنجیره منتشر میشود.
اوراکل Pull یا On-Demand
داده هنگام نیاز منتشر میشود. بخش تأییدکننده (verifier) باید آن را دقیق تأیید کند.
حمله دستکاری اوراکل چیست؟
مهاجم تلاش میکند دادهی قیمتی غیرواقعی وارد پروتکل کند یا منبع قیمت را موقتاً تغییر دهد. این کار ممکن است با فلشلون، بازار کمنقدینگی، نقص verifier یا سرقت کلید انجام شود. فلشلون وامی بدون وثیقه است که در یک تراکنش گرفته و پس داده میشود. نمونهای تازه از این نوع حمله را در ماجرای دستکاری قیمت وثیقه در Bonzo Lend بررسی کردهایم.
تفاوت انواع حمله
| نوع | روش |
|---|---|
| دستکاری بازار | تغییر قیمت در استخر کمنقدینگی (مخزن معاملهی توکنها) |
| نقص verifier | قبول داده یا امضای نامعتبر |
| سرقت کلید | انتشار داده با کلید معتبر سرقتشده |
| دادهی قدیمی | استفاده از قیمت کهنه (stale) |
مطالعه موردی: پیامد دستکاری اوراکل در دنیای واقعی
یکی از نمونههای شناختهشدهی آسیبپذیری در دیفای حمله به پروتکل منگو مارکتس (Mango Markets) در شبکهی سولانا بود. در این حادثه مهاجم با سرمایهی کلان و وامهای سریع (Flash Loans) قیمت توکن بومی این پلتفرم را بهشدت بالا برد. این افزایش مصنوعی و موقت بود و در صرافیهای غیرمتمرکز کمعمق اتفاق افتاد. بازار کمعمق خریدار و فروشندهی کمی دارد، پس قیمتش با پول نسبتاً کم جابهجا میشود.
اوراکل این پروتکل قیمت را فقط از همین بازارهای کمعمق میگرفت. پس قیمت دستکاریشده را ارزش واقعی وثیقه حساب کرد. مهاجم سپس با تکیه بر این وثیقهی بیش از اندازه گرانشده، میلیونها دلار دارایی دیگر وام گرفت و عملاً پروتکل را خالی کرد. این حادثه نشان داد اوراکلهای چندمنبعی، که قیمت چند بازار بزرگ را با هم ترکیب میکنند، برای امنیت پلتفرمهای مالی حیاتیاند.
اوراکلهای معروف
اینها چند اوراکل شناختهشده در دیفای هستند.
| اوراکل | تمرکز اصلی |
|---|---|
| Chainlink | فیدهای قیمت غیرمتمرکز |
| Pyth | دادهی بازار برای کاربردهای مالی |
| Supra | مدلهای Push و On-Demand |
| RedStone | معماری ماژولار داده |
| API3 | اتصال APIها به بلاکچین |
چطور ریسک اوراکل کم میشود؟
پروتکلهای جدی برای کم کردن ریسک اوراکل چند لایه محافظت روی هم میگذارند:
- چند منبع مستقل قیمت
- محاسبهی میانه (median) بهجای اتکا به یک عدد
- محدودیت تغییر قیمت در هر بهروزرسانی
- رد کردن دادهی قدیمی
- بررسی دقیق امضا
- سقف وام برای دارایی کمنقدینگی
- قطع خودکار در نوسان غیرعادی (Circuit Breaker) و توقف اضطراری
کاربر عادی چه چیزهایی را بررسی کند؟
لازم نیست برنامهنویس باشید تا ریسک اوراکل یک پروتکل را بسنجید. پیش از گذاشتن وثیقه این سؤالها را بپرسید:
- پروتکل از چه اوراکلی استفاده میکند؟
- قیمت از چند منبع میآید؟
- پروتکل سابقهی هک دارد؟
- دارایی وثیقه چقدر نقدشونده است؟
- LTV شما چقدر حاشیهی امن دارد؟
فرض کنید پروتکل تازهای سود وامدهی بالایی برای یک توکن کمحجم پیشنهاد میکند. با یک نگاه به مستندات میبینید قیمت این توکن فقط از یک استخر کوچک خوانده میشود. همین یک نکته کافی است تا خطر را ببینید: اگر کسی قیمت آن استخر را جابهجا کند، وثیقهها هم با قیمت غلط سنجیده میشوند.
جمعبندی
اوراکل بلاکچین پل بین قرارداد هوشمند و دادهی دنیای واقعی است. در دیفای، قیمت وثیقه، LTV و لیکوییدیشن به آن وابستهاند. اگر داده غلط باشد، قرارداد سالم هم تصمیم اشتباه میگیرد. به همین دلیل امنیت اوراکل و verifier بخش اصلی طراحی هر محصول مالی روی بلاکچین است.
نکتهی مهم: اینها صرفاً جنبهی آموزشی دارند و توصیهای نیستند.
با وام رمزارزی رابینهود میتوانید با گذاشتن دارایی دیجیتال قابل قبول بهعنوان وثیقه، وام را به شکل دارایی دیجیتال از جمله تتر دریافت کنید.
سوالات متداول دربارهی اوراکل بلاکچین
اوراکل بلاکچین به زبان ساده چیست؟
زیرساختی است که دادهی بیرونی مثل قیمت را به قرارداد هوشمند منتقل میکند تا قرارداد بتواند بر اساس اطلاعات واقعی اجرا شود.
اوراکل در دیفای چه کاربردی دارد؟
برای قیمتگذاری وثیقه، محاسبهی LTV، وامدهی و لیکوییدیشن. بدون اوراکل پروتکل وام نمیداند وثیقهی کاربر چقدر ارزش دارد.
حمله دستکاری اوراکل چیست؟
ورود دادهی جعلی یا قیمت دستکاریشده برای وادار کردن قرارداد به تصمیم اشتباه؛ مثلاً ارزشگذاری بیشازحد یک وثیقهی کمارزش.
آیا اوراکل غیرمتمرکز بدون ریسک است؟
خیر. اوراکل غیرمتمرکز ریسک را کم میکند اما حذف نمیکند، چون خودش بیرون از اجماع اصلی بلاکچین کار میکند و منابع داده هم ممکن است خطا داشته باشند.
تفاوت اوراکل Push و Pull چیست؟
در مدل Push قیمت بهصورت دورهای روی زنجیره منتشر میشود. در مدل Pull داده هنگام نیاز منتشر و همان لحظه تأیید میشود.
چرا دادهی قدیمی اوراکل خطرناک است؟
چون در بازار پرنوسان قیمت چند دقیقه پیش ممکن است با قیمت واقعی فاصلهی زیادی داشته باشد و وام یا لیکوییدیشن بر اساس عدد اشتباه انجام شود.













