پرش به محتوای اصلی

آخرین بروزرسانی صفحه: ۱۶ اسفند ۱۴۰۲

دانک‌شاردینگ

Danksharding شبکه اتریوم را به یک زنجیره بلوکی کاملاً مقیاس‌پذیر تبدیل می‌کند، اما برای رسیدن به آن، لازم است چندین به‌روزرسانی در پروتکل اتریوم اجرا شود. Proto-Danksharding یکی از مراحل میانی رسیدن به این هدف است. هردو هدفشان این است که تراکنش‌ها را در شبکه‌های لایه‌ دوم تا حد ممکن ارزان‌تر کنند و سرعت پردازش تراکنش‌ها در شبکه اتریوم را به بیش از 100,000> تراکنش در ثانیه تغییر دهد.

Proto-Danksharding چیست؟

Proto-Danksharding با نام EIP-4844(opens in a new tab) هم شناخته می‌شود و راهی است برای رول‌آپ‌ها تا داده‌های ارزان‌تری به بلوک‌ها افزوده شوند. این اسم از نام دو محقق (Protolambda و Dankrad Feist) که این ایده را مطرح کردند گرفته شده است. درحال حاضر، رول‌آپ‌ها برای کمتر کردن هزینه‌ها محدودیت‌هایی دارند چون تراکنش‌های خود را با CALLDATA انتقال می‌دهند. این فرایند پرهزینه است چون تمام گره‌های اتریوم باید آن را پردازش کنند و باید همیشه در زنجیره فعال باشند، گرچه رول‌آپ‌ها فقط برای مدت کوتاهی به داده‌ها نیاز دارند. Proto-Danksharding توده‌هایی از داده‌ها را ارائه می‌کند که قابل ارسال و الصاق به بلوک‌ها هستند. EVM به این توده‌ها دسترسی ندارد و پس از یک دوره زمانی مشخص (1-3 ماه) به طور خودکار حذف می‌شوند. به‌عبارتی، رول‌آپ‌ها اطلاعات را با هزینه کمتری ارسال می‌کنند و مقدار صرفه‌جویی‌شده را در قالب تراکنش‌های ارزان‌تر به کاربران نهایی منتقل می‌کنند.

نحوه تأیید توده اطلاعات چگونه است؟

رول‌آپ‌ها تراکنش‌هایی را که اجرا می‌کنند در قالب توده‌های داده‌ها منتشر می‌کنند. همچنین «تعهدی» را نسبت به داده‌ها منتشر می‌کنند. آن‌ها این کار را با نصب یک تابع چند جمله‌ای به داده‌ها انجام می‌دهند. سپس این تابع را می‌توان در نقاط مختلف ارزیابی کرد. به عنوان مثال، تابع بسیار ساده f(x) = 2x-1 را درنظر بگیرید. سپس، این تابع را می‌توانیم برای متغیرهای x = 1 ،x = 2 ،x = 3 ارزیابی کنیم، که نتایج 1, 3, 5 را به ما می‌دهد. هر تأییدکننده همین تابع را برای داده‌ها اعمال و آن را در همان نقاط ارزیابی می‌کند. هربار که داده‌های اصلی تغییر کنند، تابع هم یکسان نخواهد بود، و بنابراین مقادیری که در هر نقطه ارزیابی شده‌اند نیز متفاوت خواهند بود. در واقعیت، پروسه تعهد و تأیید پیچیده‌تر است چون در بطن توابع رمزنگاری‌شده قرار گرفته‌اند.

KZG چیست؟

KZG مخفف نام سه نویسنده اصلی(opens in a new tab) Kate-Zaverucha-Goldberg طرحی است که یک توده از داده را در یک تعهدنامه رمزنگاری‌شده(opens in a new tab) کوچک خلاصه می‌کند. برای اطمینان از این که رول‌آپ‌ها رفتار درست دارند، توده داده‌های ارسال‌شده از طرف رول‌آپ‌ها باید تأیید شوند. در این فرایند، یک اثبات‌کننده تراکنش‌های موجود در توده داده‌ها را مجدداً اجرا می‌‌کند تا معتبر بودن تعهد بررسی شود. از نظر مفهومی، این روش شبیه همان کاری است که کلاینت‌های اجرا، با استفاده از اثبات‌های Merkle، برای بررسی اعتبار تراکنش‌های اتریوم در لایه 1 انجام می‌دهند. KZG روشی جایگزین برای اثبات است که یک معادله چند جمله‌ای را به داده‌ها الصاق می‌کند. تعهد مذکور صحت این معادله را با برخی از داده‌های مخفی ارزیابی می‌کند. یک اثبات‌کننده همان معادله چندجمله‌ای را با همان مقادیر ارزیابی می‌کند تا یکسان بودن نتایج را بررسی کند. این فرایند روشی برای تأیید داده‌هایی سازگار با تکنیک‌های دانش صفر است که بعضی از رول‌آپ‌ها و متعاقباً بخش‌‌هایی از پروتکل اتریوم بکار می‌برند.

