شیر یا خط فصل هفتم - قسمت یک

هارد فورک دِنکُن (Dencun) و تاثیر آن در پروتکل اتریوم


بعد از حدود دو سال، شیر یا خط با یک اپیزود پرمحتوا برمی‌گردد؛ اپیزودی که در آن به سراغ یکی از مهم‌ترین ارتقاءهای شبکه اتریوم یعنی هارد فورک دِنکُن (Dencun) می‌رویم. در این قسمت شایان و حمید نه‌تنها درباره خودِ این ارتقاء و EIPهای همراهش صحبت می‌کنند، بلکه از چراییِ نیاز اتریوم به آپدیت، معماری تازه‌ی این شبکه و مسیر پیشِ روی اکوسیستم هم می‌گویند. اگر به بلاکچین، قرارداد هوشمند، لایه دو و رول‌آپ‌ها علاقه دارید، این اپیزود شروع دوباره‌ی جذابی برای شماست.

🇬🇧 English Summary

This episode marks the return of the Shir Ya Khat (Shir ya Khat) podcast after a two-year hiatus, opening Season 7 with a deep dive into Ethereum’s Dencun hard fork and a recap of the hosts’ meetup at Devconnect/ETHGlobal in Istanbul. The hosts explain why Ethereum requires upgrades, walk through its post-Merge architecture split into an execution layer (EL, e.g. Geth, Nethermind) and a consensus layer (CL, running Casper FFG Proof of Stake with slots, epochs, and validator committees) connected via the Engine API, and stress the importance of client diversity, EIP governance, and the Ethereum Cat Herders. The core technical focus is EIP-4844 (proto-danksharding), which introduces blob transactions—temporary data (pruned after ~14 days) posted to the consensus layer with KZG polynomial commitments (built from a multi-party trusted setup “ceremony” with 141,000 participants, Lagrange interpolation, powers of tau, and elliptic-curve pairings)—to slash Layer 2 rollup data-availability costs for both optimistic (fraud-proof) and zk-rollups, touching on data availability solutions like Celestia and EigenLayer DA and Ethereum’s goal of becoming zk-friendly. They also unpack EIP-6780, which neuters the SELFDESTRUCT opcode (restricting it to same-transaction CREATE/CREATE2 use) to close security holes around upgradeable proxy contracts, gas tokens, and MEV, alongside related EIPs like EIP-1153 transient storage and the blob base fee. The discussion closes with staking topics tied to the Pectra/Prague roadmap—capping the validator entry rate as ~30% of ETH is staked (via Lido, Rocket Pool), exposing the Beacon Chain block root to the EVM to reduce oracle trust, plus fork-choice and attestation timing fixes—situated within Ethereum’s broader Merge/Surge/Scourge/Verge/Purge/Splurge roadmap.

توضیحات اپیزود

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

بخش مهمی از اپیزود به معماری امروز اتریوم اختصاص دارد؛ اینکه بعد از مرژ، نرم‌افزار نود به دو بخش لایه اجرا (Execution Layer) و لایه اجماع (Consensus Layer) تقسیم شده که هرکدام شبکه‌ی گاسیپ و منپول خودشان را دارند و از طریق Engine API با هم حرف می‌زنند. توضیح داده می‌شود که چرا تراکنش‌ها را در اترسکن و بیکن‌چین جداگانه می‌بینیم، و چرا Client Diversity و وجود چند پیاده‌سازی مستقل (با زبان‌های Go، Rust، نیم و…) برای سلامت و امنیت شبکه حیاتی است. در ادامه، ارتقاء دِنکُن، متا EIPها و مجموعه‌ی EIPهای مرتبط با آن، از پروتو-دنک‌شاردینگ تا EIP-6780 و EIP-4788 و EIP-1153، یکی‌یکی و با جزئیات فنی باز می‌شوند.

