Subscribe to 0xmasoud.eth to receive new posts directly to your inbox.
یک لایه 1 با هزینه های بسیار پایین گس امکان یک اوراکل بسیار دقیق تر را فراهم می کند و منجر به کارایی بیشتر سرمایه می شود.
هر روز، پروتکل های DeFi برای تأمین میلیاردها دلار پوزیشن اهرمی به اوراکل ها متکی هستند. این اوراکل های قیمت به عنوان واسطه عمل می کنند و داده های خارج از زنجیره یا بین زنجیره ای را به پروتکل ها متصل می کنند و مسئول تهیه، تأیید و ارسال اطلاعات درخواستی به ذینفعان از طریق قراردادهای هوشمند هستند. اوراکل های DeFi نه تنها داده های قیمت را ارائه می دهند بلکه همچنین اطمینان حاصل می کنند که قیمت ها دستکاری نشده اند و با قیمت های ارائه شده توسط صرافی های متمرکز (CEXes) برابر است.
عملکرد اوراکل DeFi را می توان به چند روش اندازه گیری کرد، اما بهترین عملکرد آن بر اساس دقت و تأخیر است. دقت به معنای نزدیک بودن قیمت های ارائه شده توسط اوراکل به قیمت های واقعی است. تأخیر به معنای مدت زمانی است که طول می کشد تا اوراکل ها قیمت های جدید را دریافت کرده و آنها را به پروتکل های DeFi ارسال کنند.
اوراکل ها داده های دنیای واقعی را به بلاکچین منتقل می کنند. این کار گران است زیرا هر تراکنش در بلاکچین هزینه ای دارد. برای اینکه اوراکل ها بتوانند به طور مکرر به روز شوند، باید هزینه انتقال داده ها در بلاکچین کاهش یابد.
اوراکل ها قراردادهای هوشمندی هستند که داده های دنیای واقعی را برای استفاده در DeFi در دسترس قرار می دهند. برای تشکیل یک مدل ذهنی مناسب از یک اوراکل، بیایید آن را از پایه بسازیم. به عنوان مثال، یک قرارداد هوشمند را در نظر بگیرید که مسئول ارائه قیمت ETH/USD در Binance است. ساده ترین اوراکل ممکن دو متد دارد: set() و get().
متد set() توسط یک ارائه دهنده داده فراخوانی می شود که قیمت ETH/USD Binance را مشاهده می کند و آن را تأیید می کند. در ساده ترین و متمرکزترین راه حل اوراکل، این متد فقط برای یک بازیگر مجاز خواهد بود تا این متد را فراخوانی کند.
متد get() می تواند برای دریافت قیمت ETH/USD از Binance برای استفاده در یک پروتکل وام دهی استفاده شود. این قیمت می تواند برای محاسبه ارزش سپرده ها و ارزش وام استفاده شود؛ قیمت گذاری اوراکل به پروتکل اجازه می دهد تا مطمئن شود که وام گیرنده همیشه دارایی های کافی برای بازپرداخت وام خود دارد.
در ساده ترین حالت، اوراکل ها به یک ارائه دهنده داده واحد متکی هستند که قیمت های دنیای واقعی را به بلاک چین می فرستد (یا اصطلاحا Push میکند). بخاطر همین این مدل اوراکل “ push” نامیده می شود.
برای غیرمتمرکز کردن این سیستم، میتوانیم به یک مجموعه بزرگتر از ارائهدهندگان داده اجازه دهیم تا گواهیهای خود را ارائه دهند. این دادههای نقطهای چندگانه میتوانند آفچین جمعآوری شوند (با یک واسطه فرستنده که set() را برای فرستادن یا پوش کردن قیمت جمعآوریشده و امضاهای جمعآوریشده در زنجیره فراخوانی میکند). یا میتوانند آنچین باشند (یعنی در منطقِ متدِ set() ). با این حال، در هر صورت، این مدل پرهزینه است زیرا قیمتها باید بهطور مکرر بهروز شوند (تا از قدیمی شدن و نادرست شدن آنها جلوگیری شود) اما هر بار فراخوانی تابع set() گس مصرف میکند.
برای حل بخشی از این مشکل، برخی از اوراکلها، مانند Pyth، مدل “pull” را برای کاهش هزینههای گس و افزایش تناوب بهروزرسانیها معرفی کردهاند.
در این مدل، دادهها بصورت آفچین در یک سرویس قیمت جمعآوری میشوند و کاربران میتوانند برای دریافت آخرین قیمتها به این سرویس مراجعه کنند. هنگامی که کاربران میخواهند با پروتکلی که به قیمت بهروز نیاز دارد، تعامل برقرار کنند، آنها آخرین قیمتها را از سرویس قیمت گرفته و قبل از فراخوانی با متد oracle get() آنها را به قرارداد هوشمند ارسال میکنند. این روش باعث میشود که قیمتها بهطور مکرر بهروز شوند بدون اینکه به قرارداد هوشمند فشار زیادی وارد شود.
مدل pull اطمینان حاصل میکند که قیمتها قبل از استفاده بهروز شدهاند، اما بخشی از هزینههای گس را به کاربران منتقل میکند. فرایندهایی که بهطور دورهای اجرا میشوند (مانند فرایندی که گاهی اوقات سلامت هر پوزیشن در پروتکل وامدهی را بررسی میکند) قبل از اجرا باید قیمتها را فراخوانی بکند. در نهایت، هرچه دقت قیمتگذاری بیشتر لازم باشد، اوراکل قیمتها نیاز به بهروزرسانی مکرر آنچین دارند. این امر نیاز به قیمتهای معقول برای گس را ضروری میکند، زیرا یک اوراکل با 100 جریان داده که هر 10 ثانیه بهروز میشود، به 864000 بهروزرسانی در روز نیاز دارد.
صرف نظر از اینکه اوراکل بهصورت push یا pull کار کند، اکثر مدلها ناکارآمدیهای یکسانی را تجربه میکنند که شامل تاخیر زیاد و عدم دقت است که به دلیل این محدودیت اساسی است — هزینه بالای بهروزرسانی قیمتها بصورت آنچین . بهروزرسانیهای مکرر اوراکل در L1های امروزی بسیار گران است، در حالی که کاهش هزینه اجرای اوراکل به قیمت جزئیات اطلاعات قیمت تمام میشود. این بدان معناست که در عمل بهروزرسانی قیمت در اکثر پروتکلهای DeFi بسیار نادر است. به عنوان مثال، Chainlink در حال حاضر قیمت ETH/USD را در حدود 1 تا 2 بار در ساعت در شبکه اصلی Ethereum با پارامتر انحراف 0.5% بهروز میکند. اوراکلها ممکن است همچنین سعی کنند هزینهها را از طریق آفچین اگریگیتورها کاهش دهند، اما کاربران downstream به هر حال به دلیل پیامدهای عملی قابل توجهی آسیب میبینند.
اطلاعات قیمتگذاری با تأخیر برای DEXها باعث کاهش اعتماد پروتکل به اطلاعات قیمتگذاری میشود. طراحان پروتکل باید حاشیه خطای بیشتری را به قیمتی که پروتکل میبیند اختصاص دهند تا از اشتباهات قیمتی محافظت کنند. این امر ممکن است منجر به محدودیتهای اهرمی کمتر و کارایی سرمایه کمتر شود. به عنوان مثال، هنگامی که یک کاربر ETH به عنوان وثیقه واریز میکند و BTC قرض میگیرد، اگر قیمت ETH یا BTC به طور غیرمنتظرهای افزایش یابد، ممکن است کاربر دچار ضرر شود. برای کاهش این خطر، طراحان پروتکل ممکن است محدودیتهایی بر مقدار اهرم مجاز برای این نوع معاملات اعمال کنند.
عدم دقت قیمت در نهایت منجر به نسبتهای LTV پایینتر در پروتکلهای وامدهی و اهرم کمتر برای پروتکلهای مشتقات میشود. عدم دقت در قیمتگذاری همچنین میتواند منجر به این شود که معاملهگران اهرمی و پروتکلهای مشتقات یک آستانه ریسک حداکثری پایینتر را بپذیرند. این ممکن است باعث شود که کاربران از تعامل با پروتکلهای وامدهی خودداری کنند، زیرا گسترش حاشیههای قیمت از دادههای با تأخیر میتواند باعث عدم اطمینان در مورد رویدادهای لیکوئیدیشن شود.
leverage بالاتر با دقت قیمت بیشتر باز می شود. محیط هایی با هزینه های گس بسیار ارزان امکان ایجاد اوراکل های دقیق تر را فراهم می کنند؛ و اوراکل های دقیق تر و با تاخیر کمتر به DeFi کمک می کند تا کارایی سرمایه بالاتری را کسب کند و اعتماد بیشتری را در بازار کریپتو ایجاد کند.
یک اوراکل با دقت بالا که هر 1 تا 10 ثانیه به روز می شود، ریسک را کاهش می دهد، اعتماد به معامله را افزایش می دهد و معاملات بهتر و آگاهانه تر را ارائه می دهد.