سختی شبکه (Difficulty) یا سختی استخراج متغیری می باشد که هدف آن ثابت نگه داشتن میانگین زمان ایجاد بلاک در شبکه است. در ارزهای دیجیتالی که قابلیت استخراج دارند و یا به اصطلاح سازوکار اجماع آنها اثبات کار (PoW) می باشد، وجود قابلیتی انعطافپذیر در برابر افزایش و یا کاهش تعداد ماینرها ضروری است.
عملیات استخراج یا همان ماینینگ در بلاک چینهایی مانند بیت کوین به صورت آزادانه توسط هر شخص یا گروهی که مایل باشد، انجام میشود. این یعنی هرکسی که بخواهد میتواند با راهاندازی یک یا چند دستگاه استخراج و نصب نرمافزار مربوطه، بدون اینکه نیاز به مجوز از شخص یا نهادی داشته باشد، وارد شبکه بیت کوین شده و در آن بهعنوان ماینر فعالیت نماید.
اساس کار ارزهای دیجیتالی که از سازوکار استخراج استفاده میکنند، حل کردن یک مسئله پیچیده به نام «هش» در هر بلاک است. ماینرها تلاش میکنند تا پاسخ این هش را پیدا و به این وسیله تراکنشهایی که در آن بلاک قرار گرفته است، تأیید شوند. استخراجکنندگان این کار را با حدس و خطا انجام میدهند؛ یعنی آن قدر پاسخهای مختلف را امتحان میکنند تا هش درست را پیدا نمایند.
هش یا همان مسئله ریاضی پیچیدهای که جزء اساسی تمام ارزهای دیجیتال است، حاصل تابعی به نام تابع هش (Hash Function) می باشد. این تابع یکطرفه در ارزهای دیجیتال، داده یا ورودیها که همان تراکنشهای افراد مختلف است را دریافت و خروجی آن رشته عباراتی با طول و حجم ثابت است.
اساس کلی مفاهیم سختی شبکه در تمامی ارزهای دیجیتال یکسانست. برای توضیح سختی شبکه، یکی از ارزهای دیجیتال قابل استخراج مانند بیت کوین را در نظر میگیریم. مکانیسم بیت کوین طوری طراحی شده است که زمان تقریبی استخراج هر بلاک ۱۰ دقیقه باشد. بیت کوین برای حفظ این زمان ۱۰ دقیقهای از سازوکاری استفاده می نماید که به آن سختی استخراج میگویند.
اگر سختی شبکه وجود نداشته باشد، با وارد شدن ماینرهای بیشتر به شبکه یا افزایش قدرت محاسباتی ماینرهای موجود، تعداد و سرعت حدسهایی که درباره هش هر بلاک زده میشود نیز افزایش پیدا میکند. به دنبال این افزایش، احتمال پیدا شدن هر بلاک در زمانی کمتر از ۱۰ دقیقه هم بیشتر میشود.
با این حساب، عامل کنترل کنندهای در شبکه وجود نخواهد داشت تا جلوی ماینرها را از ایجاد بلاک در هر دقیقه، ثانیه یا حتی کمتر از یک ثانیه بگیرد. این کار را سختی شبکه به عهده دارد. هر گاه تعداد ماینرها افزایش یابد و سرعت استخراج بلاک کمتر از ۱۰ دقیقه شود، بیت کوین سختی استخراج را بیشتر میکند تا ماینرها دیرتر بتوانند هش بلاک را پیدا نمایند.. برعکس، وقتی زمان استخراج بلاک به هر دلیلی مثل کاهش تعداد ماینرها یا قدرت کل محاسباتی افزایش یابد، بیت کوین سختی استخراج را کاهش میدهد.
نموداری را تصور کنید که اعداد ۱ تا ۱۰۰ بر روی آن قرار گرفته است و قرار است دستگاهی در هر دقیقه یک عدد تصادفی در این بازه انتخاب کند. حالا ما یک شرط برای عدد انتخابی میگذاریم؛ مثلاً میگوییم عدد مورد نظر باید کمتر از ۵۰ باشد.
در این صورت، به طور میانگین باید ۲ دقیقه برای به دست آمدن هر عدد زیر ۵۰ صبر کنیم، چراکه احتمال درست بودن هر عدد تصادفی ۵۰درصد یا یکدوم است. اگر هدف ما اعداد زیر ۲۰ باشد، این زمان به ۵ دقیقه افزایش مییابد، چون احتمال درستبودن عدد به یکپنجم یا ۲۰درصد کاهش یافته است.
توضیح فنی سختی شبکه با مثال
مکانیسم تنظیم سختی شبکه بیت کوین هم به همین شکل عمل میکنند. معمایی که ماینرها باید حل، پیدا کردن هش بلاک است، به شرطی که از یک مقدار خاص که توسط شبکه بیت کوین تعیین میشود کمتر باشد. ماینرها همه متغیرهای بلاک را دارند به جز یک عدد که به آن عدد نانس (Nonce) میگویند. آنها آنقدر بلاک را با نانسهای تصادفی مختلف هش میکنند تا به شرط موردنظر بیت کوین برسند.
سختی شبکه بیت کوین هر دو هفته یکبار، یا به عبارت بهتر پس از ساخته شدن هر ۲۰۱۶ بلاک، تغییر میکند. با در نظر داشتن زمان ۱۰ دقیقه برای حل هر بلاک، زمان مورد نیاز برای حل این تعداد بلاک، ۲۰,۱۶۰ دقیقه (۱۴ روز) خواهد بود.
اما اگر تعداد ماینرها در این مدت دو هفتهای افزایش پیدا نماید و این تعداد بلاک زودتر از موعد مشخص شده و یا دیرتر حل شود (برای مثال در ۱۸,۰۰۰ دقیقه)، در این صورت سختی شبکه باید خود را با تعداد ماینرها مطابقت دهد.
اگر زمان حل شدن مجموع ۲۰۱۶ بلاک را بر مقدار ایدهآل ۱۰ دقیقه به ازای هر بلاک تقسیم کنیم، با یک تناسببندی ساده میتوان فهمید که سختی شبکه باید نسبت به حالت قبلی فرضاً ۲۰۱۶۰/۱۸۰۰۰یا ۱/۱۲ برابر شود. در صورتی که نسبت به دست آمده بیشتر از ۱ باشد، ماینرها با سرعت بیشتری نسبت به حد معمول بلاکها را حل کردهاند و اگر این عدد کمتر از یک باشد، قدرت استخراجکنندگان نسبت به قبل کاهش داشته است.
از نظر فنی، سختی شبکه بیت کوین با مقدار کل توان محاسباتی یا نرخ هش اختصاص دادهشده به استخراج در شبکه تعیین میشود. اما عوامل دیگری هم هستند که روی سختی شبکه تأثیر میگذارند و ممکن است در کاهش یا افزایش آن نقش داشته باشند.
زمان استخراج یا ایجاد بلاک جدید در شبکه بیت کوین حدود ۱۰ دقیقه است. اگر بلاکها خیلی سریع ایجاد شوند، سطح سختی شبکه افزایش مییابد تا سرعت ایجاد بلاک کاهش یابد. برعکس، اگر بلاکها خیلی آهسته تولید شوند، سطح سختی کاهش مییابد تا سرعت ایجاد بلاک افزایش پیدا کند.
کارایی سختافزارهای ماینینگ میتواند تأثیر قابلتوجهی بر سختی استخراج بیت کوین داشته باشد. سختافزارهای کارآمدتر میتوانند هشهای بیشتری را در هر ثانیه استخراج کنند. این مسئله باعث افزایش نرخ هش و آن هم بهنوبه خود سبب بالا رفتن سختی شبکه میشود.
استخراج بیت کوین به برق زیادی نیاز دارد و هزینه برق میتواند تأثیر بهسزایی بر سختی شبکه داشته باشد. اگر هزینههای برق بالا باشد، ممکن است ماینرها سود زیادی در استخراج بیت کوین پیدا نکنند و فعالیتهای خود را تعطیل کنند؛ تعطیلی مراکز استخراج بهمعنای کاهش نرخ هش و در پی آن کاهش سختی استخراج است.
قیمت بیت کوین و شرایط بازار عامل مهمی در سودآوری استخراج این ارز دیجیتال است. تصور کنید که قیمت بیت کوین ناگهان افزایش یابد. در چنین شرایطی، با فرض اینکه هزینههای استخراج ثابت بماند، سودآوری استخراج بالا میرود. بهاینترتیب، ماینرهای بیشتری با هدف کسب سود به استخراج شبکه روی میآورند و این افزایش نرخ هش و سپس افزایش سطح سختی شبکه را به دنبال خواهد داشت.
از سوی دیگر، اگر قیمت بیت کوین کاهش یابد، ممکن است برخی از ماینرها از شبکه خارج و باعث کاهش در نرخ هش بیت کوین شوند. پرواضح است که این کاهش سبب میشود که سختی شبکه پایین بیاید.
چرا سختی شبکه بیت کوین تغییر میکند؟
مکانیزم تنظیم خودکار سختی استخراج نقش مهمی در پایداری و امنیت شبکه بیت کوین ایفا می نماید. این مکانیزم بر جنبههای ضروری متعدد این ارز دیجیتال تأثیر میگذارد که در اینجا آنها را بررسی میکنیم.
تنظیم زمان ایجاد بلوک جدید
بیت کوین طوری طراحیشده است که تقریباً هر ۱۰ دقیقه یک بلاک جدید به بلاک چین خود اضافه نماید. با این حال، با توجه به اینکه قدرت محاسباتی شبکه، یا همان نرخ هش، دائماً به دلیل پیوستن یا ترک ماینرها در نوسان است، این زمانبندی میتواند هربار متفاوت باشد. تنظیم خودکار سختی شبکه بیت کوین تضمین می نماید که صرفنظر از میزان قدرت محاسباتی واردشده به شبکه، این زمان ثابت باقی بماند و به صورت میانگین هر ده دقیقه یک بلاک استخراج شود.
یکی دیگر از کاربردهای تنظیم سختی شبکه این می باشد که بیت کوین اطمینان حاصل میکند که اجرای یک حمله ۵۱ درصدی برای هکرها بسیار گران تمام شود. حمله ۵۱ درصدی یعنی هکرها کنترل بیش از نیمی از قدرت استخراج شبکه را بهدست آورند. شناور بودن سختی استخراج وقوع چنین حملهای را سختتر میکند.
سقف عرضه بیت کوین ۲۱ میلیون واحد است. تنظیم سختی در کنار رویدادهای هاوینگ که در آن پاداش بلاک تقریباً هر چهار سال یکبار نصف میشود، تضمین می نماید که انتشار بیت کوینهای جدید در طول زمان به مرور کندتر شود. چنین مکانیزمی دو مزیت اصلی دارد.
کمیابی یک ویژگی اساسی برای هر دارایی ارزشمند است و نقشی اساسی در رشد قیمت بیت کوین ایفا میکند.
همزمان که سختافزارهای استخراج بیت کوین تکامل یافته و قدرتمندتر میشوند، نرخ هش شبکه از نظر تئوری میتواند سر به فلک بکشد. بدون متعادل کردن سختی شبکه و تنظیم خودکار آن، این افزایش نرخ هش به استخراج سریع بلاکها، افزایش سرعت انتشار بیتکوینهای جدید و بیثباتی در شبکه منجر میشود.
ازاینرو، میتوان گفت که این مکانیزم همیشه شبکه بیت کوین را در مقابل پیشرفت فناوری که ممکن می باشد امنیت بیت کوین را به خطر بیندازد، مصون نگه میدارد و شبکه را با رشد فناوری تطبیق میدهد.
در این مقاله با مفهوم سختی استخراج بیت کوین آشنا شدیم. میزان این سختی از طریق یک مکانیزم خودکار و بعد از استخراج هر ۲۰۱۶ بلاک، یعنی تقریباً هر ۲ هفته یکبار، کموزیاد میشود. عوامل متفاوتی از جمله نرخ هش بیت کوین در تعیین سختی شبکه تأثیر میگذارند. در مقابل، این تنظیم خودکار با پیشبرد اهداف مختلف و مهم شبکه بیت کوین، باعث پایداری و امنیت این بلاک چین میشود.
تنظیم سختی شبکه بیت کوین بخشی جداییناپذیر از فرآیند استخراج بیت کوین است که باعث میشود شبکه بیت کوین با موفقیت به کار خود ادامه دهد. ایدهپردازی این مکانیزم هوشمندانه توسط ساتوشی ناکاموتو (Satoshi Nakamoto)، خالق بیت کوین، انجام شده است. این مکانیزم اطمینان حاصل میکند که سیاستهای مالی این بیت کوین میتواند بدون دخالت یک مقام مرکزی با موفقیت اجرا شود و در عین حال خطرات امنیتی را نیز به طور مؤثر برطرف کند.