محورِ فنیِ بحث، پروتو-دنک‌شاردینگ (EIP-4844) و بلاب ترنزکشن‌هاست؛ داده‌هایی که روی لایه اجماع می‌نشینند، حدود دو هفته نگهداری و سپس prune می‌شوند و برای رول‌آپ‌ها هزینه‌ی ثبت داده روی لایه یک را به‌شدت کاهش می‌دهند. مفاهیمی مثل دیتا اِوِیلبیلیتی قابل تایید، کامیتمنت‌های KZG، ارتباطش با زیرو-نالج و zk-SNARK، مراسم Powers of Tau و محاسبه‌ی چندجمله‌ای و اینترپولیشن، و شباهت مفهومی بلاب‌ها با SegWit در بیت‌کوین به زبان ساده و سپس فنی توضیح داده می‌شوند.

نکات اصلی بحث‌شده

چرایی نیاز به ارتقاء و رودمپ اتریوم

  • بلاکچین‌ها ابتدا به‌صورت MVP بالا آمدند و نیازمندی‌ها و یوزکیس‌های تازه، ارتقاء را الزامی می‌کنند.
  • در گذشته دیفیکالتی بامب تغییر را در شبکه فورس می‌کرد؛ با گذار به پروف آف استیک این مکانیزم دیگر وجود ندارد.
  • رودمپ اتریوم شامل مراحل مرژ، سرژ، اسکورژ، ورژ، پرژ و اسپلرژ است و شبکه هم‌اکنون بین مرژ و سرژ حرکت می‌کند.
  • بسیاری از این تغییرات از سال‌ها قبل ایده‌پردازی و بحث شده‌اند و حاصل ریسرچ و تستِ فراوان‌اند.

جدایی لایه اجرا و لایه اجماع و Client Diversity

  • بعد از مرژ، نود از دو بخش لایه اجرا و لایه اجماع تشکیل شده که هرکدام شبکه گاسیپ و منپول خود را دارند و از طریق Engine API با هم ارتباط می‌گیرند.
  • ولیدیتور برای ساخت بلاک از لایه اجرا درخواست بلاک می‌کند، تراکنش‌ها با EVM اجرا و بلاک ساخته می‌شود و سپس در لایه اجماع امضا و برای کمیته پخش می‌شود.
  • تراکنش‌های لایه اجرا در اترسکن و اطلاعات ولیدیشن، فاینالیتی و اسلات و اپوک در بیکن‌چین قابل مشاهده است.
  • تنوع کلاینت‌ها (Go، Rust، نیم و…) احتمال باگ فراگیر را کم می‌کند؛ نمونه‌ی حمله‌ی قدیمی به Geth که با وجود کلاینت Parity شبکه هالت نشد، همین درس را نشان داد.
  • نمونه‌ی Prysm که سهم بالایی از شبکه را داشت و اکوسیستم برای سلامت شبکه به سمت مهاجرت به کلاینت‌های دیگر رفت، نشان‌دهنده‌ی همکاری کل اکوسیستم است.

پروتو-دنک‌شاردینگ، بلاب‌ها و KZG (EIP-4844)

  • ایده‌ی اولیه ۶۴ شارد بود، اما اتریوم در ۲۰۲۱ از رودمپ شاردینگ‌محور به رودمپ رول‌آپ‌محور سوییچ کرد و شاردینگ به حاشیه رفت.
  • بلاب ترنزکشن نوع تازه‌ای از تراکنش برای منپول لایه اجماع است که شامل داده، کامیتمنت، فی و امضاست و مکانیزم فی آن شبیه EIP-1559 اما روی لایه اجماع عمل می‌کند.
  • داده‌ی بلاب برای مدت محدودی (حدود دو هفته) نگهداری و سپس حذف می‌شود؛ فقط کامیتمنت روی بلاکچین باقی می‌ماند.
  • کامیتمنت‌های KZG امکان تایید صحت داده را بدون نیاز به کل داده فراهم می‌کنند و ویژگی زیرو-نالج دارند و بخشی از ابزار zk-SNARK محسوب می‌شوند.
  • مراسم KZG (Powers of Tau) با رویکرد MPC و مشارکت بیش از ۱۴۱ هزار نفر برگزار شد تا کلید خصوصیِ ستاپ توسط هیچ‌کس قابل بازسازی نباشد.
  • شباهت مفهومی بلاب‌ها با SegWit در بیت‌کوین: جدا کردن داده‌ای که همیشه لازم نیست، از بلاکِ اصلی.

