انتخاب پنهانی رهبر
امروزه در مکانیسم اجماع مبتنی بر اثبات سهام، فهرست پیشنهاددهندگان بلوک برای عموم در دسترس است و امکان بدست آوردن آدرس IP آنها وجود دارد. این بدان معناست که مهاجمان میتوانند تشخیص دهند کدام اعتبارسنجها قرار است یک بلوک را پیشنهاد کنند و آنها را با یک حملۀ «رد خدمات» (DOS) هدف قرار دهند، که باعث میشود نتوانند بلوک خود را به موقع پیشنهاد کنند.
این میتواند فرصتهای سودآوری برای مهاجم ایجاد کند. به عنوان مثال، یک پیشنهاددهنده بلوک که برای اسلات n+1
انتخاب شده است، میتواند پیشنهاددهنده را در اسلات n
مورد حمله DOS قرار دهد تا فرصت خود را برای پیشنهاد کردن یک بلوک از دست بدهد. این به پیشنهاددهنده بلوک مهاجم اجازه میدهد تا MEV هر دو اسلات را استخراج کند، یا تمام تراکنشهایی را که باید بین دو بلوک تقسیم میشد، بگیرد و در عوض، همه آنها را در یک بلوک قرار دهد و تمام کارمزدهای مرتبط را به دریافت کند. این احتمالاً بر اعتبارسنجهای خانگی بیشتر از اعتبارسنجهای سازمانی و پیچیده تأثیر میگذارد چراکه آنها میتوانند از روشهای پیشرفتهتری برای محافظت از خود در برابر حملات DOS استفاده کنند و بنابراین میتوانند یک نیروی متمرکزکننده باشند.
چندین راه حل برای رفع این مسئله وجود دارد. یکی از آنها فناوری اعتبارسنجی توزیعشده(opens in a new tab) است که هدفش توزیع وظایف مختلف مربوط به اجرای یک اعتبارسنجی در چندین ماشین، با تزائد است، به طوری که جلوگیری از پیشنهاد یک بلوک در یک اسلات خاص برای یک مهاجم بسیار دشوارتر شود. با این حال، موثرترین راه حل انتخاب رهبر مخفی منفرد (SSLE) است.
انتخابات تکرهبر پنهان
در SSLE، از رمزنگاری هوشمندانهای استفاده میشود تا اطمینان حاصل شود که فقط اعتبارسنج انتخابشده از انتخاب شدنش اطلاع داشته باشد. این کار به این صورت انجام میشود که هر اعتبارسنج تعهدی را به عبارت محرمانهای که همگی به طور مشترک دارند، ارائه کند. تعهدات به شکل تصادفی تغییر میکنند و مجدداً پیکربندی میشوند تا هیچکس نتواند تعهدات را به اعتبارسنجیها مرتبط کند، اما هریک از اعتبارسنجها میدانند که کدام تعهد متعلق به آنهاست. پس از آن، یک تعهد به شکل تصادفی انتخاب میشود. اگر اعتبارسنج تشخیص دهد که تعهد او انتخاب شده است، متوجه میشود که نوبت اوست که یک بلوک را پیشنهاد کند.
پیادهسازی اصلی این ایده Whisk(opens in a new tab) نام دارد. و به شرح زیر عمل میکند:
- اعتبارسنجها به یک عبارت محرمانه مشترک متعهد میشوند. طرح تعهد به گونهای طراحی شده است که میتوان آن را به یک اعتبارسنج مشخص پیوند داد و تصادفیسازی کرد، به طوری که هیچ شخص ثالثی نتواند پیوند مذکور را مهندسی معکوس کند و یک تعهد خاص را به یک اعتبارسنج خاص مرتبط کند.
- در شروع یک ایپوک، با استفاده از RANDAO یک مجموعه تصادفی از اعتبارسنجها برای نمونهبرداری از تعهدات از مجموع 16,384 اعتبارسنج انتخاب میشود.
- برای 8182 اسلات بعدی (1 روز)، پیشنهاددهندگان بلوک زیرمجموعهای از تعهدات را با استفاده از الگوی بیمنظمی خصوصی خود به هم ریخته و تصادفی میکنند.
- پس از اینکه فرآیند درهم آمیختن انجام شد، از RANDAO برای ایجاد یک لیست منظم از تعهدات استفاده میشود. این لیست بر روی اسلاتهای اتریوم ثبت شده است.
- اعتبارسنجها میبینند که تعهد آنها به یک اسلات خاص متصل است و هنگامی که آن اسلات در دسترس قرار میگیرد، یک بلوک را پیشنهاد میکنند.
- این مراحل را تکرار کنید تا تخصیص تعهدات به اسلاتها همیشه جلوتر از اسلات فعلی باشد.
این امر مانع از این میشود که مهاجمان از قبل بدانند کدام اعتبارسنج بلوک بعدی را پیشنهاد میکند، بنابراین از ایجاد فرصت برای حملات DOS جلوگیری میشود.
انتخاب رهبر مخفی غیرمنفرد (SnSLE)
همچنین، یک پیشنهاد جداگانه وجود دارد که هدف آن ایجاد سناریویی است که در آن اعتبارسنجیها شانسی تصادفی برای پیشنهاد یک بلوک در هر اسلات دارند، مشابه نحوه تصمیمگیری درباره پیشنهاد بلوک برمبنای اثبات کار، که با عنوان انتخاب رهبر مخفی غیرمنفرد (SnSLE) شناخته میشود. یک راه ساده برای انجام این کار استفاده از تابع RANDAO است که برای انتخاب تصادفی اعتبارسنجها در پروتکل امروزی استفاده میشود. ایده RANDAO این است که یک عدد کاملاً تصادفی با مخلوط کردن هشهای ارسالشده توسط مجموعهای از اعتبارسنجهای مستقل تولید میشود. در SnSLE، از این هشها میتوان برای انتخاب پیشنهاددهنده بلوک بعدی استفاده کرد، برای مثال با انتخاب کمارزشترین هش. دامنه هشهای معتبر میتواند برای تنظیم احتمال انتخاب هریک از اعتبارسنجها در هر اسلات محدود شود. با بیان اینکه هش باید کمتر از 2^256 * 5 / N
باشد، که در آن N
تعداد اعتبارسنجهای فعال است، شانس انتخاب هر اعتبارسنج در هر اسلات 5/N
خواهد بود. در این مثال، احتمال 99/3٪ وجود دارد که حداقل یک پیشنهاددهنده یک هش معتبر در هر شکاف ایجاد کند.
پیشرفت فعلی
SSLE و SnSLE هر دو در مرحله تحقیقات هستند. هنوز هیچ مشخصاتی قطعی برای هیچکدام از این دو ایده وجود ندارد. SSLE و SnSLE پیشنهادهایی رقابتی هستند که هر دو همزمان قابل اجرا نیستند. قبل از نهایی شدن، آنها به تحقیق و توسعه بیشتر، نمونهسازی و پیادهسازی در شبکههای تست عمومی نیاز دارند.