استخراج بلاکهای خالی کمتر از گذشته رایج است، اما محدودیتهای فنی مانع از حذف کامل آن شدهاند. اینجاست که Stratum V2 وارد میشود.
افزایش علاقه به بیتکوین و رشد حجم تراکنشها، دیدن یک بلاک خالی (یعنی بلاکی بدون هیچ تراکنشی) که به بلاکچین اضافه میشود، یکی از آزاردهندهترین اتفاقات است. استخراج بلاکهای خالی در طول سالها کمتر و کمتر شده است، اما متاسفانه هنوز به طور متوسط هر هفته ۳ تا ۴ بلاک خالی استخراج میشود.
در این مقاله توضیح خواهیم داد:
- چرا استخراج بلاکهای خالی کمتر شده است.
- چرا استخرها هنوز بلاکهای خالی استخراج میکنند.
- چگونه Stratum V2 میتواند به طور کامل استخراج بلاکهای خالی را از بین ببرد.
چرا تعداد بلاکهای خالی که استخراج میشوند کمتر از قبل شده است؟
بیش از ۱۵٪ از بلاکهای موجود در بلاکچین بیت کوین هیچ تراکنشی را شامل نمیشوند، بهجز تراکنش کوینبیس که پاداش ماینر را با کوینهای جدید صادر میکند. با این حال، این آمار بدون در نظر گرفتن زمینه، ممکن است گمراهکننده باشد.
در واقع، تنها حدود ۰٫۴٪ از بلاکهای استخراجشده در سال گذشته خالی بودهاند، و این رقم سال به سال در حال کاهش است. دلایل متعددی برای این کاهش وجود دارد، اما مهمترین دلیل این است که انگیزه اقتصادی برای گنجاندن تراکنشها در بلاکها با گذشت زمان قویتر شده است.

در روزهای اولیه استخراج بیتکوین، زمانی که پاداش هر بلاک ۵۰ یا ۲۵ بیت کوین بود و حجم تراکنشها پایین بود، کارمزد تراکنشها برای ماینرها اهمیت چندانی نداشت. اما از سال ۲۰۱۶، با کاهش پاداش بلاک به ۱۲.۵ بیتکوین و افزایش تدریجی ارزش کارمزدهای تراکنش، شرایط تغییر کرد. این تغییر باعث شد که سهم بیشتری از درآمد استخراج از طریق کارمزد تراکنشها تأمین شود و انگیزه استخراج بلاکهای خالی کاهش یابد.
اما این سؤال پیش میآید:
اگر ماینرها با استخراج بلاکهای خالی مقدار قابل توجهی از درآمد خود را از دست میدهند، چرا این اتفاق همچنان رخ میدهد؟
چرا استخرهای استخراج بیتکوین همچنان گاهی اوقات بلاکهای خالی استخراج میکنند؟
بنابراین، فراوانی بلاکهای خالی در سال گذشته به ۰٫۴٪ کاهش یافته است، اما هنوز هم ۰٫۴٪ بیش از حد زیاد است، درست است؟
متأسفانه، حتی انگیزه اقتصادی قوی برای استخراج بلاکهای کامل نیز برای حذف کامل این مشکل کافی نیست. دلیل اینکه استخرهای استخراج، از جمله Braiins Pool (که پیشتر با نام Slush Pool شناخته میشد)، همچنان گاهی اوقات بلاکهای خالی استخراج میکنند، به محدودیتهای فنی برمیگردد.
هر زمان که یک بلاک جدید یافت میشود، توسط نود ماینر (یا استخر استخراج) که آن را پیدا کرده، به شبکه ارسال شده و به سایر نودهای شبکه منتقل میشود. در همان لحظهای که نودهای استخراج دیگر متوجه میشوند که یک بلاک معتبر پیدا شده است، باید استفاده از توان هش خود برای آن بلاک را متوقف کرده و شروع به جستجوی بلاک بعدی کنند.
در استخراج در استخر (pooled mining)، فرآیند شروع کار روی یک بلاک جدید نیازمند این است که استخر استخراج یک قالب بلاک (block template) همراه با prevhash بلاک تازه پیدا شده به ماینر ارسال کند. پس از دریافت قالب بلاک، ماینر میتواند تلاش برای یافتن یک nonce که بلاک بعدی را حل کند آغاز کند. هر ثانیه از زمان جستجو اهمیت دارد، بنابراین مهم است که استخرها هرچه سریعتر قالبهای بلاک جدید را برای کار به ماینرهای خود ارائه دهند.
برای حداکثر کردن زمانی که ماینرها میتوانند به جستجوی بلاک بعدی بپردازند، استخرهای استخراج ابتدا قالبهای بلاک خالی بدون تراکنشها را ارسال میکنند. دلیل این امر این است که ارسال یک قالب بلاک کامل دادههای بیشتری را نسبت به یک قالب خالی منتقل میکند، که این امر باعث ایجاد تأخیر اضافی شده و در نتیجه جستجوی ماینرها برای یک nonce معتبر را به تأخیر میاندازد.