رول‌آپ‌ها و استفاده از بلاب‌ها

  • رول‌آپ‌ها تراکنش‌های لایه دو را خلاصه و برای ولیدیشن روی لایه یک ثبت می‌کنند و پیش‌تر از کال‌دیتا (ارزان‌ترین بخش) استفاده می‌کردند.
  • با دِنکُن، داده روی بلاب نوشته می‌شود و فیِ گرانِ دومِ رول‌آپ به‌شدت کاهش می‌یابد؛ نمونه‌ی فشار تراکنشی روی آربیتروم (اردینال‌ها) به این مشکل اشاره داشت.
  • در رول‌آپ‌های اپتیمیستیک (فراد پروف) چالش‌کننده احتمالاً باید داده را از بلاب بردارد و با کامیتمنت مقایسه کند؛ در zk رول‌آپ‌ها تایید KZG بسیار ساده‌تر و جذاب‌تر است.
  • یکی از دلایل انتخاب KZG به‌جای مرکل پروف، هدفِ zk-friendly شدن اتریوم است چون وریفیکیشن مرکل پروف در مدار zk سنگین و گران است.

EIP-6780 و سرنوشت SELFDESTRUCT

  • آپ‌کود اولیه SUICIDE بعدها به SELFDESTRUCT تغییر نام داد و برای آزاد کردن استوریج و بازگرداندن بخشی از گس استفاده می‌شد.
  • سواستفاده‌هایی مثل gas tokens و بازی با قیمت گس (به‌ویژه در MEV) و همچنین مشکلات امنیتیِ ترکیب CREATE2 با پترن‌های پراکسی، امنیت قرارداد هوشمند را دشوار کرده بود.
  • EIP-6780 اجازه می‌دهد SELFDESTRUCT فقط زمانی واقعاً عمل کند که در همان تراکنشی که CREATE انجام شده باشد؛ این مفهوم short-lived contract را حفظ و مشکل امنیتی را حل می‌کند.
  • بنیاد اتریوم ریسرچ گسترده‌ای فاند کرد تا اثر حذف SELFDESTRUCT روی پروژه‌های آن‌چین بررسی شود.

EIPهای مرتبط با استیکینگ و لایه اجماع

  • از زمان باز شدن پروف آف استیک، حدود ۳۰ درصد اتریوم استیک شده و پیش‌بینی‌ها نشان می‌داد با این سرعت درصد بسیار بالایی استیک می‌شود؛ به همین دلیل سرعت ورود ولیدیتورها کنترل می‌شود.
  • بعد از باز شدن ویدرا (شانگهای)، برخلاف انتظار، خروجِ گسترده رخ نداد و چون ریسک کم شد، استیکینگ افزایش یافت.
  • EIP-4788 روت بلاک بیکن‌چین را برای EVM قابل دسترس می‌کند تا قراردادها بتوانند داده‌ی اوراکل‌هایی مثل لایدو و راکت‌پول را وریفای کنند و اتکای عمیق به اوراکل کاهش یابد.
  • بحث fork choice و تبادل داده‌ی fork timestamp بین لایه‌ها، و EIPهایی برای امکان ویدراوال و اکزیت ولیدیتور (از جمله ماندگار شدن اعتبار امضای اکزیت) از دیگر موضوعات بود.

EIP-5656 (MCOPY) و بهینه‌سازی گس

  • EVM شبیه یک CPU مجازی با استک، استوریج، کال‌دیتا و مموری است و آپ‌کودها هرکدام گس مصرف می‌کنند.
  • پترن تکراری MLOAD و MSTORE برای کپی مموری گران بود؛ آپ‌کود جدید MCOPY مستقیماً کپی می‌کند و حدود ۶۰ درصد هزینه‌ی این عملیات را کاهش می‌دهد.
  • کامپایلرهای سالیدیتی و وایپر باید برای بهره‌گیری از این قابلیت آپدیت شوند.

