در این مقاله قصد داریم در مورد بلاک خالی بیت کوین اطلاعاتی را در اختیار شما قرار دهیم. اگر تاکنون مفهوم بلاک خالی بیت کوین برای شما سوال شده است باید بدانید که بلاک خالی بیت کوین در حقیقت بلاکی است که اطلاعاتی مانند هدر را دارد؛ این تراکنش پاداش ماینرها را پرداخت می کند. همانطور که می دانید رمزارز بیت کوین یکی از بزرگترین و پرطرفدارترین ارزهای دیجیتال است، ویژگی هایی همچون ماندگاری و قابل اعتماد بودن و امنیت بالای شبکه موجب شده است که بیت کوین همواره در میان افراد حاضر در بازارهای مالی بسیار محبوب دیده شود اما نباید این نکته را فراموش کرد که گاهی در شبکه بیت کوین حوادثی رخ می دهد که موجب می شود این ارز مورد انتقاد قرار گیرد.
استخراج بلاک خالی بیت کوین (Empty Block) یکی از همین اتفاقات است که امروزه موجب شده است که رمزارز بیت کوین با انتقادات بسیار زیادی مواجه شود. شاید اکنون این سوال برای شما مطرح شود که آیا واقعا می توان بلاک خالی استخراج کرد؟ در جواب باید بگوییم بله امکان استخراج بلاک خالی وجود دارد؛ برای نمونه، بلاک ۷۷۶٬۳۳۹ که در اواسط سال قبل یعنی فوریه ۲۰۲۳ (بهمن ۱۴۰۱) استخراج شد، بلاکی خالی بود. دو هفته قبل از آن نیز، بلاک شماره ۷۷۴٬۴۸۶ خالی استخراج شده بود.
بلاک خالی بیت کوین به چه معنا است؟
بلاک به فضایی گفته می شود که داده های مربوط به تراکنش ها را در درون خود نگهداری می کند؛ اتصال زنجیره ای از بلاک ها، بلاک چین بیت کوین را تشکیل داده اند. در شبکه بیت کوین، سختی اثبات کار به صورتی تنظیم می شود که به طور متوسط در هر ۱۰ دقیقه یک بلاک جدید ایجاد شود.، هر ماینری که موفق شود بلاک را حل کند، پاداش استخراج بلاک (در حال حاضر ۶.۲۵ بیت کوین) و کارمزد تراکنش ها را به دست می آورد.
هنگامی که ماینرها تراکنش ها را پر می کنند، بلاک جدید به وجود می آید؛ البته باید بدانید که تراکنش های مورد نظر در مکانی به نام ممپول قرار گرفته اند. ماینرها این مسئولیت را دارند تا تراکنش هایی که انتخاب کرده اند از ممپول به بلاک منتقل کنند، حال اگر ماینری بلاک را بدون قرار دادن تراکنش در آن استخراج کند، می گوییم بلاک خالی استخراج کرده است.
البته باید بدانید که این بلاک ها در واقع کاملا خالی نیستند و همانند بلاک های معمولی، هدرها و دیگر فیلدهای اطلاعات را دارا است. بلاک خالی حتی دارای فهرست تراکنش است، با این تفاوت که در فهرست مورد نظر فقط یک تراکنش دیده می شود و آن هم تراکنش کوین بیس است که وظیفه دارد پاداش استخراج بلاک را به ماینر بپردازد.
نکته قابل توجه در مورد استخراج بلاک های خالی این است که استخراج بلاک های خالی، آسان یا با هزینه کمتر و سریع تر از بلاک های پر نیست و علت این موضوع به هزینه های محاسباتی از جمله هزینه اثبات کار مربوط است. در ادامه قصد داریم به چگونگی استخراج بلاک خالی بیت کوین بپردازیم.
استخراج بلاک در بیت کوین
تصور کنید که شما به عنوان یک ماینر فعالیت می کنید و وظیفه دارید که بلاک را استخراج کنید؛ شما در این شرایط باید ابتدا ممپول را مورد بررسی قرار دهید و سپس تراکنش های مناسب با کارمزدهای زیاد را انتخاب و در ادامه به بلاک منتقل کنید. البته در این مراحل، ماینرهای دیگر نیز با شما رقابت می کنند و تلاش می کنند که از دیگر ماینرها پیشی بگیرند.
این ممپول اختصاصی نیست و همه ماینرها تراکنش هایشان را از همین ممپول انتخاب می کنند، از آنجا که همه تلاش می کنید تراکنش هایی با بیشترین کارمزد را انتخاب کنید، طبیعی است که بسیاری از تراکنش ها بین شما مشترک باشند؛ بنابراین، باید ساز و کاری وجود داشته باشد که تراکنش های تکراری انتخاب نشوند.
در این قسمت است که اثبات کار ورود می کند، همه شما که به عنوان ماینر با یک دیگر رقابت می کند موظف هستید که ماینرها با عددی تصادفی موسوم به نانس را بیابید. هر ماینری که با سرعت، نانس را پیدا کند برنده می شود، بعد از چند دقیقه، ناگهان یکی از ماینرها اعلام می کند که نانس را پیدا کرده است، او باید این بلاک جدید را بین همه نودهای شبکه منتشر کند تا آن را بررسی و اعتبارسنجی کنند.
پس از اینکه تایید می شود، آن بلاک به بلاک چین اضافه می شود و بلاکی که شما بر روی آن کار می کنید، حتی اگر یک تراکنش مشترک با آن بلاک داشته باشد، با سرعت نامعتبر می شود؛ در این مرحله، همه تراکنش های بلاک جدید را برای تکرار نشدن در بلاک بعدی، از ممپول حذف می کنند.
استخراج بلاک خالی بیت کوین چگونه صورت می گیرد؟
در این بخش نیز خود را در جایگاه یک ماینر قرار دهید، شما باید برای این که بلاک معتبر پیدا کنید و آن را به انتهای بلاک چین اضافه کنید باید چندین فیلد را برای هدر بلاک جدید تنظیم کنید؛ ولی دو فیلد هستند که به داده های بلاک قبلی وابسته اند: هش بلاک قبلی و ریشه مرکل تمام تراکنش های موجود در بلاک جدید.
توجه داشته باشید از لحظه ای که شما هدر آخرین بلاک را به دست می آورید تا دانلود و اعتبارسنجی همه تراکنش های موجود در آن بلاک، یک زمان بسیار محدودی را دارا هستید؛ به دلیل این که ماینینگ معمولا مسابقه ای جهانی برای یافتن بلاک است، در این شرایط کمترین ثانیه ها نیز دارای اهمیت بسیار زیادی هستند و یک ماینر نباید هیچ فرصتی را از دست دهد.
به دلیل این که شما به عنوان یک ماینر برای بلاک قبلی قدرت هش و زمان بسیار زیادی صرف کردید بدون تردید فکر می کنید که باید آن زمان صرف شده را به گونه ای جبران کنید؛ بنابراین، در این مدت زمان کوتاه که بیشتر ماینرها مشغول اعتبارسنجی هستند، تأیید بلاک فعلی را کنار می گذارید و بلاکی جدید تشکیل می دهید و زودتر از دیگران سعی می کنید تا نانس آن را پیدا کنید اما این سوال مطرح می شود که کدام تراکنش ها را باید در آن قرار دهید؟
این موضوع را نمی دانید؛ زیرا هنوز تراکنش های بلاکی را اعتبارسنجی نکرده اید که ماینر دیگر موفق شده بود آن را حل کند. از آنجا که آن تراکنش ها هنوز از ممپول حذف نشده اند، ممکن است تراکنشی تکراری به بلاکتان اضافه کنید و این به معنای دوبار خرج کردن است.
نباید فراموش کنید که با وجود حتی یک تراکنش تکراری، شبکه بلاک شما را به عنوان یک ماینر نامعتبر خواهد کرد؛ در این شرایط شما باید با بلاک خالی کار کنید تا نانس آن را پیدا کنید زیرا در این شرایط رقابت بسیار کمی وجود دارد. اگر اندکی شانس داشته باشید در مدت بسیار کوتاهی آن را پیدا می کنید و با پیدا کردن آن، شما بدون هیچ مشکلی بلاکی خالی استخراج کرده اید؛ به دلیل این که بلاک به تنهایی حاوی تراکنش کوین بیس است، فقط به شما پاداش استخراج بلاک تعلق می گیرد.
چرا برخی استخرهای استخراج، بلاک خالی بیت کوین استخراج میکنند؟
هنگامی که بلاک جدیدی یافت می شود، استخر استخراج تلاش می کند تا اطلاعات مربوط به آن را از رقیبش دریافت کند؛ با این حال همه نودهای این استخر، باید قدرت هش مربوط به خود را روی آن بلاک متوقف کنند و به دنبال بلاک دیگر باشند.
در این زمان، استخر ماینینگ باید چند کار انجام دهد: دانلود بلاک کامل و اعتبارسنجی تراکنش های آن و تعریف بلاک جدید برای استخراج، این کار مدتی زمان می برد؛ از این رو، برای این که قدرت هش اتلاف نشود، استخر ماینینگ ابتدا قالب بلاک خالی به نام تمپلیت را در اختیار ماینرها قرار می دهد تا برای یافتن نانس تلاش کنند.
در این فاصله خود استخر تلاش می کند بلاک جدید را با تراکنش های مربوطه پر کند و اعتبارسنجی بلاک قبلی را انجام دهد. این نکته را فراموش نکنید که هر ثانیه از زمان جست و جو حکم طلا را برای شما دارد. در ۱ یا ۲ ثانیه، بلاک تمپلیت به روز شده که این بار حاوی تراکنش است، برای ماینرها ارسال می شود، بلاک به روز شده بلاک تمپلیت قبلی را باطل نمی کند؛ زیرا آن بلاک تراکنشی نداشته است.
حال شاید این سوال برای شما طرح شود که در شرایط گفته شده چه اتفاقی رخ می دهد؟ در جواب باید بگوییم که برخی مواقع ماینرهای خوش شانس در چند میلی ثانیه و یا قبل از آن که استخر بلاک به روز شده حاوی تراکنش را به آنها برساند، نانس را به راحتی پیدا می کنند و بدین صورت بلاک خالی استخراج می شود، توجه کنید که این بلاک صرفا حاوی تراکنش کوین بیس است.
واقعیت غیر قابل کتمان این است که در این حوزه، زمان از ارزش بسیار بالایی برخوردار است. به هیچ عنوان استخرها نمی توانند پیش بینی کنند که نانس به سرعت پیدا می شود، بلکه فقط می توانند کار استخراج بلاک بعدی را با سرعت آغاز کنند.
با استخراج بلاک خالی چه اتفاقی در شبکه رخ می دهد؟
گاهی استخراج بلاک خالی از روی عمد انجام نمی شود و به علت فاصله زمانی غیر قابل اجتناب است؛ بعد از ایجاد موفقیت آمیز بلاک، اعتبارسنجی کامل آن رخ می دهد. باید تأکید کنیم که بلاک های خالی مشکلی برای شبکه ایجاد نمی کنند.
همچنین این نکته را نباید فراموش کرد که استخراج بلاک خالی بیت کوین، سرشار از تراکنش های ایجاد کننده واحدهای جدید بیت کوین نیست اما تراکنش کوین بیس را دارد و تضمین می کند که بیت کوین در مسیر رسیدن به هدف اصلی اش، یعنی داشتن ۲۱ میلیون بیت کوین در گردش، حرکت می کند. البته در این بین، احتمال حمله بلاک خالی نیز وجود دارد. در قسمت زیر قصد داریم تا به بررسی حمله خالی بپردازیم تا شما نیز با این پدیده آشنا شوید.
حمله بلاک خالی به چه معنا است؟
اصل بر این است که استخراج بلاک های خالی مشکلی بر شبکه ایجاد نکند، اما استثنایی نیز برای آن وجود دارد. برای نمونه هنگامی که ماینر، شبکه گسترده بیت کوین را با تاخیر مواجه کند؛ این توانایی را به دست می آورد که حمله بلاک خالی انجام دهد تا در آن فقط بلاک های بدون تراکنش استخراج شود و این عمل موجب می شود که تمام تراکنش ها موجود به شکل معلق تا زمان حمله ادامه یابند و استفاده از شبکه متوقف می شود.
ماینینگ ها در حمله بلاک خالی معمولا تمام قدرت خود را صرف استخراج بلاک های خالی می کنند؛ در حقیقت مهاجم با این حمله سافت فورکی را اجرا می کند و زنجیره دوم کاملاً خالی خواهد بود. تصور بر این است که چون مهاجمان بیشتر قدرت هش را در اختیار دارند، زنجیره طولانی تر برای آنان خواهد بود؛ بنابراین، زنجیره خالی موفق می شود زنجیره دیگر را حذف کند و چون هیچ تراکنشی ندارد، فعالیت های شبکه متوقف می شوند و بیت کوین از بین خواهد رفت.
حمله بلاک خالی به دو صورت انجام می شود: اول حمله بلاک خالی مستقیم دوم حمله بلاک خالی غیر مستقیم. در حمله مستقیم، مهاجم با در اختیار داشتن پنجاه و یک درصد از تجهیزات حمله را شروع می کند و اما در حمله غیر مستقیم، استخرهای ماینینگ را متقاعد می کند که فقط بلاک های خالی استخراج کنند.
در هر دو حالت گفته شده ماینرها به هیچ عنوان به همکاری با استخر تمایل نشان نمی دهند زیرا بلاک های خالی کارمزد تراکنش ها را ندارند و با فرض ۶.۲۵ بیت کوین و کارمزد اندکی که استخرهای استخراج پرداخت می کنند، این کار به صرفه نیست.
اگر شرایط حمله به وجود آید چه اتفاقی رخ می دهد؟
مهاجمان با هدف متوقف کردن شبکه، حمله بلاک خالی را شروع می کنند؛ بقیه اعضای شبکه متوجه می شوند که بلاک ها، خالی هستند و وقتی تعدادشان زیاد باشد، پی می برند که حمله ای در کار است. بدین ترتیب، می توانند از دستور invalidateblock برای رد کردن بلاک مد نظر و همه بلاک های بعد از آن استفاده کنند؛ با این فرمان، کل شاخه ای که مهاجم ایجاد می کند، باطل می شود و از هم می پاشد.
در این مرحله، بلاک چین بیت کوین به دو زنجیره، فورک خواهد شد. انگیزه های اقتصادی نودها را به سمت زنجیره سودآور می کشاند و طرف اکثریت، فقط باید قدرت هش خود را با هزینه بیشتر حفظ کند تا به حمله ادامه دهد.
آیا استخراج بلاک خالی بیت کوین خوب است یا بد؟
شبکه وسیع بیت کوین، تمام تلاش خود را برای پردازش تراکنش ها به کار می گیرد، پس استخراج بلاک خالی بیت کوین می تواند به عنوان یک رفتار بد تلقی شود و دلیل این موضوع نیز این است که ماینر به جای این که طبق روند طبیعی ایجاد بلاک، ابتدا بلاک جدید را اعتبارسنجی کند و سپس سراغ بلاک بعدی برود، اعتبارسنجی را معوق نگه می دارد و اثبات کار بلاک بعدی را آغاز می کند؛ این کار، فرصت را از ماینرهای درستکار می گیرد.
با تمام این شرایط گفته شده استخراج بلاک خالی را می توان به عنوان متعادل کننده برای تمرکزگرایی شبکه پنداشت، زیرا هنگامی که ماینر یا استخر ماینینگ بلاک جدیدی را به وجود می آورد، خود می داند که کدام تراکنش ها را در این بلاک قرار داده است و دیگر نیاز نیست که منتظر بماند تا ممپول بار دیگر به روز شود.
پس تراکنش های جدید را بدون درنگ در بلاک بعدی قرار می دهد و اثبات کار را آغاز می کند، بدون اینکه نگران تکراری شدن تراکنش ها و بی اعتبارشدن بلاک بعدی اش شود. این در حالی است که سایر ماینرها ابتدا باید تراکنش های بلاک را دانلود و سپس بلاکی جدید ایجاد کنند که شامل هیچ کدام از آن تراکنش ها نباشد.
آیا می توان از استخراج بلاک خالی جلوگیری کرد؟
در نهایت شاید این سوال برای شما مطرح شود که آیا می توان از استخراج بلاک خالی بیت کوین جلوگیری کرد؟ در جواب باید بگوییم که امروزه تعداد بلاک های خالی به طور چشمگیری کاهش یافته است و آخرین آن در فوریه سال گذشته اتفاق افتاد. البته بهتر است بدانید که این اتفاق به دلایل مختلفی رخ می دهد، اولین و اساسی ترین دلیل به این موضوع مربوط می شود که جذابیت استخراج بلاک خالی با کاهش تدریجی پاداش بلاک و افزایش اتکا به کارمزد تراکنش ها، انگیزه ماینرها را برای استخراج بلاک خالی از بین می برد.
برای نمونه در ماه های اولیه استخراج رمزارز بیت کوین پاداش بلاک 50 بیت کوین بود و بعد از هاوینگ اول به ۲۵ واحد رسید. در آن زمان، حجم تراکنش ها بسیار کمتر بود و کارمزد تراکنش ها در برابر پاداش بلاک، ناچیز به حساب می آمد.
در سال 2016 پاداش بلاک به 12.5 بیت کوین افزایش یافت و حجم تراکنش ها و در کنار آن کارمزد آنها نیز افزایش یافت. همین امر انگیزه ای بسیار بزرگ برای ماینرها شد که تراکنش های بیشتری در بلاک قرار دهند.
دومین علت نیز به پیشرفت ها و بهبودی نرم افزارهای استخراج مربوط می شود، همچنین می توان گفت که اگر نحوه کار اولویت بندی تراکنش ها از نظر فنی ساده تر و سریع تر شود ماینرها بدون هیچ مشکلی می توانند آنها را انتخاب کنند.
- ۱۸ بازديد
- ۰ ۰
- ۰ نظر