مقالات
بیت کوین (BTC) برای فعالیت خود به مجموعهای از قواعد از پیش تعریفشده متکی است. یکی از مهمترین این قواعد به نحوه ایجاد بلاکهای جدید مربوط میشود. در شبکه بیت کوین، ماینرها با استفاده از توان محاسباتی برای یافتن یک هش معتبر تلاش میکنند و شبکه نیز شرایطی را تعیین میکند که مشخص میکند پیدا کردن این هش تا چه اندازه دشوار باشد.
این معیار با عنوان سختی استخراج یا Mining Difficulty شناخته میشود. سختی شبکه ثابت نیست و متناسب با شرایط شبکه در دورههای مشخص تنظیم میشود. هدف اصلی این سازوکار آن است که حتی با تغییر قدرت محاسباتی ماینرها، میانگین زمان ایجاد بلاکهای بیت کوین در محدوده موردنظر پروتکل باقی بماند.
برای درک بهتر سختی استخراج، ابتدا باید با مفاهیمی مانند استخراج، تابع هش، نانس، نرخ هش و زمان بلاک آشنا شویم.
هشدار مهم: این مطلب صرفاً با هدف آموزش و افزایش آگاهی درباره مفاهیم فنی شبکه بیت کوین، استخراج، نرخ هش و سختی شبکه تهیه شده است. محتوای این مقاله بههیچعنوان توصیهای برای خرید، فروش، استخراج، نگهداری رمزدارایی یا انجام فعالیت مالی محسوب نمیشود. پیش از انجام هرگونه فعالیت مرتبط با استخراج رمزدارایی، لازم است مسائل فنی، امنیتی، حقوقی و الزامات مربوط به مصرف انرژی بهصورت مستقل بررسی شوند.
بیت کوین از سازوکار اجماع اثبات کار یا Proof of Work (PoW) استفاده میکند. در این ساختار، ماینرها برای مشارکت در فرایند ایجاد بلاک جدید، محاسبات متعددی انجام میدهند.
ماینرها تراکنشها را در قالب یک بلاک در نظر میگیرند و تلاش میکنند برای هدر بلاک، هشی پیدا کنند که شرایط تعیینشده توسط شبکه را داشته باشد. این فرایند مبتنی بر امتحانکردن مقادیر مختلف و انجام تعداد بسیار زیادی محاسبه هش است.
بنابراین، استخراج را نباید صرفاً به معنای «ساخت رمزدارایی جدید» در نظر گرفت. ماینینگ بخشی از سازوکار فنی شبکه بیتکوین برای ایجاد بلاکها و مشارکت در فرایند اثبات کار است.

برای درک سختی استخراج، مفهوم تابع هش یا Hash Function اهمیت زیادی دارد. تابع هش دادههای ورودی را دریافت کرده و خروجیای با ساختار و طول مشخص ایجاد میکند.
یکی از ویژگیهای مهم تابع هش این است که تغییر بسیار کوچک در ورودی میتواند خروجی متفاوتی ایجاد کند. همچنین از روی خروجی هش، بازسازی مستقیم داده اولیه عملاً بسیار دشوار است.
در فرایند استخراج بیت کوین، ماینرها بارها دادههای مرتبط با بلاک را هش میکنند تا خروجیای پیدا شود که شرایط تعیینشده توسط شبکه را داشته باشد.
هرچه شرط پذیرش هش محدودکنندهتر باشد، ماینرها بهطور متوسط به تلاشهای بیشتری برای یافتن یک خروجی معتبر نیاز خواهند داشت.
سختی استخراج بیت کوین (BTC) معیاری برای بیان میزان دشواری یافتن یک هش معتبر برای بلاک جدید است.
شبکه بیت کوین بهگونهای طراحی شده است که بلاکها بهطور میانگین تقریباً هر ۱۰ دقیقه ایجاد شوند. بااینحال، توان محاسباتی ماینرهای فعال در شبکه ثابت نیست. ممکن است تعداد دستگاههای فعال افزایش یا کاهش پیدا کند یا تجهیزات جدید توان محاسباتی بیشتری در اختیار شبکه قرار دهند.
اگر قدرت محاسباتی شبکه افزایش پیدا کند اما شرایط استخراج بدون تغییر باقی بماند، ماینرها میتوانند بهطور میانگین سریعتر به هش معتبر دست پیدا کنند. در مقابل، کاهش توان محاسباتی میتواند فاصله زمانی میان بلاکها را افزایش دهد.
برای مدیریت این وضعیت، بیت کوین از سازوکار تنظیم سختی شبکه استفاده میکند.