EIP-1153 (Transient Storage) و یونی‌سواپ نسخه ۴

  • TSTORE و TLOAD جایگزینی موقت و یک‌بارمصرف برای SSTORE و SLOAD در طول عمر یک تراکنش‌اند و برای مواردی مثل approve یک‌بارمصرف یا اشتراک داده بین قراردادها مفیدند.
  • این EIP از سال ۲۰۱۸ مطرح بوده و یکی از قدیمی‌ترین EIPهای واردشده است؛ یوز کیس تازه‌ی آن یعنی یونی‌سواپ نسخه ۴ باعث شد دوباره پوش شود.
  • یونی‌سواپ نسخه ۴ برخلاف نسخه‌های ۲ و ۳ از فکتوری پترن فاصله می‌گیرد و همه‌ی استخرها را در یک قرارداد یونیفایدشده اجرا می‌کند و با ترنزینت استوریج، روتینگ ارزان‌تر می‌شود.
  • هوک‌های یونی‌سواپ نسخه ۴ (مثل beforeSwap/afterSwap و before/afterLiquidity) قابلیت برنامه‌پذیر کردن استخرها را می‌دهند اما اتک وکتورهای تازه‌ای هم ایجاد می‌کنند که برای آدیتورها فرصت جالبی است.

مدل حمله فیشینگ مبتنی بر permit

  • permit رویکردی است که به‌جای تراکنش approve، با امضای یک پیام اجازه‌ی approve می‌دهید.
  • سایت‌های فیشینگ کاربر را وادار به امضای پیامی می‌کنند که در واقع approve برای آدرس مهاجم است و می‌تواند در جا دارایی را تخلیه کند.
  • توصیه: قبل از امضا در متامسک یا ولت، محتوای پیام را دقیق بخوانید؛ اگر permit، approve یا کد دیکودنشده دیدید محتاط باشید. همه‌ی توکن‌ها permit را پشتیبانی نمی‌کنند (توکن‌های جدیدتر بله، قدیمی‌ها مثل USDT خیر).

نتیجه‌گیری

هارد فورک دِنکُن یکی از مهم‌ترین ارتقاءهای نام‌دار اتریوم است که با معرفی بلاب‌ها و پروتو-دنک‌شاردینگ، هزینه‌ی رول‌آپ‌ها را کاهش می‌دهد و مسیر اتریوم را به‌سمت zk-friendly شدن و مقیاس‌پذیری هموارتر می‌کند. کنار آن، EIPهایی مثل EIP-6780، EIP-4788، MCOPY و EIP-1153 هرکدام تکه‌ای از پازل بزرگ‌ترِ بهبود امنیت، بهینه‌سازی گس و اتصال بهتر لایه اجرا و اجماع‌اند. جمع‌بندی اپیزود دعوتی است به دنبال کردن سایت Ethereum Magicians و کال‌های ACD برای مشاهده‌ی نزدیکِ نحوه‌ی ساخته شدن این پروتکل و مشارکت در گفت‌وگوی فنی و سازنده‌ی اکوسیستم.

لینک های این اپیزود:

قسمت‌های مرتبط

زمان‌بندی فصل‌ها

  • 00:00 مقدمه و معرفی
  • 06:45 چرایی نیاز به آپدیت در شبکه اتریوم
  • 11:40 توضیح جدایی لایه اجرایی و لایه اجماع در شبکه اتریوم و پرداختن به Client Diversity
  • 21:33 شروع بررسی فورک Dencun
  • 23:53 بررسی EIP-4488 (Proto-Danksharding)
  • 31:40 شباهات Proto-Danksharding با SegWit در شبکه بیت‌کوین
  • 35:46 چرایی نیاز به Proto-Danksharding و KZG Commitment
  • 50:38 نحوه استفاده از Proto-Danksharding توسط Rollup ها
  • 55:54 بررسی EIP-6780 (SELFDESTRUCT only in same transaction)
  • 01:06:07 شروع بررسی EIP های مرتبط با لایه اجماع
  • 01:20:56 روند اضافه شدن validator جدید به لایه اجماع
  • 01:23:15 شروع بررسی EIP های مرتبط با لایه اجرایی
  • 01:27:59 بررسی EIP-1153
  • 01:33:08 یکی از مدل های حمله از نوع فیشینگ در دنیای Web3
  • 01:35:14 کاربرد EIP-1153 در Uniswap V4
  • 01:43:20 جمع‌بندی