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