یکی از اصطلاحاتی که در ارزهای دیجیتال استفاده می شود، سختی شبکه یا سختی استخراج است. در واقع سختی شبکه متغیری است که هدف این متغیر، ثابت نگه داشتن میانگین زمان ایجاد یک بلاک در شبکه است. این متغیر برای ارزهای دیجیتال قابل استفاده بوده که ساز و کار آنها اثبات کار است. به همین خاطر در این مقاله می خواهیم به توضیح سختی شبکه و جزئیات آن بپردازیم. اما قبل از اینکه سختی شبکه را توضیح دهیم، می بایست ارزهای دیجیتالی که قابلیت استخراج دارند را توضیح دهیم.
یکی از ویژگی هایی که ارزهای دیجیتال را محبوب کرده، استفاده از بلاک چین های عمومی است. مزیت استفاده از بلاک چین های عمومی این است که برنامه آنها کاملا واضح بوده و هر فردی می تواند بدون اجازه گرفتن از مرکز و یا نهادی به این شبکه وارد شده و از آن استفاده کند.
به عنوان مثال برای وارد شدن به شبکه بیت کوین از نوع اتریوم و لایت کوین، نیازی به اجازه از شخص و یا گروهی نیست. تنها کاری که باید انجام داد این است که بلاک چین را دانلود و فول نود را اجرا کرد.
البته عملیات استخراج یا در اصطلاح ماینینگ به صورت آزادانه توسط هر فرد و یا گروهی قابل اجرا است. اما باید به این نکته دقت داشت، که اساس کار ارزهای دیجیتال که از استخراج استفاده می کنند، حل کردن مساله ای به نام هش هر بلاک است. با حل کردن هش هر بلاک، تراکنش هایی که در بلاک ها قرار می گیرد، تایید می شود.
در واقع هش هر بلاک، یکی از اساسی ترین بخش هایی است که در تمام ارزهای دیجیتال وجود دارد که حاصل تابعی به نام تابع هش است. این نوع از تابع، به صورت یک طرفه در ارزهای دیجیتال داده ها و یا همان تراکنش های افراد را دریافت کرده و خروجی خود را تحت عباراتی با طول و حجم ثابت ارائه می کند. یکی از ویژگی های توابع هش، عدم رسیدن به داده های اولیه از طریق داشتن خروجی است.
به صورت کلی اساس کار سختی شبکه و یا سختی استخراج در تمامی ارزهای دیجیتال یکسان است. اما برای اینکه با مفهوم سختی شبکه آشنا شوید بهتر است یک نمونه ارز دیجیتال همچون بیت کوین را در نظر بگیرید.
سختی شبکه ارز دیجیتال بیت کوین، هر دو هفته یکبار تغییر کرده و تا زمان پیدا کردن هر بلاک، به صورت میانگین ده دقیقه باقی می ماند. در این صورت، وقتی سختی شبکه وجود نداشته باشد، با ورود ماینرهای بیشتر به شبکه، هش های بیشتری برای هر بلاک زده می شود. با حدس های بیشتر، احتمال اینکه هر بلاک در مدت زمان کمتری پیدا شود، بیشتر است.
بنابراین با وجود چنین شرایطی، هیچ عامل کنترل کننده ای وجود ندارد تا از ورود ماینرها جلوگیری کند. پس با تصور اینکه سختی شبکه بیت کوین هر دو هفته یکبار تغییر می کند و اینکه زمانی که برای حل هر بلاک مورد نیاز است، در حدود ده دقیقه بوده، بنابراین کل زمان مورد نیاز برای حل این این تعداد بلاک، 20160 دقیقه است.
اما مشکل اینجاست، زمانی که تعداد ماینرها در طی این دو هفته افزایش یابد، احتمال اینکه تعداد بلاک ها زودتر از موعد مشخص و یا اینکه دیرتر حل شوند، وجود دارد. در این صورت سختی استخراج باید تعداد خود را با تعداد ماینرها منطبق کند.
بر فرض مثال، اگر زمان حل شدن مجموع 2016 بلاک را برمقدار ایده آل یعنی همان 10 دقیقه تقسیم نماییم، در این صورت، تعداد سختی شبکه نسبت به حالت قبلی خود 1.12 برابر می شود.
زمانی که این نسبت بیشتر از یک شود، ماینرها با سرعت بیشتری نسبت به حالت معمولی بلاک ها را حل می کنند. اما در صورتی که این نسبت کمتر از یک شود، قدرت استخراج کنندگان کاهش یافته است.
یکی از سایت های معتبر که سختی شبکه را به خوبی توضیح داده است، سایتlearnmeabitcoin است. برای توضیح بهتر متغیر سختی شبکه، می توان نموداری را فرض کرد که اعداد یک تا 100 بر روی آن قرار گرفته است و قرار است که یک دستگاهی در هر دقیقه یک عدد تصادفی در این بازه انتخاب نماید. برای شروع بهتر است عددی را به عنوان هدف انتخاب نمود. برای مثال عدد 50 را به عنوان هدفی انتخاب می کنیم که اعداد تصادفی کمتر از آن مد نظر ماست. در این به صورت میانگین باید هر دو دقیقه برای بدست آوردن هر عدد زیر 50 باید صبر کرد. اما در صورتی که هدف اعداد زیر 20 باشد، در این صورت زمان به 5 دقیقه افزایش می یابد.
بنابراین با تغییر عدد هدف، مدت زمان بدست آمدن آن نیز تغییر می کند. سختی شبکه نیز با همین روند تغییر می کند. ماینرها در تلاش هستند که با ایجاد اعداد تصادفی، به هش هایی که کمتر از هدش هدف است دست پیدا کند. هر چقدر متغیر استخراج سخت تر شود، هش هدف نیز کمتر و کمتر خواهد شد. البته این کار با اضافه کردن تعداد صفرهای بیشتر به ابتدای هش هدف انجام می شود. به همین خاطر است که هش های جدید نسبت به هش های قدیمی تر خود صفرهای بیشتری دارد.