اگر بلاکها در دوره مورد بررسی سریعتر از زمان هدف ایجاد شده باشند، شرایط استخراج دشوارتر میشود. اگر ایجاد بلاکها بیش از زمان مورد انتظار طول کشیده باشد، سختی کاهش پیدا میکند.
به این ترتیب، شبکه بدون نیاز به یک نهاد مرکزی میتواند خود را با تغییرات قدرت محاسباتی تطبیق دهد.
فرض کنید شرایط استخراج همیشه ثابت باقی بماند. در چنین شرایطی، افزایش شدید قدرت محاسباتی شبکه میتواند باعث شود بلاکها با سرعت بیشتری ایجاد شوند.
برای مثال، اگر تعداد زیادی دستگاه استخراج جدید وارد شبکه شوند، تعداد محاسباتی که در هر ثانیه انجام میشود افزایش پیدا میکند. در نتیجه احتمال پیدا شدن هش معتبر در مدتزمان کوتاهتر نیز افزایش خواهد یافت.
سختی استخراج بهعنوان یک مکانیسم تنظیمکننده عمل میکند. شبکه با تغییر شرایط لازم برای معتبر بودن هش، اثر تغییرات توان محاسباتی را تعدیل میکند.
بنابراین میتوان سختی شبکه را بخشی از سازوکار خودتنظیمی بیت کوین دانست.
برای درک فنیتر سختی استخراج باید با مفهوم Target آشنا شویم.
ماینر بهدنبال هشی می باشد که از مقدار هدف تعیینشده توسط شبکه کمتر باشد. به بیان ساده تر، شبکه محدودهای را مشخص میکند که تنها هشهای قرارگرفته در آن محدوده قابلقبول هستند. هرچه مقدار هدف محدودکنندهتر شود، احتمال پیدا کردن یک هش قابلقبول در هر تلاش کاهش پیدا میکند. در نتیجه ماینرها بهطور میانگین باید محاسبات بیشتری انجام دهند.
برعکس، با آسانتر شدن شرط هدف، احتمال یافتن هش معتبر در هر تلاش افزایش پیدا میکند. به همین دلیل میان Target و سختی استخراج رابطه معکوس وجود دارد: سختتر شدن شرایط هدف به معنای افزایش Difficulty است.
یکی دیگر از اصطلاحات مهم در استخراج بیت کوین Nonce است. ماینرها برای پیدا کردن هش معتبر، مقادیر مختلفی را امتحان میکنند.
تغییر نانس یکی از روشهایی است که به ماینر اجازه میدهد ورودی محاسبه هش را تغییر داده و خروجی جدیدی تولید کند. اگر هش ایجادشده شرایط شبکه را نداشته باشد، مقدار دیگری امتحان میشود و محاسبه مجدداً انجام میگیرد. این فرایند بارها تکرار میشود تا یک خروجی معتبر پیدا شود.
بنابراین استخراج را میتوان مجموعه بسیار بزرگی از تلاشهای محاسباتی دانست که هدف آنها پیدا کردن هشی مطابق شرایط تعیینشده توسط پروتکل است.
برای سادهتر شدن موضوع، فرض کنید دستگاهی باید بهصورت تصادفی عددی بین ۱ تا ۱۰۰ انتخاب کند.
اگر شرط این باشد که عدد انتخابشده باید کمتر از ۵۰ باشد، تعداد زیادی از اعداد میتوانند شرط را برآورده کنند. بنابراین احتمال موفقیت نسبتاً زیاد است.
حالا شرط را تغییر میدهیم و میگوییم عدد باید کمتر از ۱۰ باشد. در این حالت تعداد پاسخهای قابلقبول کمتر شده و احتمال موفقیت در هر تلاش کاهش پیدا میکند. در استخراج بیت کوین نیز مفهوم کلی مشابه است.
البته در شبکه واقعی با اعداد، هشها و محاسبات بسیار پیچیدهتری سروکار داریم. شبکه با تغییر شرایط پذیرش هش مشخص میکند پیدا کردن پاسخ معتبر تا چه اندازه دشوار باشد.

