از زمان داغ شدن بازار دیفای در سال 2020، با هدایت مداوم پیشرفت زیرساختهای بلاک چین، پروتکلهای DeFi از Swap به Lend to Yield Farming به پروتکلهای پیچیدهتر تبدیل شدهاند که استراتژیهای فارمینگ و بازده AMM (بازارساز خودکار) را بر اساس مشتقات بلاک چین، پلتفرمهای وامدهی پوشش میدهند. بر اساس زیرساختهای وامدهی، و پروتکلهای وامدهی زنجیرهای که وثیقههای دنیای واقعی و غیره را به هم متصل میکنند، ساخته شدهاند.
یکی از عوامل کلیدی پشت رونق دیفای ،مفهومی به نام ترکیب پذیری است؛ بیشتر اوقات، زمانی که یک پروتکل جدید DeFi ایجاد می شود، بیشتر کد منبع آن نیز در دسترس عموم قرار می گیرد. این بدان معنی است که کدهای منبع قراردادهای هوشمند از یک یا چند پروتکل DeFi را می توان به راحتی با هم ترکیب کرد تا یک پروتکل جدید ایجاد کند. آنها مانند بلوک های الگو کار می کنند - بلوک ها در اشکال مختلف می توانند برای ساخت پروژه های منحصر به فرد استفاده شوند و هزینه نوآوری را به میزان قابل توجهی کاهش دهند.
با کمال تعجب، با توجه به چنین نوآوری های عظیم، تعداد کاربران DeFi از سال 2020 رشد قابل توجهی نداشته است. در همین حال، موسسات قدیمی نقدینگی را وارد فضای بلاک چین نکرده اند. یکی از دلایل اصلی این امر نگرانی امنیتی DeFi است.
امور مالی دنیای واقعی با یک سیستم امن و تثبیت شده همراه است. به عنوان مثال، هنگام انتقال وجوه از بانک A به بانک B، کامیون های پول نقد و افسران پلیس مسلح برای ایمن نگه داشتن وجوه در آنجا حضور خواهند داشت که این یک روند اطمینان بخش است. علاوه بر این، بانک ها نیز در قبال اموال مشتری مسئولیت دارند و هر گونه ضرر در طول فرآیند را، جبران می کنند.
با این حال، DeFi با سیستم مالی قدیمی متفاوت است. قراردادهای هوشمند با طراحی تغییر ناپذیر هستند. آنها اساسا جعبه های سیاهی هستند که گزارش های قابل خوانش ارسال نمی کنند، بنابراین افراد نمی توانند دید واضحی از فرآیندهای داخلی داشته باشند. اکثر قراردادهای هوشمند کمکی نمیکنند، زیرا آنها فقط بر اشکال شناختهشده حملات تمرکز میکنند، نه انواع جدیدی از نقصهایی که احتمال وقوع آنها زیاد است. در همین حال، بسیاری از پروتکلهای DeFi خود را به عنوان محصول «با پذیرش ریسک» میشناسند. این می تواند برای کاربران معمولی ترسناک باشد و باعث شود آنها اعتماد به نفسی برای قرار دادن بیشتر سپرده های بانکی خود در اکوسیستم DeFi نداشته باشند.
دیفای کسانی را که به آن اعتماد نداشتند ناامید نکرده است. تا کنون، DeFi 82نقض امنیتی داشته است که مبلغ اولیه هک بیش از 1.8 میلیارد دلار بوده است. به طور خاص، فلش لون(flash loan) رایج ترین حمله است که 33 مورد را شامل می شود. یکی از دلایل امنیتی پشت این حمله، فقدان مفهوم زمان و مکانیسم تایید در بلاک چین است. حال به بررسی این موارد می پردازیم.
1) زمان و شبکه کامپیوترهای زمانی
بیایید ابتدا به نحوه کارکرد زمان در برنامه های کامپیوتری معمولی نگاه کنیم.
زمان یک مفهوم ضروری برای برنامه های کامپیوتری است. بدون مفهوم زمان، دسترسی به وب سایت های دارای TLS، ایجاد آنتروپی برای الگوریتم های خاص، تبادل اسرار یا تأیید اعتبار مجوزهای ویندوز غیرممکن است. ما زمانسنجی را در رایانهها امری مسلم میدانیم، اما تبادل و پیگیری زمان مشکلی فوقالعاده دشوار برای حل آن در مورد عملیات واقعی است.
زمان اساساً نمایشی از وضعیت فعلی جهان است. این بدان معناست که برای هر لحظه، هر موجودیت منفرد باید دقیقاً همان مقدار را به اشتراک بگذارد. بدیهی است که این یک مشکل بزرگ برای کامپیوترها است: بیایید فرض کنیم که یک ساعت اتمی عظیم و بسیار دقیق در مرکز کیهان وجود دارد که داده های زمان را در سراسر اینترنت منتقل می کند. مشکلی که در طول این فرآیند وجود دارد این است که انتقال داده ها به خودی خود زمان می برد. هنگامی که یک دستگاه داده های زمانی را از طریق اینترنت دریافت می کند و آن را در سیستم های خود اعمال می کند، وضعیت جهانی (زمان) جهان قبلاً تغییر کرده است. به عبارت دیگر، غیرممکن است که یک دستگاه شبکه کاملاً با مقدار زمان واقعی جهانی به روز باشد.
مشکل دیگر زمانسنجی شبکهای این است که نمیتوانیم زمان لازم برای انتقال دادهها را کاملاً پیشبینی کنیم - شرایط شبکه دائماً تغییر میکند و هیچکس نمیتواند اطمینان کامل را در طبیعت تضمین کند. همراه با مشکل اول، این بدان معنی است که گیرنده نمی تواند مقدار زمان را نیز به طور کامل تکرار کند، که منجر به ناسازگاری می شود.
پروتکل زمان شبکه (NTP) این مشکل را از طریق ساختار تأیید متقابل سرورهای زمانسنجی توزیع شده در سراسر جهان (حداکثر 15 لایه) و با ساخت درخت پوشا کوتاهترین مسیر بلمن-فورد (که تناقضات تأخیر و زمان انتقال را کاهش میدهد) حل میکند. . این برای رایانههای شخصی و سرویسهای متمرکز، بهویژه با برنامههایی که به زمانبندی دقیق (مانند برنامههای رمزگذاری) متکی هستند، کاملاً خوب عمل میکند. حتی با اینکه مهرهای زمانی مشتق شده از طریق NTP تخمینی صرف هستند، اما به اندازه کافی دقیق و بالغ هستند تا برنامه های کاربردی حساس زمانی به آن تکیه کنند.
2) مکانیسم زمان در شبکه های بلاک چین
مفهوم زمان در بلاک چین نیز وجود دارد. اگرچه برخی می گویند که بلاک چین خود مشتق شده از مفهوم زمان است، پردازش زمان شبکه بلاک چین در مقایسه با دقت 64 بیتی سیستم NTP بسیار نادرست است. همچنین، این نیز به این دلیل است که اهداف خدمات زمان بلاک چین، برنامههای قرارداد هوشمند حساس به زمان مانند برنامههای DeFi نیستند. علاوه بر این، هدف آن فعال کردن اجرای ایمن و کارآمد مکانیسم اجماع است. چنین هدف متفاوتی همچنین باعث میشود که شبکههای بلاک چین نسبت به عدم دقت زمانی بیشتر تحت فشار باشند. در موارد بعدی، برخی مکانیسمهای اجماع رایج و چگونگی تعیین زمان را مورد بحث قرار خواهیم داد. با این حال، باید توجه داشت که تأیید زمان در بلاکچینها به قدری نادقیق است که نمیتوانند عملیات مالی و بررسیهای امنیتی را برای داراییهای درون زنجیرهای که دهها میلیارد دلار ارزش دارند، انجام دهند.
۱. بیت کوین
بیت کوین دارای مفهوم زمان است زیرا برای مکانیسم اجماع اثبات(Proof-of-Work) آن لازم است. بدون یک مهر زمانی معتبر، شبکه نمیتواند تأیید کند که آیا تراکنش خاصی که استخراج میشود، سعی در دستکاری تراکنش قبلی دارد یا خیر. اگرچه هر بلوک بیت کوین دارای یک مهر زمانی یونیکس است، زمان بلاک نمایش دقیقی از مهر زمانی یونیکس نیست. دلیل این امر این است که اجماع بیتکوین تنها مهرهای زمانی را به عنوان بخشی از سیستم امنیتی PoW در نظر میگیرد، نه به عنوان ابزاری واقعی برای اندازهگیری زمان در بلاک چین.
هر بلوک حاوی یک مهر زمانی یونیکس است که توسط ماینرها ارائه شده است و اگر
1) بیشتر از مهر زمانی میانه 11 بلوک قبلی
2) کمتر از زمان تنظیم شده توسط شبکه به اضافه 2 ساعت باشد،
معتبر خواهد بود. بنابراین، تفاوت بین زمانهای بلوک و زمانهای واقعی از یک ساعت تا دو ساعت متغیر است
۲. اتریوم
در شبکه اتریوم، مُهرهای زمانی نیز مستقیماً توسط ماینرها با انعطافپذیری زیاد ارسال میشوند. به زبان ساده، یک مهر زمانی اتریوم ممکن است درست یا نادرست باشد، و هیچ راهی برای مکانیسم اجماع برای تأیید صحت آن وجود ندارد.
با توجه به پستی در انجمن اتریوم
(منبع:https://ethereum.stackexchange.com/questions/413/can-a-contract-safely-rely-on-block-timestamp/428#428)، مکانیسم های مختلفی می توانند برای جلوگیری از انحراف بیش از حد مهرهای زمانی اتریوم استفاده می شود: 1) اگر مهر زمانی یک بلوک به طور قابل توجهی از زمان واقعی انحراف داشته باشد، هیچ کس حاضر نخواهد بود بلوک های بیشتری را با این بلوک به عنوان بلوک والد ایجاد کند. 2) مهر زمانی آخرین بلوک نمی تواند زودتر از بلوک مادر باشد. 3) زمانی که بلوک زودتر از زمان مورد نیاز علامت گذاری نشده باشد، سختی بلوک کمترین مقدار خواهد بود. این مکانیسمها میتوانند به استخراجکنندگان اجازه دهند تا بهطور داوطلبانه مُهرهای زمانی را که معتقدند صحیح هستند، ارسال کنند. با این حال، هنگامی که سایر مشوقهای خارجی وجود دارد، شبکه اتریوم هیچ مکانیسم دقیقی برای اطمینان از اینکه استخراجکنندگان همچنان مهر زمانی صحیح را ارسال میکنند، ندارد. بنابراین، شبکه نمیتواند از اجرای صحیح پروتکلهای حساس به زمان (مانند فارمینگ، وام دهی) اطمینان حاصل کند. به این ترتیب، موسسات بزرگ برای واگذاری دارایی های خود به اتریوم اعتماد نخواهند کرد.
۳. پولکادات
طبق سند Substrate، Polkadot همچنین بلوکها را با مهر زمانی که مستقیماً توسط ماینرها ارائه میشود، علامتگذاری میکند. در همین حال، هیچ مکانیسم دقیقی وجود ندارد که چنین مهرهای زمانی را تأیید یا همگام کند. این سند همچنین بیان میکند که اگرچه زمان یک بلوک را نمیتوان اثبات کرد، اعتبارسنجیها میتوانند توافق کنند که در محدوده دلتای ساعت سیستم آنها قرار دارد.
https://wiki.polkadot.network/docs/build-protocol-info
۴. کازماس
این پروتکلل تنها الگوریتم اجماع است که زمان را در مکانیسم اجماع می نویسد، که آن را با قوی ترین مفهوم زمان مجهز می کند؛ یعنی، گره های یک بلوک در مورد زمانی رای می دهند که برای رسیدن به یک اجماع ارسال کرده است، و تنها مهر زمانی که گره ها روی آن توافق دارند در بلوک گنجانده می شود.
https://docs.tendermint.com/master/spec/consensus/bft-time.html
3) عدم وجود سیستم مهر زمانی در بلوک ها
بلاک چین ها نه تنها از نظر تولید مهرهای زمانی نادقیق هستند، بلکه فاقد سیستم یا مکانیسم مهر زمانی درون بلوک ها هستند. تراکنش های دنیای واقعی ارسال می شوند و سپس یک به یک تایید می شوند که هر کدام با زمان و ترتیب مشخصی همراه هستند. به این ترتیب، بسیاری از تراکنش های نادرست نمی توانند اتفاق بیفتند یا تأیید شوند. از سوی دیگر، در یک شبکه بلاک چین، تراکنشهای درون هر بلوک با هم بستهبندی میشوند و با مهر زمانی دقیق یک به یک علامتگذاری نمیشوند.
اگرچه همه تراکنشها را میتوان پس از تولید بلوک تأیید کرد، تعیین زمان ارسال خاص و ترتیب هر تراکنش غیرممکن است. این تا حدی توضیح می دهد که چرا بسیاری از حملات (به عنوان مثال فلش لون یا فلش سواپ) می توانند میسر باشند. اگر نشانههای دقیق زمان در بلوکها بهعنوان اثبات تأیید ارائه شود، پروتکلهای کاربردی میتوانند الگوریتمهای ایمن و پایدارتری ایجاد کنند. در همین حال، زمان به دلیل ویژگیهای ذاتی خود یک شبکه اجماع بسیار امن است که برگشتناپذیر و تغییر ناپذیر است.
4) راه حل های بالقوه
کمبود زمان در بلاک چین را می توان به صورت داخلی یا خارجی حل کرد.
راه حل داخلی: باید یک مکانیسم تأیید در سطح اجماع که زمان بلوک را در برابر زمان واقعی بررسی می کند، معرفی شود یا یک سیستم زمانی مستقل با دقت بیشتر ایجاد شود.
راه حل خارجی: بلاک چین ها به یک شبکه غیرمتمرکز نیاز دارند که از یک شبکه اوراکل زمان مانند NTP برای اضافه کردن مهر زمانی دقیق به بلوک های شبکه و تراکنش های درون بلوک ها استفاده کند.
با توجه به همکاری چند زنجیره ای، راه حل خارجی ممکن است مناسب تر باشد. به عنوان مثال، با فرض اینکه اتریوم و ترا ساعت های مخصوص به خود را دارند، اگر مهر های زمانی ارائه شده توسط این ساعت ها متفاوت باشد، تشخیص اینکه کدام یک در طول تعامل بین این دو صحیح است برای ما دشوار خواهد بود. به عنوان مثال، در یک شبکه کامپیوتری معمولی، در نهایت، تنها یک ساعت اصلی به همه می گوید که ساعت چند است. بلاک چین ها همچنین به یک ساعت اصلی نیاز دارند.
در دنیای چندگانه آینده که توسط زنجیرههای متعدد فعال میشود، با چالش دیگری روبرو خواهیم شد - تعداد ساعتها در همه رایانههای مختلف بسیار بیشتر از آن چیزی است که انتظار میرود. به عنوان مثال، ساعتهای بازی، ساعتهای انباشته سود DeFi، ساعتهای بلاک چین و غیره وجود دارند. از آنجایی که این ساعتها زمان را در متا گرهها مختل میکنند، یک منبع زمانی قابل اعتماد برای یکپارچهسازی و همگامسازی همه تراکنشها مورد نیاز است. هنگامی که چنین شبکه اوراکل زمانی نهایتاً به طور گسترده مورد استفاده قرار گیرد، یک لایه امنیتی اضافی را فراهم می کند و تأییدات زمانی اضافی را برای هر تراکنش ارائه می دهد، درست مانند آنچه در دنیای واقعی اتفاق می افتد. زمان همچنین به یک لایه امنیتی اضافی برای شبکه های بلاک چین تبدیل خواهد شد.
منابع:
1. https://medium.com/@gokhansengun/bilgisayarlar-zaman%C4%B1-nas%C4%B1l-do%C4%9Fru-tutar-78c1203397f0
2. https://en.bitcoin.it/wiki/Block_timestamp
3. https://ethereum.stackexchange.com/questions/413/can-a-contract-safely-rely-on-block-timestamp/428#42
4. https://wiki.polkadot.network/docs/build-protocol-info
5. https://wiki.polkadot.network/docs/build-protocol-info
به آسانی هر ارزی رو معامله کنید
ما را دنبال کنید توییتر | کانال تلگرام | اینستاگرام
تماس با ما تیکت آنلاین | گروه تلگرام
درباره ما وب سایت | اطلاعیه ها | اپلیکیشن