بیتکوین، ارز دیجیتال پیشگامی که جرقه یک انقلاب جهانی در امور مالی دیجیتال را زد، بر روی یک شبکه غیرمتمرکز با فناوری به نام بلاکچین کار میکند. این سیستم نوآورانه به شبکهای از ماینرها برای اعتبارسنجی تراکنشها و ایمنسازی یکپارچگی فناوری بلاک چین متکی است. در قلب این فرایند مفهوم ماینینگ قرار دارد، جایی که منابع محاسباتی قدرتمند برای انجام عملیاتهای پردازشی سنگین برای افزودن بلاکهای جدید به بلاکچین استفاده میشود. ماینرها در ازای اعتبارسنجی تراکنشها و ایمنسازی شبکه، پاداشی از جنس بیتکوینهای تازه استخراج شده دریافت میکنند.
اما آیا پیشرفت دستگاههای سختافزاری، باعث نمیشود بلاکها سریعتر از قبل استخراج شوند؟ و با توجه به محدودیت عرضه رمزارز بیتکوین، آیا این موضوع منجر به استخراج تمام ارزهای آن در کوتاهترین زمان ممکن نمیشود؟ برای مقابله با این چالش چه راهکاری وجود دارد؟ در این مقاله به مفهوم سختی شبکه میپردازیم و این سوالات را پاسخ میدهیم.
بیشتر بخوانید: بیت کوین چیست و چگونه کار میکند؟
سرعت استخراج یا تولید بلاک در بلاکچینهای مبتنی بر الگوریتم اثبات کار (PoW) تقریبا در یک محدوده ثابت است. به این معنا که هرچه قدرت پردازشی ماینرها افزایش یابد، زمان استخراج هر بلاک نباید تغییر کند. به عبارت دیگر شبکه در برابر افزایش قدرت پردازشی، یک سیستم مقاومت و سختی دارد که مانع استخراج سریعتر بلاکها میشود. به این سیستم مقاومتی، سختی شبکه میگویند. در واقع سختی شبکه یک تابع کنترلکننده برای ثابت نگه داشتن میانگین زمان برای استخراج یک بلاک است.
حال بیایید به طور ویژه به سختی شبکه در بیتکوین بپردازیم. در بیتکوین، بلاکها تقریبا هر ده دقیقه توسط یک ماینر ساخته شده و به شبکه اضافه میشود و ماینر در ازای آن پاداش دریافت میکند. بهتر است ابتدا به طور خلاصه با فرایند ماین یا همان استخراج آشنا شویم.
فرایند استخراج که به منظور ساخت بلاک جدید توسط ماینرها انجام میشود، شامل حدس یک عدد خاص به نام عدد نانس (Nonce) میباشد. این عدد یکی از اجزای تشکیلدهنده هر بلاک است که مقدار آن تا پیش از استخراج بلاک مشخص نیست. سوال اینجاست که ماینرها چه عددی را باید پیدا کنند؟ و از کجا متوجه میشوند که عدد درست را یافتهاند؟
هر بلاک، هش منحصر به فرد خود را دارد که به صورت یک رشته حروف و عدد تصادفی با طول ثابت است. این رشته، حاصل هش تمام دادههای بلاک توسط تابع SHA-256 میباشد. زمانی یک بلاک تولید میشود که هش محتوای آن بلاک (به بیان دقیقتر هش هدر آن بلاک) از هش هدف شبکه مساوی یا کوچکتر باشد. هش هدف، هشی است که توسط شبکه تعیین میشود و برای تنظیم سختی تولید یک بلاک استفاده میشود.
هر چه تعداد صفرهای ابتدایی هش هدف بیشتر باشد، هدش هدف کوچکتر خواهد بود و این مساله سختی تولید یک بلاک را افزایش میدهد.
در واقع در فرایند استخراج، ماینر اعداد مختلفی را حدس میزند، آنها را در جایگاه عدد نانس در بلاک قرار میدهد و سپس بلاک را با استفاده از تابع SHA-256، هش میکند. اگر هش به دست آمده از هش هدف کوچکتر یا مساوی باشد، ماینر حق تولید بلاک و دریافت پاداش آن را به دست میآورد.
برای درک اهمیت سختی شبکه در بیتکوین، بیایید تصور کنیم که اگر چنین سیستمی وجود نداشت، چه اتفاقی میافتاد. با ثابت بودن سطح سختی استخراج هر بلاک و با توجه به افزایش هشریت و قدرت پردازشی شبکه در طول زمان، میتوان به سادگی نتیجه گرفت که بلاکها در زمانهای کمتری استخراج و تولید میشدند؛ تا جایی که ممکن بود حتی در چند ثانیه یک بلاک تولید شود. این مساله تورم کنترل نشده نیز به وجود میآورد؛ چراکه در هر بلاک، مقدار ثابتی از ارز دیجیتال بومی شبکه تولید میشود.
اما مهمتر از آن، شبکه حتی دوام نمیآورد و بهراحتی از بین میرفت. دلیل آن این است که در ابتدای خلق بیتکوین، هرکسی به راحتی و بدون هیچگونه هزینه پردازشی سنگینی میتوانست بیتکوین ماین کند. اگر سختی شبکه وجود نداشت هرکسی بهراحتی با استفاده از قدرت پردازشی بسیار قویتر میتوانست کنترل شبکه را به دست بگیرد و آن را در جهت خواستههای خود تغییر دهد. زیرا قدرت پردازشی قویتر شانس استخراج بلاک را افزایش میداد. اما سیستم تنظیم سختی شبکه میتواند مانع اینچنین اتفاقاتی شود.
اگر تعداد ماینرهای زیادی به شبکه بپیوندند یا ماینرها از تجهیزات ماینینگ قویتری استفاده کنند، هش ریت شبکه افزایش مییابد. این بدان معناست که ماینرها قادر هستند تعداد حدسهای بیشتری در واحد زمان بزنند. این مساله سبب میشود تا زودتر عدد صحیح نانس را پیدا کنند و یک بلاک از زمان تعیین شده و ثابت خود زودتر تولید شود. به همین منظور، شبکه دارای یک سیستم مقاومتی تحت عنوان سختی شبکه (Difficulty) میباشند. حال این سیستم چگونه میتواند میانگین زمان استخراج هر بلاک را حدود ده دقیقه نگه دارد؟
سختی شبکه در بیتکوین هر 2,016 بلاک محاسبه میشود. یعنی شبکه بعد از ثبت 2,016 بلاک متوالی (که حدودا دو هفته طول میکشد)، مجموع زمان سپریشده را محاسبه کرده و براساس آن سختی شبکه را تنظیم میکند. ساتوشی ناکاموتو، خالق بیتکوین، زمان ثبت هر بلاک را ده دقیقه تعیین کرده است. در نتیجه، مجموع دقایق ثبتشده برای این تعداد بلاک باید 20,160 دقیقه باشد.
اگر مجموع دقایق به دست آمده پس از گذشت 2016 بلاک بیشتر از 20,160 دقیقه باشد، به این معناست که قدرت پردازشی شبکه کاهش یافته است. از همین رو، ماینرها نتوانستهاند در میانگین زمان ده دقیقه بلاک را استخراج کنند.
در مقابل، اگر مجموع دقایق کمتر از 20,160 شود، به معنای افزایش قدرت پردازشی شبکه است و بلاکها به طور میانگین در کمتر از ده دقیقه تولید شدهاند. در نتیجه، بلاکچین، استخراج بلاکها را سختتر میکند تا میانگین زمان استخراج بلاک به همان ده دقیقه برگردد.
فناوری بلاک چین برای افزایش یا کاهش سختی شبکه، تعداد صفرهای ابتدای هش هدف را کم و زیاد میکند.
سختی شبکه بیتکوین در یک دوره افزایش و ممکن است در دوره بعدی آن کاهش یا مجددا افزایش یابد. اما از دیدگاه جامعتر، نمودار آن از زمان راهاندازی بیتکوین به صورت صعودی افزایش داشته است.
تصویر فوق نمودار سختی شبکه بیتکوین از 3 ژانویه 2009 تا 10 فوریه 2024 را نشان میدهد. این رشد بیانگر افزایش کلی سختی شبکه در نتیجه افزایش قدرت پردازشی ماینرها برای حفظ میانگین زمان استخراج است.
سختی شبکه یکی از اجزای کوچک در ساختار شبکه بزرگ بیتکوین است. اما در این مقاله آموختیم که این تکه کوچک چه تاثیر قابلتوجهی در شکلگیری بیتکوینی که ما میشناسیم، داشته است. بیتکوین دنیایی از همین اجزای کوچک است که هر کدام از آنها تاثیر بهسزایی در خلق چنین نوآوری مهمی داشتهاند و همین موضوع دقت و زیبایی کار ساتوشی ناکاموتو را نمایش میدهد.
امیدوارم این مقاله برای شما مفید بوده باشد. خوانندگان عزیز بلاکپُست میتوانند نظرات و سوالات خودشان را در مورد مطالب منتشر شده با ما به اشتراک بگذارند.
تقریبا در سال 98 با ارزهای دیجیتال آشنا شدم و تنها چیزی که ازش میدونستم فقط ترید بود؛ تقریبا مثل همه کسایی که برای اولین بار با این حوزه آشنا میشن. اما هرچه بیشتر تو ...