دانکشاردینگ
Danksharding شبکه اتریوم را به یک زنجیره بلوکی کاملاً مقیاسپذیر تبدیل میکند، اما برای رسیدن به آن، لازم است چندین بهروزرسانی در پروتکل اتریوم اجرا شود. Proto-Danksharding یکی از مراحل میانی رسیدن به این هدف است. هردو هدفشان این است که تراکنشها را در شبکههای لایه دوم تا حد ممکن ارزانتر کنند و سرعت پردازش تراکنشها در شبکه اتریوم را به بیش از 100,000> تراکنش در ثانیه تغییر دهد.
Proto-Danksharding چیست؟
بروتو-دنکشاردینگ با نام EIP-4844(opens in a new tab) هم شناخته میشود و راهی است برای رولآپها تا دادههای ارزانتری به بلوکها افزوده شوند. این اسم از نام دو محقق (Protolambda و Dankrad Feist) که این ایده را مطرح کردند گرفته شده است. از لحاظ تاریخی، رولآپها به دلیل اینکه تراکنشهای خود را در CALLDATA
پست میکنند، از نظر ارزان بودن تراکنشهای کاربر محدود بوده اند.
این فرایند پرهزینه است چون تمام گرههای اتریوم باید آن را پردازش کنند و باید همیشه در زنجیره فعال باشند، گرچه رولآپها فقط برای مدت کوتاهی به دادهها نیاز دارند. پروتو-دنکشاردینگ تودههایی از دادهها را ارائه میکند که قابل ارسال و الصاق به بلوکها هستند. داده موجود در این تودهها برای EVM قابل دسترسی نیستند و پس از یک دوره زمانی ثابت (که بر روی 4096 ایپوک در زمان نوشتن یا حدود 18 روز تنظیم شده است) بهطور خودکار حذف میشوند. بهعبارتی، رولآپها اطلاعات را با هزینه کمتری ارسال میکنند و مقدار صرفهجوییشده را در قالب تراکنشهای ارزانتر به کاربران نهایی منتقل میکنند.
نحوه تأیید توده اطلاعات چگونه است؟
رولآپها تراکنشهایی را که اجرا میکنند در قالب تودههای دادهها منتشر میکنند. همچنین «تعهدی» را نسبت به دادهها منتشر میکنند. آنها این کار را با نصب یک تابع چند جملهای به دادهها انجام میدهند. سپس این تابع را میتوان در نقاط مختلف ارزیابی کرد. به عنوان مثال، تابع بسیار ساده 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 برای عموم آزاد بود و ده ها هزار نفر برای اضافه کردن آنتروپی (انتخاب تصادفی) خود شرکت کردند. در مجموع بیش از 140،000 مشارکت کننده وجود داشت که آن مراسم را به بزرگترین مراسم از نوع خود در جهان تبدیل کردند. وقتی اعتبار تشریفات زیر سؤال میرود که 100 درصد شرکتکنندگان فعالیت خود را بهطور فعالانه از روی فریبکاری انجام دهند. از نقطهنظر شرکتکنندگان، اگر بدانند که کارشان را صادقانه انجام دادهاند، نیازی نیست به شخص دیگری اعتماد کنند زیرا میدانند که امنیت تشریفات را تأمین کردهاند (شرط یک شرکتکننده درستکار از میان N شرکتکننده را که لازمه صحت روند است شخصاً تضمین کردهاند).
Danksharding چیست؟
Danksharding تحقق کامل مقیاسبندی رولآپی است که با Proto-Danksharding آغاز شده بود. Danksharding در اتریوم فضای عظیمی را برای رولآپها فراهم میکند تا دادههای تراکنشهای فشردهشده را از شبکه بیرون کند. این بدان معناست که اتریوم میتواند با پشتیبانی آسان از صدها رولآپ جداگانه، رؤیای پردازش میلیونها تراکنش در ثانیه را به واقعیت تبدیل کند.
روش کار این است که تودههای متصل به بلوک ها را از شش (6) در پروتو-دنکشاردینگ به 64 در دنکشاردینگ کامل گسترش می دهد. بقیه تغییرات مورد نیاز همگی بهروزرسانیهایی در نحوه عملکرد کلاینت اجماع است تا بتواند به تودههای اطلاعاتی جدید و بزرگ رسیدگی کند. تعدادی از این تغییراتی که هماکنون در نقشه راه وجود دارد برای اهداف دیگری مستقل از Danksharding عمل میکنند. به عنوان مثال، برای Danksharding لازم است تفکیک پیشنهاددهنده و سازنده اجرا شده باشد. این ارتقا وظایف ساخت بلوک و پیشنهاد بلوک را بین اعتبارسنجهای مختلف از هم تفکیک میکند. همچنین، در Danksharding نمونهگیری در دسترس بودن دادهها ضروری است، همانطور که برای توسعه تینکلاینتهایی که دادههای تاریخی زیادی ذخیره نمیکنند لازم است (کلاینتهای بدون حالت).
پیشرفت فعلی
هنوز چند سالی با اجرای کامل Danksharding فاصله داریم. در این بین، مراسم KZG با بیش از 140،000 مشارکت کننده به پایان رسید و EIP(opens in a new tab) مربوط به پروتو-دنکشاردینگ به بلوغ رسید. این پیشنهاد به طور کامل در همه شبکههای آزمایشی پیادهسازی شده و با ارتقای شبکه Cancun-Deneb ("Dencun") در مارس 2024 در شبکه اصلی پخش شد.
بیشتر بخوانید
- یادداشتهای Proto-Danksharding(opens in a new tab) - Vitalik Buterin
- یادداشتهای Dankrad در مورد Danksharding(opens in a new tab)
- گفتگوی Dankrad و Proto و Vitalik درباره Danksharding(opens in a new tab)
- تشریفات KZG(opens in a new tab)
- بحث دِوکان Carl Beekhuizen در مورد تنظیمات قابل اعتماد(opens in a new tab)
- اطلاعات بیشتر در مورد نمونهگیری در دسترس بودن داده برای تودهها(opens in a new tab)
- سخنان Dankrad Feist در مورد تعهدات و اثباتهای KZG(opens in a new tab)
- تعهدات چندجملهای KZG(opens in a new tab)