A vibrant, futuristic conference scene with

اوراکل در دیفای چیست: لایه داده‌ای که قیمت‌ها، وام‌ها و تصفیه‌ها را تعیین می‌کند

By Marcus Hale9 دقیقه مطالعه

یک اوراکل در دیفای، نرم‌افزاری است که داده‌های خارجی را جمع‌آوری، تأیید و منتشر می‌کند، که معمولاً قیمت‌های بازار است، به‌صورت زنجیره‌ای تا قراردادهای هوشمند بتوانند منطقی را اجرا کنند که نمی‌توانند تنها از وضعیت بلاک‌چین محاسبه کنند. در وام‌دهی و پرپس، آن قیمت اوراکل یک مرجع UI نیست، بلکه ورودی اجرایی است که قدرت وام‌گیری و محرک‌های تصفیه را تعیین می‌کند.

نکات کلیدی

آستانه‌های تصفیه

را در برابر آن عدد واحد بررسی می‌کند.پرپسو سیستم‌های حاشیه‌ای همین کار را برای تأمین مالی، PnL و تصفیه‌ها انجام می‌دهند.

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

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

چرا دیفای به اوراکل‌ها نیاز دارد

قراردادهای هوشمند نمی‌توانند به‌طور ایمن "اینترنت را بررسی کنند" زیرا بلاک‌چین‌ها سیستم‌های بسته و قطعی هستند. یک قرارداد فقط می‌تواند وضعیت زنجیره‌ای را بخواند. نمی‌تواند یک نقطه پایانی API یک صرافی را فراخوانی کند، یک وب‌سایت را اسکرپ کند یا یک ترمینال داده‌های بازار سنتی را جستجو کند و هنوز هم هر اعتبارسنج به‌طور مستقل همان نتیجه را تأیید کند.

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

این است که چرا دیفای به اوراکل‌ها نیاز دارد یک سوال انتزاعی دربارهتمرکززدایینیست. این درباره این است که آیا یک بازار وام‌دهی می‌تواند به‌طور ایمن ارزش وثیقه و

آستانه‌های تصفیه

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

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

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

مدل‌های اعتماد اوراکل و اجماع: متمرکز در مقابل غیرمتمرکز

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

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

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

این همچنین جایی است که تفاوت بین یک اوراکل قیمت و یک اوراکل داده مهم است. یک اوراکل قیمت قیمت‌های بازار را تأمین می‌کند که مستقیماً به منطق مالی مانند ارزش‌گذاری وثیقه و محرک‌های تصفیه می‌رود. یک اوراکل داده گسترده‌تر است و می‌تواند انواع مختلفی از اطلاعات خارجی فراتر از قیمت‌ها را ارائه دهد. خوراک‌های قیمت مستقیماً در مسیر تصفیه برای موقعیت‌های اهرمی قرار دارند، به همین دلیل است که بیشترین توجه خصمانه را جلب می‌کنند.

حملات و دفاع‌های اوراکل: دستکاری، وام‌های فوری و TWAP

یک حمله اوراکل یک سوءاستفاده است که در آن یک مهاجم باعث می‌شود یک قرارداد هوشمند داده‌های خارجی نادرست، معمولاً یک قیمت نادرست، را مصرف کند و از اجرای قرارداد بر اساس آن ورودی بد سود ببرد. قرارداد "مغشوش" نیست. آن دقیقاً همان کاری را انجام می‌دهد که برای آن کدگذاری شده است.

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

هالبورن گزارش می‌دهد که 62.1% از حملات دستکاری قیمت شامل وام‌های فوری بوده است، بر اساس تحلیل آن از 100 هک مهم دیفای تا سال 2023. هالبورن همچنین بیان می‌کند که اوراکل‌های معیوب علت اصلی حملات دستکاری قیمت بوده و بیش از 49% از خسارات 2023 در حملات دستکاری قیمت را شامل می‌شود.

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

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

مفاهیم غلط رایج درباره اوراکل‌های DeFi

"یک اوراکل فقط یک منبع قیمت است" کار را از دست می‌دهد. اوراکل نرم‌افزاری است که داده‌های خارجی را به‌دست می‌آورد، تأیید می‌کند و بر روی زنجیره منتشر می‌کند. قیمت‌ها مورد استفاده غالب هستند زیرا به‌طور مستقیم به ارزیابی وثیقه و منطق تصفیه متصل می‌شوند، اما مفهوم آن فراتر از یک تیکر است.

