سختی شبکه یا سختی استخراج متغیری است که در شبکههایی که از مکانیسم گواه اثبات کار (POW) استفاده میکنند، به کار برده میشود. مکانیسم سختی شبکه در واقع به منظور ثابت نگه داشتن میانگین زمان ایجاد بلاکها، در شبکههای بلاکچینی POW استفاده میشود. وجود این قابلیت به شبکههای بلاکچینی گواه اثبات کار اجازه میدهد تا بتوانند با افزایش یا کاهش تعداد ماینرهای شبکه، زمان ایجاد بلاکها و در نتیجه نحوه توزیع پاداش شبکه را تنظیم کنند. در این مقاله به این میپردازیم که سختی شبکه چیست، در چه صورتی افزایش و کاهش پیدا میکند و چگونه باعث تنظیم ساختار بلاکچینها میشود. با میهن بلاکچین همراه باشید.
سختی شبکه یا Network Difficulty چیست؟
حتما میدانید که سختی استخراج بیت کوین (BTC Mining Difficulty) همیشه به یکاندازه نیست. در سال ۲۰۰۹ (۱۳۸۷) یک دستگاه تلفن همراه به راحتی و به سرعت میتوانست بیت کوین استخراج کند؛ اما امروز برای استخراج همان مقدار بیت کوین به فارمهای صنعتی بسیار بزرگ و هزاران دستگاه تخصصی نیاز است تا در هر ثانیه میلیونها میلیون پردازش را انجام دهند. دلیل این پیچیدگی در استخراج بیت کوین به یکی از مهمترین مولفههای ماینینگ یعنی سختی شبکه (Network Difficulty) مربوط میشود.
پیچیدگی یا سختی استخراج بیت کوین یک متغیر پویا است. در واقع پویا بودن سختی شبکه به این معنی است که سختی استخراج یک بلاک در شبکه بیت کوین همیشه به یک اندازه نیست. به عبارت سادهتر سختی شبکه بیت کوین گاهی اوقات بیشتر میشود و گاهی کاهش پیدا میکند؛ البته در نمودار بلندمدت، سختی شبکه همواره روندی صعودی دارد.
اصطلاح سختی یا Difficulty یک واحد اندازهگیری در فرایند استخراج ارزهای دیجیتال است و به این موضوع اشاره دارد که پیدا کردن هش بلاک (Hash Block) تا چه اندازه دشوار است. همانطور که میدانید تابع هش باید دارای ویژگیهای موردنظر یک بلاک چین باشد. هر بلاک از شبکه بر حسب نرخ تعیینشده توسط پروتکل بلاکچین تولید میشود و این نرخ تا حد ممکن باید ثابت بماند.
به میزان سختی تولید یک هش توسط ماینرها که کمتر از هش هدف باشد، سختی استخراج گفته میشود. تولید این هش با کاهش مقدار هدر بلاک هششده امکانپذیر میشود. در شبکه بیت کوین اضافه شدن ماینرهای جدید به شبکه باعث میشود هش ریت شبکه افزایش یابد و به همین دلیل سختی استخراج بیت کوین نیز دوباره تنظیم میشود. به عبارت سادهتر با اضافه شدن ماینرها به شبکه بیت کوین قدرت محاسباتی برای ایجاد بلاکهای جدید افزایش یافته و زمان لازم برای ایجاد بلاکهای جدید کاهش مییابد. میزان سختی استخراج بیت کوین براساس تعدا ماینرهای فعال در شبکه تغییر میکند و با افزایش تعداد آنها افزایش و با کاهش تعداد آنها کاهش مییابد.
هرچه تعداد ماینرهای حاضر در شبکه بیشتر شود، هش ریت بیشتری ایجاد شده و در نتیجه هش ریت افزایش مییابد، به عبارت سادهتر تعداد حدسهای ارائهشده برای دستیابی به هش هدف افزایش مییابد. هرچه این حدسها بیشتر شود، احتمال اینکه هش مذکور سریعتر یافت شود افزایش مییابد.
از آنجایی که بلاکچینها معمولا به منظور افزودن بلاکها و ارائه کوینهای جدید با سرعت ثابت و قابل پیشبینی طراحی میشوند، بنابراین سختی استخراج بدین شکل برنامهنویسی میشود تا پس از استخراج تعداد مشخصی بلاک، سختی شبکه به طور خودکار تنظیم شود تا سرعت تولید کوینهای جدید در سطح مشخصی حفظ شود.
استخراج هر بیت کوین چقدر طول میکشد؟
در شرایط عادی شبکه، ماینرها هر ۱۰ دقیقه یکبار بلاکهای جدید را ایجاد میکنند. بنابراین اگر زمان ایجاد بلاکها و استخراج بیت کوین توسط ماینرها به طور میانگین کمتر از ۱۰ دقیقه شود، سختی استخراج افزایش مییابد. همچنین اگر زمان دستیابی به بیت کوینهای جدید بیشتر از ۱۰ دقیقه شود، سختی کاهش مییابد.
در فرایند ماینینگ ماینری موفق به پیدا کردن عدد نانس (Nonce) و استخراج بلاک میشود که هش مطابق با الگو را بیابد. به طور مثال فردی که با استفاده از هزاران دستگاه اسیک (ASIC) یا با استفاده از مکانیزمهای جدید، سرعت عملیات بیشتری داشته باشد، میتواند سریعا عدد نانس را پیدا کند. به این ترتیب میانگین ۱۰ دقیقهای استاندارد پروتکل تحتتاثیر قرارمیگیرد. در نتیجه یکی دیگر از مهمترین مولفههای شبکه بیت کوین به نام تنظیم مجدد سختی استخراج (Resetting Mining Difficulty) مطرح میشود.
در صورتی که سختی استخراج شبکه مجددا تنظیم نشود، این ماینر میتواند در کوتاهترین زمان بلاک جدید را استخراج کند. بنابراین منحنی انتشار بیت کوین که در مدل اقتصادی پروتکل بیت کوین تعیینشده است، تحت تاثیر قرار میگیرد و شکسته میشود. به عبارت دیگر در مدت زمان کوتاهی تمام بیتکوینهای شبکه استخراج میشوند. برای حل این چالش از تنظیم مجدد استخراج استفاده میشود. در حقیقت با افزایش پیچیدگی مسئله ریاضی موردنظر، زمان استخراج هر بلاک به طور متوسط روی ۱۰ دقیقه تثبیت میشود.
تنظیم مجدد سختی استخراج هر چند وقت یکبار انجام میشود؟
زمان تنظیم سختی استخراج به پروتکلهای برنامهنویسی عملیاتی هر بلاکچین و ارز دیجیتال بستگی دارد. همانطور که اشاره شد سختی استخراج در شبکه بیت کوین طوری تنظیم شده است که ماینرها تقریبا هر ۱۰ دقیقه میتوانند یک بلاک را حل و تولید کنند. در صورتی که این شرط به هر دلیلی نقض شود، درجه سختی دوباره تنظیم میشود.
تنظیم مجدد به طور خودکار برای هر ۲۰۱۶ بلاک (تقریبا هر دو هفته یکبار) انجام میشود. در کد منبع شبکه بیت کوین کدی برای این منظور وجود دارد. بنابراین هر بار که ۲۰۱۶ بلاک استخراج میشود، همه نودها (Node) مجددا محاسبه میشوند و در نتیجه سطح جدیدی از سختی اثبات کار (PoW) ایجاد میشود.
سختی استخراج بیت کوین چطور محاسبه میشود؟
برای محاسبه سختی استخراج بیت کوین فرمولهای مختلفی وجود دارد. فرمول زیر رایجترین فرمول محاسبه سختی استخراج است:
Difficulty Level = Difficulty Target/Current Target
«سطح سختی= سختی هدف/ هدف فعلی»
در این فرمول، Difficulty Target یک نماد هگزادسیمال از هش تارگت است که سختی استخراج آن برابر با ۱ است. همچنین Current Target هش تارگت آخرین بلاک تراکنشها است. نتیجه حاصل از تقسیم این دو پارامتر یک عدد صحیح است که سطح سختی استخراج بیت کوین را نشان میدهد. به طور مثال اگر پاسخ ۲۴ تریلیون باشد، احتمالا یک ماینر قبل از پیدا کردن هش هدف باید حدود ۲۴ تریلیون هش تولید کند. البته گاهی اوقات ماینرهای خوششانس با حدسهای کمتری موفق به پیدا کردن هش هدف میشوند.
سختی استخراج بیت کوین چه مواقعی تنظیم میشود؟
سختی استخراج بیت کوین هر ۲۰۱۶ بلاک یا تقریبا هر دو هفته یکبار بهروزرسانی میشود. به همین دلیل فاصله میان تولید هر ۲۰۱۶ بلاک، دوره سختی (Difficulty Epoch) نامیده میشود. شبکه مشخص میکند که فعالیت ماینرها در دو هفته گذشته چطور بوده است و زمان مصرفی برای تولید بلاک کاهش یافته یا بیشتر شده است. در صورتی که زمان تولید بلاک کمتر از ۱۰ دقیقه باشد، سختی استخراج شبکه بیشتر میشود و بالعکس اگر تولید بلاک بیش از ۱۰ دقیقه طول بکشد، سختی استخراج به طور خودکار کمتر میشود.
برای درک بهتر این موضوع را با مثالی تشریح میکنیم. همانطور که گفته شد سختی شبکه بیت کوین پس از ایجاد هر ۲۰۱۶ بلاک که حدودا ۲ هفته به طول میانجامد، دوباره تنظیم میشود. در این شرایط اگر تعداد ماینرهای فعال در شبکه افزایش یا کاهش پیدا کند، سختی شبکه پس از گذشت ۲ هفته دوباره باید تنظیم شود.
فرض کنید در شرایطی تعداد ماینرهای بیت کوین افزایش پیدا کرده است و ماین ۲۰۱۶ بلاک ۱۷,۰۰۰ دقیقه به طول بیانجامد. در این شرایط شبکه بیت کوین به منظور ثابت نگه داشتن زمان ایجاد بلاکها باید سختی شبکه را افزایش دهد. بنابراین میتوان سختی شبکه بیت کوین را به شکل زیر محاسبه کرد:
مدت زمان ایجاد هر بلاک در شبکه بیت کوین: ۲,۰۱۶۰ دقیقه
مدت زمان ایجاد هر بلاک در شرایط فعلی: ۱۷,۰۰۰ دقیقه
در این شرایط سختی فعلی شبکه بیت کوین برابر است با: ۱.۱۸=۲۰۱۶۰/۱۷,۰۰۰
در این مثال سختی شبکه بیت کوین باید ۱۸ درصد افزایش پیدا کند تا یک بلاک جدید در مدت زمان ۱۰ دقیقه ایجاد شود. همچنین در شرایطی که تعداد ماینرها کاهش پیدا کند، سختی شبکه نیز کاهش مییابد.
سختی یا دیفیکالتی در شبکه بلاکچین به چه معنا است؟
مولفه سختی در بلاکچین نقش مهمی را ایفا میکند. اولا نرخ ثابت و ازپیش تعیینشدهای را برای تولید و فعالسازی ارز دیجیتال تنظیم میکند. ثانیا به دلیل ثبات زمان تولید بلاک، از ریسکهای امنیتی و تقلبهای احتمالی جلوگیری میشود. اتفاقی که در این پروسه میافتد به این شرح است که با افزایش ارزش ارزهای دیجیتال ماینرهای بیشتری به شبکه میپیوندند. در نتیجه قدرت هش بیشتر میشود و به خاطر تنظیم مجدد سختی، سختی شبکه بیشتر میشود. بنابراین نرخ انتشار کوین ثابت میماند.
همچنین از آنجایی که زمان بیشتری بین ایجاد هر بلاک وجود دارد، ماینرها میتوانند امنیت بیشتری را برای شبکه تامین کنند و تطابق بلاکها با معیارهای لازم را تایید کنند. به همین دلیل نرخ انتشار یک ویژگی مهم است، زیرا باعث تضمین تولید بلاک طبق سرعت ازپیشتعیین شده پروتکل و تحت امنیت شبکه میشود. بهعلاوه حتی با پیوستن ماینرهای بیشتر به شبکه و افزایش قدرت هش، منعطف باقیمیماند.
آیا سختی شبکه فقط به پروتکلهای اجماع اثبات کار (PoW) مربوط میشود؟
در دنیای ارزهای دیجیتال، سختی استخراج برای انواع پروتکلهای اجماع از جمله اثبات کار (PoW)، اثبات سهام (PoS)، اثبات سهام نیابتی (DPoS) و اثبات اعتبار (POA) قابل استفاده است؛ اما به طور کلی بلاکچینهای مبتنی بر اثبات کار از این دادهها به عنوان یک نکته مهم برای افزایش امنیت و بهبود عملکرد خود استفاده میکنند. در یک شبکه بلاکچین اثبات کار، ماینرها موظف به حل یک مسئله رمزنگاری هستند. هرچه قدرت شبکه بیشتر شود سختی هم بیشتر میشود.
به عبارت دیگر برای یافتن راهحلهای درست، باید در هر ثانیه میلیونها عملیات هش در کل شبکه انجام شود. الگوریتم اثبات کار شامل هشینگ (Hashing) هدر بلاک و تولید یک عدد تصادفی است. به همین خاطر در الگوریتمهای رمزنگاری برای پیدا کردن یک راهحل مناسب برای یک الگوی خاص از تابع هش SHA-256 استفاده میشود.
در طی این فرایند و به خاطر رقابت ماینرها برای تولید راهحلهای کافی و تایید تراکنشها، قدرت تجهیزات محاسباتی آنها از قبیل FPGA ،CPU ،GPU و ASIC افزایش پیدا میکند. بنابراین برای حفظ ثبات سرعت تولید بلاک، باید سختی شبکه تنظیم شود. در سایر پروتکلها از این روش استفاده نمیشود زیرا عملکرد متفاوتی دارند و امنیت پروتکل را از طریق مکانیسمهای مقرونبهصرفهتر انرژی و منابع محاسباتی تامین میکنند.
آیا سختی استخراج شبکه بیت کوین نسبت به میزان رقابت در شبکه متغیر است؟
بله، سختی استخراج بیت کوین با توجه به میزان رقابت در شبکه تغییر میکند. سختی استخراج شبکه با استفاده از یک الگوریتم مشخص میشود. این الگوریتم مقدار ایدهآل سختی را طوری تنظیم میکند که ماینرها بتوانند تقریبا هر ۱۰ دقیقه یک بلاک را استخراج کنند.
در این شرایط شاید به نظر برسد که با کاهش قیمت بیت کوین به سطوح بسیار پایین، ماینینگ بیت کوین اصلا سودآوری ندارد. بسیاری از ماینرها نیز به همین دلیل از شبکه خارج میشوند؛ اما نکته اینجا است که سختی شبکه با توجه به قدرت شبکه در هر لحظه، قابل تنظیم است. بنابراین هنگام کاهش قیمت بیت کوین فرصتی برای ماینرهای خرد پیدا میشود تا حداقل برای مدتی و با استفاده از یک رایانه رومیزی یا لپتاپ و به همان شکل استخراج بیت کوین در روزهای ابتدایی، ماینینگ بیتکوین را تجربه کنند.
کاهش سختی استخراج بیت کوین تحت شرایطی مانند ممنوعیت استخراج یا کاهش قیمت شدید بیت کوین اتفاق میافتد. این موضوع بیش از چند بار در سال اتفاق نمیافتد. در حقیقت هنگامی که به نمودار ۳ ساله سختی شبکه بیت کوین نگاه میکنید، متوجه میشوید که نمودار همواره روندی افزایشی داشته است و هر چه زمان پیش می رود سختی نیز افزایش مییابد.
همچنین لازم به ذکر است که نقطه حداکثری برای سختی استخراج بیت کوین وجود ندارد و این احتمال وجود دارد که این سختی تا زمانی که تمامی بیتکوینها در سال ۲۱۴۰ استخراج شوند، افزایش یابد. علاوه بر این، عامل سختی ماینینگ میتواند تا پیش از بلاکهای ۲,۰۱۶ رشد و افزایش گستردهای داشته باشد. افزایش ۱۵ درصدی سختی ماینینگ در بلاکچین بیت کوین امری غیر معمول نیست؛ اما چنین اتفاقی برای آن دسته از ماینرها که قادر به بروز رسانی دستگاهها و سخت افزار های خود نیستند امری ناراحت کننده است.
تنظیم سختی استخراج بیت کوین چطور انجام میشود؟
تنظیم سختی استخراج بیت کوین بر حسب مقایسه زمان استاندارد ازپیشتعیین شده برای تولید ۲۰۱۶ بلاک با زمان صرفشده برای تولید ۲۰۱۶ بلاک آخر زنجیره انجام میشود. به این نکته توجه داشته باشید که زمان تعیینشده برای تولید هر بلاک تقریبا ۱۰ دقیقه است و بنابراین زمان لازم برای تولید ۲۰۱۶ بلاک چیزی حدود ۲۰۱۶۰ دقیقه (۱۰*۲۰۱۶) میشود.
زمان لازم برای استخراج ۲۰۱۶ بلاک آخر توسط شبکه محاسبه میشود. سپس با استفاده از این فرمول: «زمان استاندارد برای تولید ۲۰۱۶ بلاک (۲۰۱۶۰ دقیقه) / زمان صرفشده برای تولید ۲۰۱۶ بلاک آخر زنجیره (آخرین دوره سختی) * آخرین سطح سختی) درصد تغییر سختی استخراج و رسیدن زمان تولید بلاک به ۱۰ دقیقه مشخص میشود.
با این اوصاف یک خطا در پروتکل اصلی بیت کوین ممکن است به جای ۲۰۱۶ بلاک، سختی را با توجه به ۲۰۱۵ بلاک قبلی تنظیم کند. اگرچه زمان هدف برای تولید بلاک ۱۰ دقیقه است؛ اما سختی استخراج را نمیتوان به بیش یا کمتر از چهار برابر سطح سختی فعلی تغییر داد. در هر دوره سختی، بیشینه تغییر تا ۳۰۰٪+ و حد پایینی ۷۵٪- است. این قانون برای جلوگیری از تغییر ناگهانی در سختی استخراج وضع شده است.
چرا سختی استخراج کم یا زیاد میشود؟
درجه سختی استخراج شبکه، یک پارامتر پویا است که دائما با توجه به شرایط شبکه تنظیم میشود. باید به این نکته توجه داشت که هدف از ماینینگ، کشف یا تولید یک بلاک جدید طبق برنامهنویسی شبکه است. بنابراین سختی شبکه نیز طبق همان سیستم تنظیم میشود. البته همه این موارد با توجه به قدرت هش شبکه در یک لحظه خاص سنجیده میشوند. هزینه برق و ارزش بیت کوین در بازار دو مولفه مهم و تاثیرگذار بر درجه سختی شبکه بیت کوین هستند. به عبارت دیگر قیمت یک کیلووات ساعت انرژی و ارزش بیت کوین به منظور پوشش هزینههای عملیاتی از موارد موثر بر سختی شبکه هستند.
زمانی که قیمت بیت کوین بالا باشد، ماینینگ سودآوری بیشتری دارد. بالعکس زمانی که قیمت بیت کوین کاهش پیدا میکند بسیاری از ماینرها به دلیل عدم تطابق هزینههای عملیاتی با سودآوری بیت کوین از شبکه خارج میشوند. بنابراین هنگامی که ماینینگ سودآور باشد، به خاطر اضافهشدن ماینرهای بیشتر به شبکه در وهله اول قدرت هش و سپس سختی استخراج شبکه بیشتر میشود. از طرف دیگر در زمان کاهش قیمت بیت کوین و عدم سودآوری ماینینگ، قدرت هش و تبعا سختی استخراج کاهش پیدا میکند.
پرسش و پاسخ (FAQ)
- سختی شبکه یا Network Difficulty چیست؟
سختی شبکه متغیری است که از آن به منظور ثابت نگه داشتن میانگین مدت زمان ایجاد بلاکها در بلاک چینهای گواه اثبات کار، استفاده میشود.
- سختی استخراج در بلاکچین بیت کوین چگونه تنظیم میشود؟
مدت زمان لازم برای ایجاد یک بلاک جدید در شبکه بیت کوین حدودا ۱۰ دقیقه است. شبکه بیت کوین برای ثابت نگه داشتن این مدت زمان سختی استخراج شبکه را هر ۲۰۱۶ بلاک یا تقریبا هر دو هفته یکبار تنظیم میکند.
جمع بندی
پروتکلهای برنامهنویسی و عملیاتی هر بلاکچین، تنظیمکننده سختی استخراج در شبکه هستند. سختی شبکههای بلاکچینی با توجه به میزان رقابت ماینرها در شبکههای مبتنی بر گواه اثبات کار، قیمت ارزهای دیجیتال، هزینه انرژی مصرفی و دستگاههای عملیاتی، تعیین میشوند. در این مقاله به این پرداختیم که سختی شبکه چیست، چگونه محاسبه میشود و چه عواملی بر آن تاثیرگذار است. به نظر شما با توجه به روند فعلی بیت کوین، سودآوری ماینینگ در آینده چگونه خواهد بود؟ آیا باید منتظر ثبت رکوردهای جدیدی برای سختی استخراج شبکه بیت کوین باشیم؟ نظرات خود را با ما در میان بگذارید.