پس از فقط ۱ یا ۲ ثانیه، استخر میتواند یک قالب بلاک بهروزرسانیشده با تراکنشهای گنجاندهشده ارسال کند. با این حال، این کار قالب بلاک خالی قبلی که استخر ارسال کرده را بیاعتبار نمیکند، بنابراین ممکن است ماینرها برای مدتی همچنان روی آن قالب خالی کار کنند قبل از اینکه به قالب کامل سوئیچ کنند. در نتیجه، زمانی که ماینرها بسیار خوششانس باشند و ظرف چند ثانیه پس از بلاک قبلی یک بلاک پیدا کنند، آن بلاک اغلب خالی خواهد بود.
این به این معناست:
تا زمانی که پاداش بلاک بخش قابل توجهی از درآمد استخراج را تشکیل دهد، این انگیزه برای ارسال بلاکهای خالی در ابتدای دورهای جدید استخراج باقی خواهد ماند. حداقل این موضوع با پروتکل اصلی استراتوم پابرجا خواهد بود.
چگونه Stratum V2 استخراج بلاکهای خالی را از بین میبرد؟
برای خلاصه کردن آنچه تاکنون بررسی کردهایم:
- استخراج بلوکهای خالی، به دلیل افزایش ارزش کارمزدهای تراکنش در حال کاهش است.
- انگیزه برای استخراج بلوکهای خالی نمیتواند به طور کامل حذف شود، مادامی که تأخیر بیشتری برای ارسال قالبهای بلوک کامل نسبت به قالبهای بلوک خالی در ابتدای دورهای جدید استخراج وجود داشته باشد.
برای حذف کامل انگیزه استخراج بلوکهای خالی، باید تأخیری را که به دلیل ارسال قالبهای بلوک کامل برای شروع کار ماینرها بلافاصله پس از یافتن یک بلوک جدید ایجاد میشود، از بین ببریم.
راهحل در Stratum V2 در واقع بسیار ساده است. در حالی که در نسخه V1 استراتوم، انتقال دادهای که به ماینرها امکان میدهد روی یک بلوک جدید کار کنند، قالب بلوک و prevhash را بهصورت یکجا شامل میشد، در نسخه V2 این دو مؤلفه از یکدیگر جدا شدهاند.
در نتیجه، استخرهای استخراج میتوانند عمیقتر در mempool (برای تراکنشهایی که احتمالاً در بلوک جاری گنجانده نمیشوند) جستجو کرده و قالبهای بلوک کامل را پیش از یافتن بلوک فعلی بسازند. سپس این قالبهای بلوک را زمانی که تأخیر اهمیت ندارد، از پیش برای ماینرها ارسال کنند، بهطوری که تنها پیام prevhash برای شروع واقعی دور جدید استخراج ارسال شود.

به این ترتیب، چند ثانیه مزیت زمانی که با ارسال بلوکهای خالی به دست میآمد، بیاثر میشود. با Stratum V2 دیگر انگیزهای برای استخرها وجود ندارد که در ابتدای دورهای استخراج، بلوکهای خالی ارسال کنند.
اطلاعات بیشتر درباره Stratum V2
استخراج بلوکهای خالی دیگر مانند گذشته رایج نیست، اما همچنان هر بار که بلوکی بدون تأیید تراکنشها استخراج میشود، ناامیدکننده است. بهویژه به این دلیل که این یک درآمد از دسترفته برای ماینرهاست و میتوانست فرصتی برای پاکسازی تراکنشهای با کارمزد پایینتر از mempool باشد. جدا کردن قالب بلوک از پیام prevhash یک راهحل ساده برای این مشکل و یکی از مزایای آشکار Stratum V2 است.
در نگاه کلی، حذف استخراج بلوکهای خالی تنها بخش کوچکی از عواملی است که Stratum V2 را برای آینده صنعت استخراج بهتر میسازد.
منبع:
مقاله Why Pools Mine Empty Blocks and How Stratum V2 Fixes This