قرارداد هوشمندی که وام رمزارزی میدهد باید بداند قیمت وثیقه چقدر است، ولی خود بلاکچین هیچ راهی برای دیدن قیمت بازار ندارد. این جدایی عمدی است و بدون آن، شبکه اصلا نمیتواند به اجماع برسد. اوراکل همان پلی است که این شکاف را پر میکند: سرویسی که دادهی بیرون از زنجیره را میخواند و به شکلی قابل اتکا روی زنجیره ثبت میکند. در این درس سطح پیشرفته میبینیم چرا این پل لازم است، یک فید قیمت چطور ساخته میشود، مهاجمها چطور آن را دستکاری میکنند و کدام دفاعها در عمل کار میکنند. با اسمارت اف ایکس همراه باشید.
اوراکل چیست؟
اوراکل سرویسی است که دادهای از دنیای بیرون را جمعآوری میکند، آن را روی بلاکچین مینویسد و در اختیار قراردادهای هوشمند میگذارد.
مهم است که نقشش را دقیق بدانید: این سرویس داده را میرساند و درستی آن را در منبع اصلی تضمین نمیکند. اگر منبع اشتباه باشد، همان اشتباه با دقت کامل روی زنجیره ثبت میشود.
همین موضوع باعث شده این حوزه یکی از حساسترین بخشهای زیرساخت باشد. امنیت یک پروتکل از امنیت اوراکل آن بیشتر نمیشود. ساختار قراردادهایی که این داده را مصرف میکنند در درس دیفای بررسی شده است.
چرا قرارداد هوشمند به این پل نیاز دارد؟

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

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

پرکاربردترین شکل این سرویس، همان فید قیمت است و سه مرحله دارد.
- جمعآوری. هر نود قیمت را از چند صرافی میگیرد و معمولا میانگین وزنی بر پایهی حجم معاملات را حساب میکند تا صرافیهای کمحجم اثر زیادی نگذارند.
- گزارش. هر نود عدد خودش را امضا میکند و به قرارداد تجمیع میفرستد.
- تجمیع. قرارداد بهجای میانگین ساده، معمولا میانهی گزارشها را برمیدارد. با این کار یک نود خراب یا مغرض، عدد نهایی را جابهجا نمیکند.
نکتهای که کمتر گفته میشود، شرط بهروزرسانی است. فید قیمت هر ثانیه بهروز نمیشود، چون هر بهروزرسانی یک تراکنش با هزینهی شبکه است. بهجای آن دو شرط تعریف میشود: تغییر قیمت بیش از درصد مشخص، یا گذشتن زمان معین از آخرین بهروزرسانی.
نتیجهی مستقیم این قاعده را باید بدانید: قیمت روی زنجیره همیشه با کمی تاخیر و در پلههای مشخص حرکت میکند و با قیمت لحظهای صرافیها دقیقا یکی نیست.
حمله به اوراکل چطور انجام میشود؟

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