تشریفات KZG چیست؟

تشریفات KZG راهی است که با آن بسیاری از افراد جامعه اتریوم می‌توانند یک رشته تصادفی مخفی از اعداد را با هم تولید و از آن برای تأیید برخی از داده‌ها استفاده کنند. نکته حائز اهمیت این است که این رشته از اعداد ناشناخته‌اند و کسی نمی‌تواند دوباره آن‌ها را تولید کند. برای اطمینان از این امر، هر شرکت‌کننده در این تشریفات یک رشته از شرکت‌کننده قبلی دریافت می‌کنند. سپس می‌توانند مقادیر تصادفی جدیدی (مثلاً با دادن اجازۀ بررسی حرکت ماوس به مرورگر خود) ایجاد آن را با مقدار قبلی ترکیب کنند. سپس، مقدار ساخته‌شده را برای شرکت‌کننده بعدی ارسال می‌کنند و آن را از دستگاه محلی خود از بین می‌برند. مادامی‌که یک نفر در تشریفات این اقدام را با درستکاری انجام دهد، مقدار نهایی برای مهاجم قابل تشخیص نخواهد بود. تشریفات EIP-4844 KZG برای عموم آزاد بود و ده‌ها هزار نفر برای اضافه کردن آنتروپی خود در آن شرکت کردند. وقتی اعتبار تشریفات زیر سؤال می‌رود که 100 درصد شرکت‌کنندگان فعالیت خود را به‌طور فعالانه از روی فریبکاری انجام دهند. از نقطه‌نظر شرکت‌کنندگان، اگر بدانند که کارشان را صادقانه انجام داده‌اند، نیازی نیست به شخص دیگری اعتماد کنند زیرا می‌دانند که امنیت تشریفات را تأمین کرده‌اند (شرط یک شرکت‌کننده درستکار از میان N شرکت‌‌کننده را که لازمه صحت روند است شخصاً تضمین کرده‌اند).

Danksharding و Proto-Danksharding هیچ‌کدام از مدل سنتی «شاردینگ» (زنجیره‌ای‌سازی) پیروی نمی‌کنند، مدلی که هدف آن تقسیم زنجیره بلوکی به چندین بخش بود. زنجیره‌های شارد (خرده‌زنجیره‌ها) دیگر بخشی از نقشه راه نیستند. در عوض، Danksharding از نمونه‌گیری داده‌های توزیع‌شده در توده‌ها برای مقیاس‌بندی اتریوم استفاده می‌کند. اجرای این بسیار ساده‌تر است. گاهی اوقات، از این مدل تحت عنوان «شاردینگ داده‌ها» یاد می‌شود.

Danksharding چیست؟

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

روش کار این مکانیزم این گونه است که توده‌های اطلاعات متصل به بلوک‌ها را بسط می‌دهد، به‌طوری که مقدار 1 در Proto-Danksharding به 64 در نسخه نهایی Danksharding می‌رسد. بقیه تغییرات مورد نیاز همگی به‌روزرسانی‌هایی در نحوه عملکرد کلاینت اجماع است تا بتواند به توده‌های اطلاعاتی جدید و بزرگ رسیدگی کند. تعدادی از این تغییراتی که هم‌اکنون در نقشه راه وجود دارد برای اهداف دیگری مستقل از Danksharding عمل می‌کنند. به عنوان مثال، برای Danksharding لازم است تفکیک پیشنهاددهنده و سازنده اجرا شده باشد. این ارتقا وظایف ساخت بلوک و پیشنهاد بلوک را بین اعتبارسنج‌های مختلف از هم تفکیک می‌کند. همچنین، در Danksharding نمونه‌گیری در دسترس بودن داده‌ها ضروری است، همانطور که برای توسعه تین‌کلاینت‌هایی که داده‌های تاریخی زیادی ذخیره نمی‌کنند لازم است (کلاینت‌های بدون حالت).

پیشرفت فعلی

هنوز چند سالی با اجرای کامل Danksharding فاصله داریم. با این حال، Proto-Danksharding اصولاً کمی زودتر از راه خواهد رسید. در زمان نگارش این مقاله (فوریه 2023) تشریفات KZG هنوز فعال است و تاکنون بیش از 50,000 مشارکت‌کننده را جذب کرده است. EIP(opens in a new tab) در Proto-Danksharding کامل شده، بر سر مشخصات آن توافق شده، و کلاینت‌ها نمونه‌های اولیه آن را که درحال حاضر تحت آزمایش بوده و برای مرحله تولید آماده شده‌اند پیاده‌سازی کرده‌اند. گام بعدی این است که تغییرات در یک شبکه تست عمومی پیاده‌سازی شود. اطلاعات به‌روز را می‌توانید با استفاده از چک‌لیست آماده‌سازی EIP 4844‏(opens in a new tab) ببینید.

بیشتر بخوانید

آیا این مقاله مفید بود؟