تعویق fork در Hoodi پس از شناسایی خطرهای EIP-8037 و EIP-8038 برای برخی پروژه‌ها

چرا مهم است

اگر روی Ethereum پروژه داری، ممکن است به فرض‌هایی تکیه کرده باشی که با تغییر محاسبه gas در Glamsterdam دیگر برقرار نیستند. بررسی‌های امنیتی جاری همه پروژه‌ها و کدهای on-chain و off-chain آن‌ها را پوشش نمی‌دهند.

قبل از خواندن، این‌ها را بدان۴ مفهوم
fork

تغییر مسیر قواعد یا تاریخچه یک شبکه blockchain؛ بسته به نوع تغییر و پذیرش آن، ممکن است شبکه با قواعد تازه ادامه یابد یا مسیرهای جداگانه شکل بگیرد.

بیشتر درباره این مفهوم

invariant

شرط یا رابطه‌ای که انتظار می‌رود در محدوده مشخصی از اجرای یک سیستم همواره برقرار بماند و منطق بخش‌های دیگر ممکن است به آن وابسته باشد.

در حال نگارش

gas

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

در حال نگارش

state

مجموعه داده‌هایی که وضعیت فعلی یک سیستم را نشان می‌دهد؛ در Ethereum شامل اطلاعات حساب‌ها و داده‌های smart contract‌هاست.

در حال نگارش

به‌روزرسانی بعدی Ethereum با نام Glamsterdam در حال آزمایش روی testnet‌هاست. در جریان این آزمایش‌ها، Chainsecurity چند پروژه را شناسایی کرده که به‌دلیل اتکا به برخی invariant‌ها، پس از Glamsterdam آسیب‌پذیر خواهند شد. این invariant‌ها فرض‌هایی هستند که پروژه‌ها ثابت‌ماندن آن‌ها را مبنای رفتار خود قرار داده‌اند.

دو پیشنهاد EIP-8037 و EIP-8038 این فرض‌ها را می‌شکنند. این پیشنهادها مقدار gas موردنیاز برای برخی عملیات و نحوه محاسبه gas برای state را تغییر می‌دهند. متن اطلاعیه جزئیات آسیب‌پذیری پروژه‌ها یا سازوکار دقیق این تغییرات را توضیح نمی‌دهد.

بر اساس یافته‌های Chainsecurity،؜ گروه ACD تصمیم گرفته فرایند hard fork را به تعویق بیندازد و تا زمان رفع مشکلات، Hoodi را fork نکند. این تأخیر بر کار Hegota اثری ندارد و توسعه آن با تمام توان، به‌صورت موازی ادامه دارد.

برای تصمیم‌گیری در نشست‌های بعدی AllCoreDev،؜ لازم است مشخص شود پس از Glamsterdam چه بخش‌هایی ممکن است دچار مشکل شوند و آیا تغییر احتمالی در مشخصات می‌تواند از این مشکلات جلوگیری کند. Chainsecurity و Dedaub در بررسی‌ها مشارکت دارند و بررسی‌های داخلی نیز انجام می‌شود؛ بااین‌حال، پوشش همه پروژه‌های Ethereum و کدهای on-chain و off-chain آن‌ها ممکن نیست.

به همین دلیل، از توسعه‌دهندگان smart contract و متخصصان بررسی امنیت خواسته شده پروژه‌هایشان را از نظر وابستگی به هشت invariant بررسی کنند. یک repository برای این کار آماده شده که توضیح کوتاه هر invariant،؜ مثال‌ها و prompt‌هایی برای بررسی پروژه‌ها را در بر دارد. از پروژه‌هایی که متأثر هستند نیز خواسته شده موضوع را به تیم Ethereum اطلاع دهند.

نکته کلیدی

وابستگی پروژه‌ات به هشت invariant معرفی‌شده را بررسی کن؛ repository اعلام‌شده برای هرکدام توضیح، مثال و prompt دارد. اگر پروژه‌ات متأثر است، موضوع را به تیم Ethereum اطلاع بده.

خواندن مقاله اصلی (در زبانه‌ی جدید باز می‌شود)
برچسب‌ها (۱)