هیچکدام از این روشها بهتنهایی کامل نیستند و ترکیبشان ریسک را بهشکل معناداری کم میکند.
میانگین وزنی زمانی. بهجای قیمت لحظهای، میانگین قیمت در بازهای از زمان استفاده میشود. جابهجایی چندثانیهای قیمت در چنین میانگینی اثر کمی میگذارد، هرچند واکنش به حرکتهای واقعی هم کندتر میشود.
چند منبع مستقل. داده از چند صرافی و گاهی از چند شبکهی اوراکل گرفته میشود و اگر اختلاف زیادی داشته باشند، قرارداد وارد حالت احتیاط میشود.
کران انحراف. اگر عدد تازه بیش از حد مجاز با قیمت قبلی فاصله داشته باشد، بهجای پذیرش، عملیات متوقف میشود.
وثیقهی گزارشدهنده. نودها برای شرکت در شبکه دارایی قفل میکنند و گزارش نادرست به از دست رفتن آن میانجامد. همان منطق اقتصادی که در درس استیکینگ بررسی شده است.
مسئلهی اعتماد در این حوزه
در ادبیات فنی، به این تناقض «مسئلهی اوراکل» گفته میشود و شناختنش برای ارزیابی هر پروتکلی لازم است.
تناقض این است: بلاکچین ساخته شده تا نیاز به اعتماد به واسطه را حذف کند، ولی به محض اینکه به دادهی بیرونی نیاز پیدا کند، دوباره به یک واسطه وابسته میشود. هرچه آن واسطه غیرمتمرکزتر باشد، این وابستگی کمتر است و هیچوقت به صفر نمیرسد.
نتیجهی عملی برای سرمایهگذار روشن است: وقتی ریسک یک پروتکل را میسنجید، کیفیت اوراکل آن را در همان ردیف کیفیت قرارداد هوشمندش قرار دهید. همین موضوع در زنجیرهی ریسک داراییهای توکنشده هم یکی از حلقههاست و در درس RWA و توکن دارایی واقعی بررسی شده است.
چطور یک پروتکل را از این نظر بررسی کنیم؟
شش پرسشی که پاسخشان معمولا در اسناد فنی پروژه آمده است:
- قیمت از کدام شبکهی اوراکل و از چند منبع خوانده میشود؟
- تعداد نودهای گزارشدهنده چقدر است و آیا مستقل از هم هستند؟
- شرط بهروزرسانی چیست و بیشترین فاصلهی ممکن میان دو بهروزرسانی چقدر است؟
- آیا قیمت لحظهای استفاده میشود یا میانگین وزنی زمانی؟
- در صورت قطع شدن فید، قرارداد چه رفتاری دارد؟
- آیا کران انحراف و مکانیزم توقف اضطراری تعریف شده است؟
اگر پاسخ این پرسشها در مستندات پیدا نشد، همان نبود پاسخ یک نشانه است. پروژههای جدی این جزئیات را با دقت منتشر میکنند.
نکات کلیدی این درس
- اوراکل دادهی بیرون از زنجیره را میرساند و درستی منبع را تضمین نمیکند.
- نیاز به آن از قاعدهی قطعیت بلاکچین میآید.
- مهمترین محور دستهبندی، متمرکز یا غیرمتمرکز بودن است.
- فید قیمت با میانهی گزارش چند نود ساخته میشود تا دادهی پرت اثر نگذارد.
- قیمت روی زنجیره با تاخیر و پلهای بهروز میشود.
- رایجترین حمله، دستکاری قیمت یک استخر کمعمق با وام فوری است.
- دفاعهای اصلی: میانگین زمانی، چند منبع، کران انحراف و وثیقهی گزارشدهنده.
اسمارت اف ایکس؛ مرجع مقایسه و انتخاب بهترین خدمات مالی
اسمارت اف ایکس همراه هوشمند شما در مسیر معاملهگری است؛ ما ابزار، دانش و تحلیلهای پیشرفته را در اختیار شما میگذاریم تا با اطمینان و هوشمندی، تصمیمات سرمایهگذاری بهتر و بهروزتری بگیرید.
برخی از مزایای همکاری با اسمارت اف ایکس شامل موارد زیر است:
- بررسی بیطرفانه: بروکرها و بسترهای معاملاتی را بر اساس واقعیتها و بدون جانبداری بررسی میکنیم تا انتخاب آگاهانهای داشته باشید.
- رشد سواد مالی: محتوای آموزشی و تحلیلی جامع تهیه میکنیم تا مهارتهای لازم برای فعالیت موفق در بازارهای مالی را کسب کنید.
- تهیه مقالات جدید: با تمرکز بر دانش روز، مقالات آموزشی و تحلیلی بهروز منتشر میکنیم.
- پایبندی به اصل شفافیت: نظرات و بازخوردهای کاربران را بدون حذف یا ویرایش منتشر میکنیم.
💬 اگر سوالی دارید یا نیاز به راهنمایی دارید، میتوانید از راههای ارتباطی زیر با ما در تماس باشید:
- تلگرام پشتیبانی: smartfxsupport
- ایمیل پشتیبانی: support@smartfxac.com
جمعبندی
اوراکل بخشی از زیرساخت است که کاربر معمولی هیچوقت مستقیم با آن کار نمیکند و در همان حال، سرنوشت داراییاش به آن گره خورده است. هر بار که یک پروتکل وامدهی وثیقهای را میفروشد یا یک قرارداد بیمه پرداخت میکند، پشت آن تصمیم یک عدد نشسته که از بیرون آمده است. برای همین، پرسش «قیمت را از کجا میخواند» باید کنار پرسش «قراردادش را چه کسی حسابرسی کرده» بنشیند. برای شروع، یکی از پروتکلهای وامدهی که میشناسید را انتخاب کنید و در مستنداتش دنبال دو چیز بگردید: نام شبکهی اوراکل و شرط بهروزرسانی فید قیمت.
سوالات متداول درباره اوراکل
۵ سوالاوراکل بخشی از خود بلاکچین است؟
خیر. سرویسی جداگانه است که داده را از بیرون میآورد و روی زنجیره مینویسد. بلاکچین بهتنهایی هیچ راهی برای دیدن دنیای بیرون ندارد.
چرا قیمت روی زنجیره با قیمت صرافی فرق دارد؟
چون بهروزرسانی هزینهی شبکه دارد و فقط با تغییر قیمت بیش از درصد مشخص یا گذشت زمان معین انجام میشود. علاوه بر آن، بسیاری از پروتکلها بهجای قیمت لحظهای از میانگین وزنی زمانی استفاده میکنند.
آیا حمله به اوراکل هنوز اتفاق میافتد؟
بله. با وجود بهبود زیرساختها، دستکاری قیمت در استخرهای کمعمق همچنان یکی از رایجترین روشهای سوءاستفاده در پروتکلهای تازه و کمبررسی است.
تفاوت اوراکل متمرکز و غیرمتمرکز چیست؟
نوع متمرکز داده را از یک منبع میگیرد و همان منبع تنها نقطهی شکست است. نوع غیرمتمرکز از چند نود مستقل گزارش میگیرد و نتیجه را از میان آنها میسازد، پس یک گزارش نادرست عدد نهایی را جابهجا نمیکند.
عدد تصادفی روی بلاکچین چطور ساخته میشود؟
با سرویسهای تصادف قابل اثبات که عدد را بیرون از زنجیره تولید میکنند و همراه با اثباتی میفرستند که قرارداد میتواند صحتش را بررسی کند. استفاده از دادههای خود بلاک برای این کار قابل دستکاری است.

