سختي شبکه (Difficulty) يا سختي استخراج متغيري است که هدف آن ثابت نگه داشتن ميانگين زمان ايجاد يک بلاک در شبکه است. در ارزهاي ديجيتالي که قابليت استخراج دارند و يا به اصطلاح سازوکار آنها اثبات کار (PoW) است، وجود قابليتي انعطافپذير در برابر افزايش و يا کاهش تعداد ماينرها ضروري است. در اين مطلب به توضيح سختي شبکه و جزئيات آن ميپردازيم.
پيش از اينکه وارد مبحث سختي شبکه و توضيح آن شويم، بايد به صورت خلاصهوار به مفاهيم اوليه ارزهاي ديجيتال قابل استخراج نگاهي مياندازيم.
يکي از قابليتهاي ارزهاي ديجيتال که آنها را محبوب ساخته، استفاده از بلاک چينهاي عمومي است. اين نوع بلاک چينها شفاف هستند و هر کسي بدون نياز به اجازه گرفتن از مرکز يا نهادي ميتواند در اين شبکهها فعاليت کند و يا از آنها خارج شود. براي مثال شما براي وارد شدن به شبکه بيت کوين، اتريوم و لايت کوين نياز نداريد که از شخص يا گروهي اجازه بگيريد. تنها کاري که لازم است انجام دهيد، دانلود کردن کل بلاک چين اين شبکهها و اجراي يک فول نود است.
عمليات استخراج يا همان ماينينگ هم به صورت آزادانه توسط هر شخص يا گروهي در شبکه ميتواند انجام شود. اساس کار ارزهاي ديجيتالي که از سازوکار استخراج استفاده ميکنند، حل کردن يک مسئله پيچيده به نام «هش» در هر بلاک است تا پاسخ آن را پيدا کنند و به اين وسيله تراکنشهايي که در آن بلاک قرار گرفته است، تاييد شوند. ماينرها در فرايند پيدا کردن هش هر بلاک، اين کار را با حدس و خطا انجام ميدهند.
هش يا همان مسئله رياضي پيچيدهاي که جزء اساسي تمام ارزهاي ديجيتال است، حاصل تابعي به نام تابع هش (Hash Function) است. اين تابع يکطرفه در ارزهاي ديجيتال، داده يا وروديها که همان تراکنشهاي افراد مختلف است را دريافت ميکند و خروجي آن رشته عباراتي با طول و حجم ثابت است. يکي از جالبترين ويژگيهاي توابع هش آن است که امکان رسيدن به داده اوليه از طريق داشتن خروجي را تقريبا غيرممکن ميکند.
سختي استخراج چيست ؟
اساس کلي مفاهيم سختي شبکه در تمامي ارزهاي ديجيتال يکسان است. براي توضيح سختي شبکه يکي از ارزهاي ديجيتال قابل استخراج مانند بيت کوين را در نظر بگيريد.
سختي شبکه بيت کوين هر دو هفته يک بار تغيير ميکند تا زمان پيدا شدن هر بلاک به طور ميانگين 10 دقيقه باقي بماند. در صورتي که سختي شبکه وجود نداشته باشد، با وارد شدن ماينرهاي بيشتر به شبکه حدسهايي که درباره هش هر بلاک زده ميشود نيز افزايش پيدا ميکند. به دنبال افزايش تعداد حدسهاي زده شده، احتمال پيدا شدن هر بلاک در زماني کمتر از 10 دقيقه هم بيشتر ميشود.
با اين حساب عامل کنترل کنندهاي در شبکه وجود نخواهد داشت تا جلوي ماينرها را از ايجاد بلاک در هر دقيقه، ثانيه و يا حتي کمتر از يک ثانيه بگيرد و آنها را وادار به ايجاد بلاک در زمان حدودي 10 دقيقه کند.
گفته شد که سختي شبکه بيت کوين هر دو هفته يکبار (به عبارت ديگر پس از ساخته شدن هر 2016 بلاک)، تغيير ميکند. با در نظر داشتن زمان 10 دقيقه براي حل هر بلاک، زمان مورد نياز براي حل اين تعداد بلاک، 20,160 دقيقه خواهد بود.
اما اگر تعداد ماينرها در اين مدت دو هفتهاي افزايش پيدا کند و اين تعداد بلاک زودتر از موعد مشخص شده و يا ديرتر حل شوند (براي مثال در 18,000 دقيقه)، در اين صورت سختي شبکه بايد خود را با تعداد ماينرها مطابقت دهد.
اگر زمان حل شدن مجموع 2016 بلاک را بر مقدار ايدهآل 10 دقيقه به ازاي هر بلاک تقسيم کنيم، با يک تناسببندي ساده ميتوان فهميد که سختي شبکه بايد نسبت به حالت قبلي فرضاً 20160/18000 يا 1.12 برابر شود.
در صورتي که نسبت به دست آمده بيشتر از 1 باشد، ماينرها با سرعت بيشتري نسبت به حد معمول بلاکها را حل کردهاند و در صورتي که اين عدد کمتر از يک باشد، قدرت استخراجکنندگان نسبت به قبل کاهش داشته است.
نمودار سختي شبکه بيت کوين از سايت بلاک چين داتکام قابل دسترس است. مفهوم نمودار سختي و اعدادي که در آن به کار رفته، بيانگر نسبتي است که مثلا استخراج بيت کوين نسبت به هفته گذشته يا مثلا روزهاي ابتدايي شروع کار بيت کوين، چقدر دشوارتر شده است.
نموداري را تصور کنيد که اعداد 1 تا 100 بر روي آن قرار گرفتهاند و قرار است دستگاهي در هر دقيقه عددي تصادفي در اين بازه انتخاب کند. عدد 50 را به عنوان هدفي در نظر ميگيريم که اعداد تصادفي کمتر از آن مدنظر ماست. در اينصورت به طور ميانگين بايد 2 دقيقه براي به دست آمدن هر عدد زير 50 صبر کنيم. در صورتي که هدف ما اعداد زير 20 باشد، اين زمان به 5 دقيقه افزايش مييابد.
البته ممکن است شانس با ما يار باشد و همان عدد اولي که دستگاه به طور تصادفي انتخاب ميکند، زير 20 باشد اما در يک بازه طولاني، زمان مورد نياز براي پيدا شدن عدد زير 20 همان 5 دقيقه خواهد بود.
پس با عوض کردن عددي که آن را به عنوان هدف ميشناسيم، مدت زمان به دست آمدن آن نيز تغيير ميکند.
خريد دستگاه ماينر مناسب متاثر از سختي شبکه است .
سختي شبکه يا ديفيکالتي نيز به همين صورت کار ميکند. ماينرها تلاش ميکنند تا با توليد اعداد تصادفي، به هشهايي کمتر از هش هدف (Target Hash) دست يابند. با سختتر شدن استخراج، هش هدف نيز کمتر و کمتر ميشود. البته اين کار با اضافه شدن صفرهاي بيشتر به ابتداي هش هدف انجام ميشود. به همين خاطر هم هشِ بلاکهاي جديدتر در شبکه بيت کوين، نسبت به بلاکهاي چند سال قبل صفرهاي بيشتري دارند.
اما اگر مثال نمودار 1 تا 100 را در نظر بگيريد، اعدادي که بر روي نمودار بيت کوين وجود خواهند داشت بسيار بزرگ هستند. به همين دليل هم کامپيوترها در فرمت هگزادسيمال يا پايه 16 با اين اعداد سروکار دارند.