بلاک خالی بیت کوین بلاکی است که حاوی اطلاعاتی مانند هدر است. اما هیچ عملکردی ندارد و تنها قابلیتی که در آن وجود دارد تراکنش کوین بیس است که به ماینرها پول پرداخت می کند.
بیت کوین اولین و بزرگترین ارز دیجیتال در جهان است. ویژگی های بیت کوین، از جمله استحکام، قابلیت اطمینان و امنیت شبکه، این ارز دیجیتال را محبوب کرده است. با این حال، گاهی اوقات اتفاقاتی که در شبکه بیتکوین میافتد، برخی از مخالفان را انتقاد میکند. استخراج یک بلاک خالی (بلاک خالی) بیت کوین یکی از این اتفاقات است.
میپرسید، آیا یک بلاک خالی واقعا یک معدن است؟ پاسخ کوتاه به این سوال بله است. به عنوان مثال، بلاک 776339 (بهمن 1401) استخراج شده در اواسط فوریه 2023 یک بلاک خالی است. دو هفته قبل از آن، بلاک خالی به شماره 774486 قطع شد.
چرا ماینرها بلاک های خالی را استخراج می کنند؟ آیا اینطور نیست که اکثر درآمد ماینرها علاوه بر پاداش استخراج، از کارمزد معاملات به دست می آید؟ آیا استخراج یک بلاک خالی بیت کوین برای شبکه مشکل ایجاد می کند؟ در این مقاله به همه این سوالات پاسخ خواهیم داد؛ پس تا پایان مقاله با ما همراه باشید.
بلاک خالی بیت کوین چیست؟
در یک جمله می توان گفت که بلاک خالی بیت کوین بلاکی است که شامل هیچ تراکنشی نیست. با این حال، قبل از تجزیه و تحلیل جزئیات فنی آن، ابتدا باید کمی در مورد بلاک صحبت کنید.
بلاک ناحیه ای است که حاوی داده های مربوط به تراکنش ها است. بلاک چین بیت کوین از زنجیره ای از این بلاک ها تشکیل شده است. مشکل اثبات کار در شبکه بیت کوین به طور متوسط هر 10 دقیقه یک بلاک جدید ایجاد می کند. هر ماینری که موفق به شکستن بلاک شود، پاداش استخراج (در حال حاضر 6.25 بیت کوین) و کارمزد تراکنش دریافت می کند.
برای ایجاد یک بلاک جدید، یک ماینر باید آن را با یک تراکنش کامل کند. این توابع در مکانی به نام Mempool قرار دارند. هر ماینر وظایف انتخابی خود را از استخر به بلاک منتقل می کند. حال اگر یک ماینر یک بلاک را بدون قرار دادن کاری در آن واکشی کند، می گوییم که او یک بلاک خالی را واکشی کرده است.
توجه داشته باشید که این بلاک کاملا خالی نیست و حاوی همان هدر و سایر فیلدهای اطلاعاتی یک بلاک معمولی است. بلاکهای خالی نیز حاوی فهرستی از تراکنشها هستند، با این تفاوت که این فهرست تنها یک تراکنش را نشان میدهد، تراکنش «Coinbase» که به ماینرها برای استخراج بلاک پاداش میدهد.
بلاکهای خالی برای من آسانتر، ارزانتر یا سریعتر از بلاکهای کامل نیستند. زیرا هزینه های محاسباتی از جمله هزینه اثبات کار نیز دارند. حالا بیایید ببینیم که بلاک خالی چگونه استخراج می شود.
مقدمه ای بر استخراج بلاک در بیت کوین
فرض کنید شما یک ماینر هستید و باید ماینینگ انجام دهید. برای این کار ابتدا ممپول را چک کرده و سپس تراکنش های جالب با پرداخت های بالا را انتخاب کرده و سپس به بلاک منتقل می کنید. ماینرهای دیگر با شما رقابت می کنند.
این یک استخر خصوصی نیست و همه ماینرها فعالیت خود را در این استخر انتخاب می کنند. از آنجایی که همه شما سعی می کنید تراکنش را با بالاترین کارمزد انتخاب کنید، طبیعی است که بسیاری از تراکنش ها بین شما به اشتراک گذاشته شود. بنابراین باید مکانیزمی برای جلوگیری از انتخاب عملیات تکراری وجود داشته باشد.
اینجاست که اثبات کار به دست می آید. شما ماینرها باید یک عدد تصادفی به نام Nonce پیدا کنید. اولین معدنچی که نانس را کشف کند برنده می شود. چند دقیقه بعد یکی از معدنچیان ناگهان اعلام کرد که نانس را پیدا کرده اند. این بلاک جدید باید برای تایید و تایید آن در تمام گره های شبکه منتشر شود.
پس از تأیید، آن بلاک به بلاک چین اضافه می شود و بلاکی که روی آن کار می کنید نامعتبر می شود، حتی اگر تراکنش هایی مشابه آن بلاک وجود داشته باشد. در این مرحله تمامی تراکنش های بلاک جدید از استخر حافظه حذف می شوند تا در بلاک بعدی تکرار نشوند.
چگونه یک بلاک خالی بدست آوریم؟
دوباره به عنوان یک معدنچی فکر کنید. برای یافتن یک بلاک معتبر و افزودن آن به انتهای زنجیره بلاک، باید چندین فیلد را برای سربرگ بلاک جدید تنظیم کنید. اما دو فیلد وجود دارد که به داده های بلاک قبلی بستگی دارد: هش بلاک قبلی و ریشه Merkle تمام تراکنش ها در بلاک جدید.
شما از لحظه دریافت هدر آخرین بلاک تا دانلود و تایید تمامی تراکنش های آن بلاک زمان بسیار کمی دارید. حتی میلیثانیهها هم مهم هستند، زیرا استخراج اساساً یک مسابقه جهانی برای یافتن بلاکها است.
شما تلاش و زمان زیادی را برای بلاک قبلی صرف کردید و ممکن است فکر کنید که باید به نوعی هزینه آن را پرداخت کنید. بنابراین، در طول این مدت کوتاه که بسیاری از ماینرها مشغول اعتبارسنجی هستند، شما اعتبار بلاک فعلی را متوقف می کنید و یک بلاک جدید ایجاد می کنید و سعی می کنید غیر آن را قبل از دیگران دریافت کنید. اما چه صداهایی باید داشته باشد؟
شما این موضوع را نمی دانید؛ زیرا شما هنوز تراکنش های بلاکی را که ماینر دیگری موفق به حل آن ها شده است، تایید نکرده اید. از آنجایی که این تراکنش ها هنوز از مجموعه حذف نشده اند، ممکن است در نهایت یک تراکنش تکراری به بلاک خود اضافه کنید، به این معنی که دو بار هزینه می کنید.
نکته مهم دیگر این است که شبکه با انجام تراکنش های تکراری، بلاک شما را باطل می کند. بنابراین باید با یک بلاک خالی کار کنید و سعی کنید غیر آن را پیدا کنید. با رقابت کم، اگر شانس با شما باشد، آن را در چند میلی ثانیه پیدا خواهید کرد. بنابراین شما یک بلاک خالی استخراج کرده اید. این بلاک فقط شامل تراکنش های کوین بیس است، بنابراین شما فقط پاداش استخراج بلاک را دریافت خواهید کرد.
چرا برخی از استخرهای ماینینگ بلاک های خالی بیت کوین را استخراج می کنند؟
هنگامی که یک بلاک جدید پیدا می شود، استخراج اطلاعات مربوط به آن را از دشمن دریافت می کند. اکنون تمام گرههای موجود در استخر باید هش کردن آن بلاک را متوقف کرده و بلاک بعدی را جستجو کنند.
در این مرحله، استخر ماینینگ باید چند کار را انجام دهد: دانلود بلاک کامل و تایید تراکنشهای آن و اعلام تعریف جدید برای استخراج. این زمان خواهد برد؛ بنابراین، برای از دست ندادن قدرت هش، اولین استخر ماینینگ یک طرح بلاک خالی به نام قالب را در اختیار ماینرها قرار میدهد تا ناهنجاریها را بیابند.
در این بازه، خود Pool، بلاک جدید را با تراکنشها پر میکند و بلاک قبلی را تأیید میکند. فراموش نکنید که هر ثانیه جستجوی شما اهمیت دارد. در 1 یا 2 ثانیه، بلاک قالب به روز شده، این بار تراکنش، برای ماینرها ارسال می شود. بلاک به روز شده بلاک الگوی قبلی را باطل نمی کند. زیرا این بلاک هیچ تراکنشی ندارد.
چه اتفاقی دارد می افتد؟ گاهی اوقات ماینرهای خوش شانس قبل از اینکه مکان به روز شده حاوی تراکنش به آنها برسد، چند میلیونیم ثانیه دریافت می کنند. بنابراین، بلاک های بی فایده حذف می شوند. این بلاک فقط شامل تراکنش های کوین بیس است.
حقیقت این است که زمان در این صنعت ارزش واقعی دارد. استخرها نمی توانند مطمئن باشند که nonce خیلی سریع پیدا می شود. در عوض، آنها فقط میخواهند در اسرع وقت شروع به حفاری در بلاک بعدی کنند.
با استخراج یک بلاک خالی چه اتفاقی برای شبکه می افتد؟
استخراج خاک برهنه اغلب غیرعمدی است و به دلیل فاصله زمانی اجتناب ناپذیر بین ایجاد موفقیت آمیز سایت و تایید کامل رخ می دهد. باید تاکید کنیم که بلاک های خالی مشکلی در شبکه ایجاد نمی کنند.
همچنین استخراج یک بلاک خالی بیت کوین شامل تراکنش هایی نمی شود که واحدهای بیت کوین جدید ایجاد می کنند. با این حال، Coinbase در این تراکنش مشارکت داشت و اطمینان حاصل کرد که بیت کوین در مسیر هدف اصلی خود یعنی داشتن 21 میلیون واحد بیت کوین در گردش است.
در همین حال، مشکل حمله بلاک خالی امکان پذیر است. با این حال، همانطور که جیمی سانگ در مقاله خود در Medium نوشت، این حمله آنطور که باید نگران کننده نیست.
حمله بلاک خالی چیست؟
استخراج بلاک های خالی معمولاً مشکلی برای شبکه ایجاد نمی کند. اما اگر یک ماینر بخواهد سرعت شبکه بیت کوین را کاهش دهد. یک حمله بلاک خالی می تواند برای استخراج تک بلاک ها بدون تراکنش انجام شود. تا زمانی که حمله ادامه دارد، تمام تراکنش ها در حالت معلق باقی می ماند و استفاده از شبکه متوقف می شود.
هنگام حمله به یک بلاک خالی، بیشتر نیروی ماینینگ صرف استخراج بلاک های خالی می شود. در واقع مهاجم با این حمله یک سافت فورک انجام می دهد و زنجیره دیگر کاملا خالی می شود. از آنجایی که مهاجمان قدرت هش بیشتری دارند، اعتقاد بر این است که رشته از آنها بلندتر است. بنابراین یک زنجیره خالی موفق می شود یک زنجیره دیگر را پاک کند و از آنجایی که هیچ تراکنشی ندارد، فعالیت شبکه متوقف می شود و بیت کوین ها از بین می روند.
حمله بلاک خالی به دو صورت مستقیم و غیر مستقیم انجام می شود. در حمله مستقیم، مهاجم با به دست آوردن 51 درصد تجهیزات ماینینگ، حمله را انجام می دهد. اما در یک حمله غیرمستقیم، استخرهای ماینینگ را متقاعد میکند که فقط بلاکهای خالی را استخراج کنند.
در هر صورت، ماینرها تمایلی به همکاری با استخر نخواهند داشت. از آنجایی که بلاک های خالی کارمزد تراکنش ندارند و 6.25 بیت کوین و کارمزدهای اندکی را توسط استخر ماینینگ در نظر می گیرند، این کار مقرون به صرفه نیست.
اگر شرایط حمله برآورده شود چه اتفاقی می افتد؟
مهاجمان یک حمله شکاف را برای از بین بردن کل شبکه انجام می دهند. بقیه شبکه میدانند که بلاکها خالی هستند و وقتی تعداد بیشتری وجود دارد، متوجه میشوند که یک حمله وجود دارد. سپس می توانند از دستور invalidateblock برای بی اعتبار کردن بلاک و تمام بلاک های بعدی استفاده کنند. با این دستور تمام شاخه های ایجاد شده توسط مهاجم نامعتبر خواهد بود.
در این مرحله، بلاک چین بیت کوین توسط دو زنجیره به هم متصل خواهد شد. انگیزههای اقتصادی، گرهها را در یک زنجیره سودآور هدایت میکنند، و بیشتر طرفها برای ادامه حمله باید قدرت هش را با قیمت بالایی ذخیره کنند.
استخراج بلاک های خالی بیت کوین خوب است یا بد؟
هدف شبکه بیت کوین پردازش تراکنش هاست. بنابراین، واکشی یک بلاک خالی را می توان رفتار نامناسبی در نظر گرفت. دلیل این مشکل این است که ماینر به جای اینکه ابتدا یک بلاک جدید را بر اساس فرآیند طبیعی ایجاد یک بلاک اعتبار سنجی کند و سپس به بلاک بعدی منتقل شود، منتظر تأیید می شود و شروع به اثبات کار بلاک زیر می کند. این فرصت را از ماینرهای صادق می گیرد.
با این حال، از منظر، بلاک خالی را می توان نوعی تعادل برای مرکزیت شبکه استخراج در نظر گرفت. این به این دلیل است که وقتی یک ماینر یا استخر ماینینگ یک بلاک جدید ایجاد میکند، میداند چه تراکنشهایی را در آن بلاک انجام داده است و نیازی به منتظر ماندن برای بهروزرسانی ممپول نیست.
بنابراین، بلافاصله تراکنش های جدید را در بلاک بعدی شامل می شود و بدون نگرانی از تراکنش های تکراری و رد شدن بلاک بعدی، اثبات کار را آغاز می کند. در همین حال، ماینرهای دیگر ابتدا باید بلاک تراکنش را دانلود کرده و سپس یک بلاک جدید ایجاد کنند که حاوی این تراکنش ها نباشد.
آیا می توان از استخراج بلاک های خالی اجتناب کرد؟
واقعیت این است که امروز تعداد بلاک های خالی بسیار کاهش یافته است و آخرین مورد در بهمن ماه امسال اتفاق افتاد. باید به این نکته توجه کنید که این اتفاق به دلایل مختلفی رخ می دهد.
اولین و مهم ترین دلیل این است که وسوسه استخراج بلاک های خالی، انگیزه ماینرها را برای استخراج بلاک های خالی از بین می برد و به تدریج پاداش های بلاک را کاهش می دهد و وابستگی آنها به کارمزد تراکنش ها را افزایش می دهد.
در روزهای ابتدایی استخراج بیت کوین، پاداش بلاک 50 بیت کوین بود و پس از هاوینگ اول، به 25 واحد رسید. در آن زمان، حجم تراکنش بسیار کم بود و کارمزد تراکنش در مقایسه با پاداش بلاک ناچیز بود.
از سال 2016 که پاداش بلاک به 12.5 بیت کوین رسید، حجم تراکنش ها و البته کارمزد آنها افزایش یافته است. این ماینرها را تشویق می کند تا تراکنش های بیشتری را در یک بلاک قرار دهند. در حال حاضر، پاداش بلاک 6.25 واحد است. بنابراین، استخراج بلاک های خالی دیگر برای ماینرها سودی ندارد.
دومین دلیل بزرگ این است که بهبودها و بهبودهایی در نرم افزار استخراج به خصوص در بیت کوین Core 0.12 انجام شده است که زمان بین اعتبارسنجی یک بلاک جدید و شروع به کار بر روی بلاک بعدی را بسیار کاهش می دهد. همچنین، اگر بتوان کار اولویتبندی تراکنشها را از نظر فنی سادهتر و سریعتر کرد، ممکن است انتخاب آنها برای ماینرها آسانتر باشد.
سوالات متداول
چگونه یک بلاک خالی بیت کوین استخراج کنیم؟
گاهی اوقات ماینرها خیلی زود پس از تأیید اعتبار بلاک جدید، بدون انجام تراکنش، اثبات کار را برای بلاک بعدی شروع می کنند. اگر شانس آنها را جلب کند و بلاک را کامل کنند، یک بلاک خالی کشیده می شود.
بلاک خالی بیت کوین چیست؟
بلاک خالی بیت کوین بلاکی بدون تراکنش است و تنها تراکنش های موجود در آن تراکنش های کوین بیس است که به ماینرها پاداش می دهد.
نتیجه
استخراج یک بلاک خالی از بیت کوین یکی از رویدادهای تکنولوژیکی است که در شبکه این ارز دیجیتال در حال وقوع است. در این مقاله به بررسی معنای این پدیده و در چه شرایطی می پردازیم.
استخراج یک بلاک خالی بیت کوین منطقاً برای ماینرها سودآور نیست. زیرا به ماینرها فقط پاداش استخراج داده می شود و هیچ کارمزد تراکنش وجود ندارد. با این حال، گاهی اوقات و به دلایلی که در مقاله ذکر کردیم، ماینرها بلاک خالی را استخراج می کنند. سوالات خود را در مورد استخراج بیت کوین با بلاک های خالی در بخش نظرات این مقاله به اشتراک بگذارید.