تنظیم سختی بیت کوین بعد از ایجاد هر ۲۰۱۶ بلاک انجام میشود. با توجه به هدف تقریبی ۱۰ دقیقه برای هر بلاک، ایجاد ۲۰۱۶ بلاک در حالت ایدهآل حدود دو هفته زمان میبرد.
شبکه بررسی میکند که ایجاد این مجموعه از بلاکها در عمل چه مدت طول کشیده است.
اگر بلاکهای دوره قبلی سریعتر از زمان مورد انتظار ایجاد شده باشند، این موضوع نشان میدهد قدرت محاسباتی موجود امکان تولید سریعتر بلاکها را فراهم کرده است. در نتیجه سختی برای دوره بعد افزایش پیدا میکند.
اگر ایجاد ۲۰۱۶ بلاک بیشتر از زمان هدف طول کشیده باشد، سختی میتواند کاهش پیدا کند.
هدف این تغییرات آن نیست که هر بلاک دقیقاً در دقیقه دهم ایجاد شود. زمان ایجاد یک بلاک منفرد میتواند کمتر یا بیشتر باشد. هدف پروتکل، نزدیک نگه داشتن میانگین زمان ایجاد بلاکها به محدوده تعیینشده است.
Hash Rate یا نرخ هش بیانگر میزان توان محاسباتی اختصاصیافته به انجام محاسبات هش در شبکه است.
هرچه تعداد محاسبات هش انجامشده در واحد زمان بیشتر باشد، نرخ هش نیز بالاتر است. افزایش تعداد یا توان دستگاههای استخراج میتواند نرخ هش کل شبکه را افزایش دهد.
رابطه نرخ هش و سختی شبکه را میتوان به شکل زیر خلاصه کرد:
⬅️ وضعیت شبکه | نتیجه احتمالی در تولید بلاک | واکنش سازوکار تنظیم سختی |
⬅️ افزایش نرخ هش | بلاکها ممکن است سریعتر ایجاد شوند | افزایش سختی |
⬅️ کاهش نرخ هش | بلاکها ممکن است دیرتر ایجاد شوند | کاهش سختی |
⬅️ ثبات نسبی نرخ هش | زمان بلاک به محدوده هدف نزدیک میماند | تغییر محدودتر سختی |
البته تنظیم سختی بهصورت لحظهای و با هر تغییر نرخ هش انجام نمیشود. شبکه پس از تکمیل دوره تعیینشده، زمان ایجاد بلاکهای دوره قبلی را مبنای تنظیم بعدی قرار میدهد.
این سه مفهوم ارتباط نزدیکی با یکدیگر دارند، اما نباید آنها را یکسان در نظر گرفت.
مفهوم | تعریف ساده | نقش |
⬅️ Hash Rate | میزان توان محاسباتی فعال در استخراج | نشاندهنده تعداد محاسبات هش در واحد زمان |
⬅️ Difficulty | میزان دشواری یافتن هش معتبر | تنظیم شرایط استخراج |
⬅️ Block Time | فاصله زمانی ایجاد بلاکها | یکی از نتایج تعامل نرخ هش و سختی |
⬅️ Target | محدوده قابلقبول برای هش معتبر | مشخصکننده شرط پذیرش هش |
⬅️ Nonce | مقداری که در فرایند جستوجوی هش تغییر میکند | کمک به تولید خروجیهای هش متفاوت |
درک تفاوت این اصطلاحات برای شناخت سازوکار اثبات کار بیتکوین اهمیت زیادی دارد.
سختی شبکه مستقیماً بر اساس سازوکار پروتکل و زمان ایجاد بلاکها در دوره تنظیم میشود. بااینحال، عوامل فنی مختلفی میتوانند با تغییر توان محاسباتی شبکه، بهصورت غیرمستقیم بر وضعیت سختی اثر بگذارند.
مهمترین عامل فنی، تغییر در قدرت محاسباتی فعال در شبکه است.
افزایش نرخ هش میتواند باعث شود بلاکها در یک دوره سریعتر از زمان هدف ایجاد شوند. در چنین شرایطی، تنظیم بعدی میتواند سختی را افزایش دهد.
کاهش نرخ هش نیز میتواند نتیجه معکوس داشته باشد.
تعداد دستگاههای فعال در شبکه ثابت نیست. ورود تعداد بیشتری از دستگاهها میتواند توان محاسباتی کل را افزایش دهد و خاموش شدن بخشی از تجهیزات نیز میتواند نرخ هش را کاهش دهد.
شبکه بیت کوین مستقیماً تعداد ماینرها یا دستگاهها را برای تعیین سختی شمارش نمیکند؛ اثر این تغییرات در توان محاسباتی و زمان ایجاد بلاکها نمایان میشود.
تجهیزات استخراج در طول زمان تغییر کردهاند و سختافزارهای جدید میتوانند تعداد بیشتری محاسبه هش را در مدتزمان مشخص انجام دهند.
اگر توان پردازشی بیشتری وارد شبکه شود، سازوکار تنظیم سختی میتواند در دورههای بعدی اثر آن را تعدیل کند.
این ویژگی باعث میشود افزایش قدرت سختافزارها بهتنهایی نتواند برای همیشه زمان ایجاد بلاکها را کاهش دهد.
زمان واقعی ایجاد ۲۰۱۶ بلاک قبلی یکی از مهمترین دادههای مورد استفاده در تنظیم سختی است.
اگر این بلاکها سریعتر از زمان هدف ایجاد شده باشند، سختی در جهت دشوارتر شدن تنظیم میشود. اگر فرایند ایجاد آنها طولانیتر شده باشد، جهت تنظیم میتواند معکوس باشد.
خیر. عبارت «۱۰ دقیقه» به معنای یک زمان دقیق و تضمینشده برای هر بلاک نیست.
استخراج ماهیتی احتمالاتی دارد. ممکن است یک بلاک در مدت کوتاهی پیدا شود و بلاک دیگری زمان بیشتری نیاز داشته باشد.
بنابراین پروتکل تضمین نمیکند که دقیقاً هر ۱۰ دقیقه یک بلاک ایجاد شود. هدف این است که در بازههای طولانیتر، میانگین زمان ایجاد بلاک در محدوده موردنظر شبکه باقی بماند.
این تفاوت برای درک صحیح مفهوم Difficulty بسیار مهم است.
قدرت محاسباتی شبکه بیت کوین میتواند در طول زمان تغییر کند. اگر هیچ مکانیسمی برای واکنش به این تغییر وجود نداشت، افزایش یا کاهش نرخ هش میتوانست فاصله زمانی میان بلاکها را بهشدت تغییر دهد.
تنظیم دورهای سختی باعث میشود شبکه بتواند بدون نیاز به تصمیمگیری یک مدیر یا سازمان مرکزی، شرایط استخراج را با وضعیت محاسباتی خود هماهنگ کند.
این ویژگی یکی از اجزای مهم طراحی اثبات کار بیتکوین محسوب میشود.
در شبکه مبتنی بر اثبات کار، ایجاد بلاک معتبر مستلزم انجام محاسبات است. وجود نرخ هش قابلتوجه و شرایط مشخص برای پذیرش بلاک باعث میشود مشارکت در فرایند تولید زنجیره نیازمند توان محاسباتی باشد.
یکی از حملات شناختهشده در شبکههای اثبات کار، حمله ۵۱ درصدی است. در چنین سناریویی، یک مهاجم یا مجموعهای هماهنگ از مشارکتکنندگان تلاش میکنند بخش عمده توان محاسباتی شبکه را تحت کنترل بگیرند.
سختی استخراج بهتنهایی معیار کامل امنیت شبکه نیست، اما در کنار نرخ هش و سازوکار اثبات کار، بخشی از ساختار فنی مرتبط با امنیت و هزینه محاسباتی تولید بلاک محسوب میشود.
یکی از نکات مهم در طراحی بیت کوین این است که پروتکل نباید به قدرت یک نسل مشخص از سختافزار وابسته باشد.
اگر دستگاههای استخراج در آینده قدرت بیشتری داشته باشند، نرخ هش شبکه میتواند تغییر کند. بدون تنظیم Difficulty، افزایش قدرت پردازشی میتوانست فاصله زمانی میان بلاکها را کاهش دهد.
اما سازوکار تنظیم سختی اجازه میدهد شبکه پس از مشاهده تغییر سرعت تولید بلاکها، شرایط استخراج را مجدداً تنظیم کند.به همین دلیل، Difficulty را میتوان یکی از ابزارهای تطبیق پروتکل بیتکوین با تغییر توان محاسباتی شبکه دانست.
افزایش Difficulty به این معنا نیست که الگوریتم بیت کوین به الگوریتم دیگری تبدیل شده یا نوع مسئله کاملاً تغییر کرده است.
آنچه تغییر میکند، شرایط لازم برای معتبر بودن خروجی هش است.
با افزایش سختی، احتمال اینکه یک تلاش منفرد به هش قابلقبول منجر شود کمتر میشود. در نتیجه، برای یافتن یک هش معتبر بهطور میانگین تلاشهای محاسباتی بیشتری موردنیاز خواهد بود.
کاهش سختی نیز عکس همین وضعیت را ایجاد میکند.
فرایند کلی را میتوان به شکل زیر خلاصه کرد:
ماینرها محاسبات هش انجام میدهند ← بلاکهای جدید ایجاد میشوند ← شبکه زمان ایجاد ۲۰۱۶ بلاک را بررسی میکند ← این زمان با زمان هدف مقایسه میشود ← Difficulty برای دوره بعد تنظیم میشود.
۱ | ماینرها برای یافتن هش معتبر تلاش میکنند |
۲ | بلاکهای معتبر به زنجیره اضافه میشوند |
۳ | ۲۰۱۶ بلاک تکمیل میشود |
۴ | زمان سپریشده برای این دوره بررسی میشود |
۵ | سرعت واقعی تولید بلاک با هدف پروتکل مقایسه میشود |
۶ | سختی دوره بعد تنظیم میشود |
۷ | فرایند برای دوره بعد ادامه پیدا میکند |
این چرخه به شبکه اجازه میدهد در برابر تغییرات توان محاسباتی واکنش نشان دهد.
سختی استخراج یکی از اجزای مهم سازوکار اثبات کار بیتکوین است. این معیار تعیین میکند یافتن یک هش معتبر برای ایجاد بلاک جدید تا چه اندازه دشوار باشد و در دورههای مشخص بر اساس وضعیت تولید بلاکها تنظیم میشود.
بیتکوین بهطور میانگین زمان حدود ۱۰ دقیقه را برای ایجاد بلاک هدف قرار داده است، اما توان محاسباتی شبکه همواره ثابت باقی نمیماند. به همین دلیل، پس از ایجاد هر ۲۰۱۶ بلاک، عملکرد دوره قبلی بررسی و سختی استخراج متناسب با آن تنظیم میشود.
برای شناخت دقیق این سازوکار باید میان مفاهیمی مانند نرخ هش، سختی، Target، Nonce و زمان بلاک تفاوت قائل شد. نرخ هش به توان محاسباتی شبکه مربوط است، Difficulty دشواری یافتن هش معتبر را نشان میدهد و زمان بلاک نتیجه تعامل این عوامل در فرایند استخراج است.
در نهایت، تنظیم سختی را میتوان یکی از مکانیسمهای خودتنظیم شبکه بیتکوین دانست؛ مکانیسمی که به پروتکل اجازه میدهد بدون مدیریت یک نهاد مرکزی، خود را با تغییرات توان محاسباتی ماینرها تطبیق دهد و میانگین زمان ایجاد بلاکها را در محدوده هدف نگه دارد.