"اگر قرارداد هوشمند بررسی شده باشد، من در امانم" صحت کد را با صحت ورودی اشتباه می‌گیرد. کد بررسی شده هنوز می‌تواند موقعیت‌ها را تصفیه کند اگر ورودی اوراکل اشتباه یا قدیمی باشد. زباله در، زباله خارج یک شعار نیست، بلکه مسیر تصفیه است.

"اوراکل غیرمتمرکز به این معنی است که نمی‌تواند شکست بخورد" غیرمتمرکز بودن را به‌عنوان یک تضمین در نظر می‌گیرد. تجمیع وابستگی به یک اپراتور یا منبع واحد را کاهش می‌دهد، اما اگر منابع زیرین نازک، همبسته یا قابل دستکاری باشند یا اگر ریتم به‌روزرسانی باعث قدیمی شدن شود، منبع می‌تواند هنوز اشتباه باشد.

"حملات اوراکل عجیب و غریب هستند" به عقب برمی‌گردد. بسیاری از آن‌ها دستکاری قیمت ساده هستند و وام‌های فوری نیاز به سرمایه را موقتی می‌کنند. مجموعه داده‌های Halborn تا سال 2023 نشان می‌دهد که وام‌های فوری در 62.1% از حملات دستکاری قیمت وجود دارند، که یادآوری می‌کند که مهاجمان حول انحرافات یک تراکنش برنامه‌ریزی می‌کنند.

"قیمت DEX اسپات برابر با قیمت منصفانه است" برای دارایی‌های با دُم بلند گران است. نقدینگی نازک به این معنی است که یک تراکنش می‌تواند قیمت اسپات را به اندازه‌ای جابجا کند که مهم باشد. اگر یک اوراکل آن قیمت اسپات را به‌طور مستقیم بدون تجمیع یا هموارسازی به سبک TWAP بخواند، پروتکل می‌تواند یک انحراف یک معامله را به‌عنوان بازار در نظر بگیرد.

جمع‌بندی

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

پوزیشن تمیز این است که اوراکل را مانند یک سیستم مارجین کارگزار در نظر بگیریم، نه یک نمودار. قبل از اینکه به یک بازار وام‌دهی یا مکان پرپ‌ها دست بزنم، می‌خواهم سه پاسخ داشته باشم: قیمت از کجا می‌آید، چگونه به‌روزرسانی می‌شود و اگر برای یک یا دو بلاک اشتباه باشد چه اتفاقی می‌افتد. آمار Halborn که 62.1% از حملات دستکاری قیمت شامل وام‌های فوری بوده است، یادآوری می‌کند که "عجیب بودن یک بلاک" فرضی نیست. این مدل حمله است.

منابع

Halborn

Chainlink

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop
  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

پرسش‌های متداول

چرا DeFi به اوراکل‌ها نیاز دارد؟

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

اوراکل‌های Chainlink چگونه کار می‌کنند؟

Chainlink از یک شبکه اوراکل غیرمتمرکز برای آوردن داده‌های خارجی به زنجیره برای قراردادهای هوشمند استفاده می‌کند. این شبکه به‌روزرسانی‌های مبتنی بر فشار را که طبق یک برنامه زمانی یا زمانی که آستانه‌ها برآورده می‌شوند، منتشر می‌کند، از به‌روزرسانی‌های مبتنی بر کشش که خارج از زنجیره نگهداری می‌شوند و در صورت نیاز به زنجیره آورده می‌شوند، متمایز می‌کند.

حمله اوراکل در DeFi چیست؟

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

پروتکل‌ها چگونه از دستکاری اوراکل جلوگیری می‌کنند؟

پروتکل‌ها معمولاً با استفاده از منابع غیرمتمرکز یا تجمیع‌شده به‌جای یک مکان واحد و با اعمال صاف‌سازی به سبک TWAP، ریسک دستکاری را کاهش می‌دهند. این انتخاب‌ها تحریف‌های یک بلوک یا یک تراکنش را سخت‌تر می‌کند، از جمله حرکات ناشی از وام‌های فوری.

تفاوت بین اوراکل قیمت و اوراکل داده چیست؟

یک اوراکل قیمت قیمت‌های بازار را تأمین می‌کند که به‌طور مستقیم به منطق مالی مانند ارزیابی وثیقه، تجارت و تصفیه‌ها وارد می‌شود. یک اوراکل داده گسترده‌تر است و می‌تواند انواع مختلفی از داده‌های خارجی فراتر از قیمت‌ها را بسته به نیاز قرارداد هوشمند ارائه دهد.