در دنیای بلاک چین و ارزهای دیجیتال، مفاهیم مختلفی وجود دارند که هرکدام برای درک بهتر عملکرد شبکهها و ارزها حیاتی هستند. یکی از این مفاهیم که شاید در نگاه اول پیچیده به نظر برسد، "بلاک خالی" در شبکه بیت کوین است. این مفهوم به بلاکهایی اشاره دارد که به جای ذخیره تراکنشهای معمولی، تنها شامل تراکنش خاصی به نام «کوین بیس» هستند که پاداش استخراج بلاک را به ماینر میدهد. اما چرا این بلاکها استخراج میشوند و چه تأثیری بر عملکرد شبکه بیت کوین دارند؟ در این مقاله از بلاگ کیف پول من به تحلیل دقیقتر مفهوم بلاک خالی، نحوه ایجاد آنها، دلایل استخراج و تفاوتهای آن با بلاکهای معمولی خواهیم پرداخت.
بلاک خالی بیت کوین چیست؟
بلاکهای خالی در شبکه بیت کوین به بلاکهایی گفته میشود که تراکنشهای معمولی را شامل نمیشوند، بلکه تنها حاوی یک تراکنش خاص به نام «تراکنش کوین بیس» هستند که به ماینر پاداش استخراج بلاک را میدهد. این بلاکها از لحاظ ساختاری مشابه بلاکهای معمولی هستند، اما در فهرست تراکنشهای آنها هیچ تراکنش واقعی دیگری وجود ندارد. در این بلاکها، تنها تراکنش کوین بیس برای پرداخت پاداش به ماینر قرار دارد.
شبکه بیت کوین به گونهای طراحی شده است که به طور میانگین هر 10 دقیقه یک بلاک جدید ایجاد میشود. ماینرها مسئول حل معادلات پیچیده برای استخراج بلاکها و ثبت تراکنشها در آنها هستند. زمانی که ماینرها یک بلاک جدید را استخراج میکنند، تراکنشها از فضای ممپول (مکان نگهداری تراکنشهای منتظر تایید) انتخاب شده و به بلاک جدید اضافه میشوند. با این حال، گاهی اوقات ممکن است ماینرها بلاکی استخراج کنند که تنها حاوی تراکنش کوین بیس باشد و هیچ تراکنش دیگری به آن افزوده نشود. به این بلاکها، بلاکهای خالی گفته میشود.
گرچه استخراج بلاکهای خالی ممکن است از نظر ظاهری ساده به نظر برسد، اما باید بدانید که از نظر محاسباتی، استخراج این بلاکها تفاوت زیادی با بلاکهای پر ندارد. به عبارت دیگر، هزینههای محاسباتی برای استخراج یک بلاک خالی مشابه با بلاکهای پر است، زیرا همان الگوریتم اثبات کار (Proof of Work) در هر دو مورد اجرا میشود و ماینرها برای استخراج بلاکها باید معادلات پیچیدهای را حل کنند.
در نتیجه، بلاکهای خالی در شبکه بیت کوین معمولا به دلایل مختلفی مانند افزایش سرعت استخراج یا کاهش هزینههای تراکنشها استخراج میشوند. با این حال، آنها تاثیر قابل توجهی بر فرآیند تایید تراکنشها و عملکرد کلی شبکه نخواهند داشت.
استخراج بلاک خالی در شبکه بیت کوین
استخراج بلاک در شبکه بیت کوین یک فرآیند رقابتی است که ماینرها باید برای یافتن بلاک معتبر تلاش کنند و آن را به بلاک چین اضافه کنند. اما در برخی مواقع، ماینرها تصمیم میگیرند بلاک خالی استخراج کنند. این تصمیم زمانی گرفته میشود که ماینرها نمیتوانند تراکنشهای معتبر را برای اضافه کردن به بلاک پیدا کنند یا برای جلوگیری از خطای دوبار خرجکردن، ترجیح میدهند بلاکی بدون تراکنشهای اضافی ایجاد کنند.
در ابتدا، ماینرها باید هدر بلاک جدید را با استفاده از دادههای بلاک قبلی، مانند هش بلاک قبلی و ریشه مرکل تمام تراکنشها، تنظیم کنند. این بخش از فرآیند به دلیل وابستگی به دادههای بلاک قبلی، زمانبر است. پس از این مرحله، ماینر باید نانس مناسب را برای بلاک جدید پیدا کند، که این عمل میتواند با رقابت زیادی همراه باشد. با این حال، در صورتی که تراکنشها هنوز تأیید نشده یا در وضعیت نامشخصی قرار دارند، ممکن است ماینر تصمیم بگیرد که بلاک خالی استخراج کند.
استخراج بلاک خالی به ماینر این امکان را میدهد که بدون وارد کردن تراکنشهای غیرمعتبر یا تکراری به شبکه، پاداش استخراج بلاک را دریافت کند. در واقع، این بلاک تنها شامل تراکنش کوین بیس است که به ماینر پاداش استخراج بلاک را میدهد. با این وجود، استخراج بلاک خالی ریسک خاص خود را دارد، زیرا ماینر باید سریع عمل کند و نانس مناسب را در زمانی کوتاه پیدا کند تا از رقابت با دیگران عقب نماند.
در نهایت، استخراج بلاک خالی راهی است برای جلوگیری از اشتباهات احتمالی در اضافه کردن تراکنشهای تکراری و حفظ اعتبار شبکه، که در آن سرعت و دقت در فرآیند تأسیس بلاک بسیار حیاتی است.
چرا برخی استخرهای استخراج بلاک خالی بیت کوین تولید میکنند؟
استخرهای استخراج بیت کوین در تلاشند تا سرعت استخراج بلاکها را به حداکثر برسانند. یکی از راهحلهایی که برای حفظ رقابت و استفاده بهینه از منابع خود به کار میگیرند، استخراج بلاکهای خالی است. هنگامی که یک ماینر موفق به یافتن بلاک جدید میشود، استخر استخراج باید اطلاعات بلاک را دریافت کرده و آن را بررسی کند. اما این فرآیند ممکن است زمانبر باشد. بنابراین، برای جلوگیری از اتلاف زمان و قدرت هش، استخرهای ماینینگ بلاکهای خالی را بهعنوان تمپلیت به ماینرها ارسال میکنند.
این بلاکهای خالی، که فاقد تراکنشهای جدید هستند، به ماینرها این امکان را میدهند که بهسرعت تلاش برای یافتن نانس جدید را آغاز کنند، در حالی که خود استخر بهطور همزمان در حال دانلود و اعتبارسنجی بلاک جدید و تراکنشهای مربوطه است. در صورتی که در این مدت زمان کوتاه، ماینرها نانس مناسب را پیدا کنند، بلاک خالی استخراج شده و به شبکه افزوده میشود. این بلاک تنها شامل تراکنش کوین بیس است، که پاداش استخراج را به ماینر اعطا میکند.
استخراج بلاکهای خالی به استخرهای ماینینگ این امکان را میدهد که بدون از دست دادن زمان، فرایند استخراج را ادامه دهند و حتی در لحظات حساس که ممکن است بلاکهای جدید با تراکنشهای تازه به روز شوند، همچنان رقابت را حفظ کنند. در واقع، این روش به دلیل زمان بسیار کوتاه و حساس در جستجوی نانس، به استخرها این امکان را میدهد که از هر ثانیه استفاده بهینه را داشته باشند.
استخراج بلاک خالی چه تأثیراتی بر شبکه بیت کوین دارد؟
استخراج بلاک خالی در شبکه بیت کوین معمولاً به دلایل فنی و زمانبندی اتفاق میافتد و اغلب بهطور عمدی نیست. هنگامی که یک بلاک جدید بهطور موفقیتآمیز استخراج میشود، ابتدا باید فرآیند اعتبارسنجی تراکنشها انجام گیرد، اما این کار ممکن است کمی زمانبر باشد. در چنین شرایطی، ماینرها برای جلوگیری از از دست دادن فرصتهای استخراج، بهطور موقت بلاک خالی تولید میکنند.
این نوع بلاکها که فاقد تراکنشهای جدید هستند، مشکلی برای شبکه ایجاد نمیکنند. در واقع، بلاکهای خالی تنها شامل تراکنش کوین بیس هستند، که تضمین میکند سیستم بیت کوین همچنان در مسیر هدف خود برای رسیدن به حداکثر عرضه 21 میلیون بیت کوین در گردش باقی میماند. این فرآیند به شبکه کمک میکند تا بهطور پیوسته کار کند، حتی زمانی که تراکنشها هنوز بهطور کامل تأیید نشدهاند.
با این حال، باید توجه داشت که استخراج بلاک خالی میتواند زمینهساز حملات بالقوه به شبکه شود. به این نوع حملات "حمله بلاک خالی" گفته میشود، که در آن ممکن است مهاجمان از ضعفهای این فرآیند بهرهبرداری کنند. با این وجود، خود استخراج بلاکهای خالی معمولاً تهدیدی برای امنیت شبکه بهحساب نمیآید و در شرایط خاصی رخ میدهد تا از اتلاف زمان و منابع جلوگیری شود.
حمله بلاک خالی در شبکه بیت کوین و تهدیدات آن
حمله بلاک خالی یکی از روشهای حمله به شبکه بیت کوین است که در آن مهاجم با استفاده از قدرت هش خود، بلاکهای خالی استخراج میکند و فرآیند تایید تراکنشها را مختل میکند. این نوع حمله در ابتدا به نظر نمیرسد که تهدیدی برای شبکه باشد، اما در شرایط خاصی، میتواند باعث بهوجود آمدن مشکلات جدی شود.
در حمله بلاک خالی، مهاجم با استخراج بلاکهای خالی، تراکنشهای موجود در شبکه را بهطور موقت به حالت معلق درمیآورد. این وضعیت باعث میشود که تراکنشها تا زمانی که حمله به پایان برسد، قادر به تکمیل نشوند و در نتیجه استفاده از شبکه متوقف میشود. مهاجم معمولاً قدرت هش خود را بهطور کامل صرف استخراج بلاکهای خالی میکند و از این طریق میتواند زنجیرهای کاملاً خالی ایجاد کند.
حمله بلاک خالی میتواند به دو صورت انجام شود
- حمله مستقیم: در این نوع حمله، مهاجم کنترل بیش از ۵۰ درصد از قدرت هش شبکه را در اختیار دارد و با استخراج بلاکهای خالی، تلاش میکند تا زنجیره اصلی را جایگزین کند.
- حمله غیرمستقیم: در این روش، مهاجم استخرهای ماینینگ را متقاعد میکند که فقط بلاکهای خالی را استخراج کنند، بهطوری که فعالیتهای شبکه را مختل سازد.
در هر دو حالت، ماینرها به استخراج بلاکهای خالی تمایل زیادی ندارند چرا که این بلاکها هیچگونه کارمزد تراکنش ندارند و از نظر اقتصادی بهصرفه نیستند. بنابراین، این حملات بیشتر بهعنوان یک تهدید بالقوه برای امنیت شبکه و عملکرد صحیح آن مطرح میشود.
نتایج حمله به شبکه بیت کوین و واکنشهای آن
حمله بلاک خالی به شبکه بیت کوین معمولاً به منظور مختل کردن عملکرد شبکه و متوقف کردن تراکنشها صورت میگیرد. زمانی که مهاجمان بلاکهای خالی استخراج میکنند، سایر اعضای شبکه متوجه این موضوع میشوند. این امر باعث میشود که ماینرها و نودها تشخیص دهند که حملهای در حال وقوع است.
در این مرحله، نودهای شبکه از دستورات خاصی مانند invalidateblock برای رد کردن بلاکهای جدید و بلاکهای بعد از آن استفاده میکنند. این فرمان باعث میشود که تمامی بلاکها و شاخهای که مهاجم در تلاش برای ساخت آن بوده است، باطل شود. نتیجه این فرآیند، فورک شدن بلاک چین به دو شاخه مختلف است.
بعد از فورک شدن، انگیزههای اقتصادی باعث میشود که نودها بهطور طبیعی به سمت شاخهای که از نظر مالی سودآورتر است، جذب شوند. برای ادامه حمله، مهاجمان باید توان هش خود را حفظ کنند و در این راه هزینههای بیشتری را متحمل شوند. در نهایت، تنها زنجیرهای که بهطور غالب اکثریت قدرت هش را دارد، بهعنوان زنجیره اصلی تایید خواهد شد و سایر شاخهها کنار گذاشته میشوند.
استخراج بلاک خالی بیت کوین، مثبت یا منفی؟
استخراج بلاک خالی در شبکه بیت کوین معمولاً بهعنوان یک رفتار منفی در نظر گرفته میشود. دلیل این نگرش این است که وقتی ماینرها بلاک خالی استخراج میکنند، آنها بهجای اعتبارسنجی بلاکها و تراکنشها بهطور طبیعی، کار استخراج بلاک بعدی را آغاز میکنند. این امر باعث میشود که ماینرهای دیگر نتوانند از فرصتهای موجود بهرهبرداری کنند و میتواند بهنوعی شانس آنها را برای استخراج بلاک بعدی کاهش دهد.
با این حال، در شرایط خاصی استخراج بلاک خالی میتواند مفید باشد. این نوع استخراج میتواند بهعنوان یک روش متعادلکننده برای کاهش تمرکزگرایی در شبکه عمل کند. وقتی ماینر یا استخر ماینینگ بلاک جدیدی را ایجاد میکند، میتواند تراکنشها را بهسرعت در بلاک بعدی وارد کند و عملیات اثبات کار را آغاز کند. این امر باعث میشود که نیازی به انتظار برای بهروز شدن ممپول و تایید تراکنشهای جدید نباشد، که در نهایت سرعت شبکه را افزایش میدهد. بهطور کلی، گرچه استخراج بلاک خالی ممکن است از نظر اخلاقی و از دیدگاه برخی ماینرها قابل انتقاد باشد، اما از نظر فنی میتواند راهکاری برای تسریع فرآیند استخراج و جلوگیری از تاخیر در تراکنشها باشد.
آیا امکان جلوگیری از استخراج بلاک خالی بیت کوین وجود دارد؟
در سالهای اخیر، استخراج بلاک خالی بیت کوین بهطور قابل توجهی کاهش یافته است. این تغییر عمدتاً به دلایل اقتصادی و فنی باز میگردد که انگیزههای ماینرها را به سمت فرآیندهای موثرتر سوق داده است. یکی از مهمترین دلایل کاهش استخراج بلاکهای خالی، کاهش پاداش بلاکها و افزایش وابستگی به کارمزد تراکنشها است. با توجه به این که پاداش استخراج بلاک به تدریج کاهش یافته، ماینرها دیگر انگیزهای برای استخراج بلاکهای خالی ندارند زیرا در این حالت تنها پاداش بلاکهای خالی شامل کوین بیس است که از نظر اقتصادی جذابیت کمتری دارد.
در ابتدا، زمانی که پاداش بلاک بیت کوین 50 واحد بود، استخراج بلاک خالی ممکن بود بهعنوان یک استراتژی سودآور در نظر گرفته شود. اما پس از هاوینگها و کاهش تدریجی پاداش بلاک، این روند تغییر کرد. بهویژه بعد از سال 2016 که پاداش بلاک به 12.5 بیت کوین رسید، حجم تراکنشها و به تبع آن کارمزد تراکنشها افزایش یافت. این امر باعث شد که ماینرها تمایل بیشتری به استخراج بلاکهای پر از تراکنش پیدا کنند تا بیشترین سود را به دست آورند.
علاوه بر این، پیشرفتهای نرمافزاری در زمینه استخراج نیز نقش مهمی در کاهش استخراج بلاکهای خالی ایفا کردهاند. بهبود الگوریتمها و اولویتبندی تراکنشها باعث شده تا ماینرها بهراحتی تراکنشهای سودآور را شناسایی و در بلاکها قرار دهند، بنابراین احتمال استخراج بلاکهای خالی به حداقل رسیده است.
به طور کلی، با کاهش پاداش بلاکها و افزایش کارمزد تراکنشها، انگیزه اقتصادی برای استخراج بلاکهای خالی کمتر شده و این روند به تدریج در حال کاهش است.