به منظور اینکه بلاکهای بلاکچین بیتکوین تقریباً هر 10 دقیقه یکبار تولید (استخراج) شوند، یک سیستم خودکار وجود دارد که سختی استخراج شبکه را بسته به تعداد ماینرهایی که در شبکه مشغول هستند، تنظیم میکند. همانطور که از نام آن پیداست، سختی استخراج بیتکوین به درجه سختی کشف بلاکهای جدید بیتکوین از طریق مکانیزم استخراج اشاره دارد.
از آنجایی که شبکه بیتکوین کاملاً غیرمتمرکز است و توسط هیچ قدرت غالبی اداره نمیشود، از الگوریتمی که توسط خالق بیتکوین، ساتوشی ناکاموتو، کدنویسی شده، در این شبکه استفاده میشود. این الگوریتم دائماً سختی استخراج را مطابق با تعداد ماینرهایی که در شبکه مشغول به کار هستند تنظیم میکند تا اطمینان حاصل شود که بلاکها با سرعت ثابتی تولید میشوند.
در ادامه با فکت کوینز همراه باشید تا با مفهوم Mining Difficulty بیشتر آشنا شوید. در این مقاله، این مفهوم را به طور گسترده بررسی میکنیم و روش مورد استفاده برای تعیین و تنظیم سختی استخراج بیتکوین را به تفصیل شرح خواهیم.
پیش درآمدی بر استخراج بیتکوین
فرآیند استخراج بیتکوین برای امنیت و اعتبار شبکه بیتکوین و ارز دیجیتال اصلی آن (BTC) حیاتی است. استخراج در هسته مرکزی سیستم اجماع بیتکوین قرار دارد. کار سیستم اجماع به این صورت است که همه ماینرها باید بر سر دادههای جدید وارد شده (تراکنشها) به اجماع برسند. این شبکه کاملاً متکی به یک فرآیند اعتبار سنجی غیرمتمرکز (اعتبارسنجی تراکنش) است که به موجب آن هر کسی در جهان میتواند مسئولیت اعتبارسنجی تراکنشهای جدید و اضافه کردن آنها به بلاکهای بلاک چین را به عهده بگیرد.
ایده این است که با وادار کردن اعتبارسنجها به مصرف برق برای کشف بلاکهای جدید، بازیگران مخرب شبکه از مشارکت در شبکه و تلاش برای اخلال ایجاد کردن در بلاکچین با تراکنشهای نامعتبر منصرف شوند. ماینرها در سالهای قبل برای افزایش شانس برنده شدنشان، به استفاده از تجهیزات محاسباتی تخصصی به نام آسیک (ASIC) روی میآوردند که قادر به تولید بیش از یک کوینتیلیون کد تصادفی در ثانیه بود.
چرا Mining Difficulty بیت کوین مهم است؟
الگوریتم سختی بیتکوین به گونهای برنامه ریزی شده که با تولید بلاک جدید در هر 10 دقیقه، سیستم را سرپا نگه میدارد. به عبارتی دیگر، تقریباً 10 دقیقه طول میکشد تا یکی از ماینرهای کل شبکه یک کد برنده تولید کند و حق اضافه کردن یک بلاک جدید به بلاک چین را به دست بیاورد.
برای ثابت نگه داشتن این زمانبندی است که الگوریتم، سختی استخراج بیتکوین را افزایش یا کاهش میدهد. هر زمان که تعدادی ماینرهای شبکه افزایش پیدا کند، سختی استخراج بیت کوین نیز افزایش پیدا میکند و برعکس، یعنی اگر بعضی از ماینرها تجهیزات خود را خاموش کنند و تعداد ماینرهای فعال کاهش یابد پروتکل به طور خودکار سختی استخراج را کاهش میدهد تا کشف بلاک جدید را برای ماینرهای باقیمانده آسانتر کند. سختی استخراج شبکه با افزودن یا کم کردن از صفرهای جلوی هش هدف (Target Hash) تغییر میکند.
هش هدف به یک هش خاص گفته میشود که همه ماینرها سعی در شکستن آن دارند. هر کسی که یک کد تصادفی تولید کند که تعداد صفرهای آن برابر یا بیشتر از هش هدف باشد، به عنوان برنده انتخاب میشود.
بدون وجود چنین سیستمی، وقتی شمار ماینرهای با تجهیزات پیشرفتهتر در شبکه افزایش پیدا کند، بلاکها با سرعتی بیش از اندازه کشف میشوند. این امر منجر به تولید BTC با سرعتی غیرقابل پیشبینی میشود و مانع از افزایش بهای آن در درازمدت خواهد شد. علت اصلی آن هم این است که کمیابی بیت کوین کاهش پیدا میکند.
ضمناً، بخش بزرگی از جذابیت بیتکوین نرخ تورم ثابت و قابل پیشبینی آن در مقایسه با تورم غیرقابل پیشبینی و افسارگسیخته ارزهای فیات است که به دلیل چاپ گسترده پول ایجاد میشود. این که سقف عرضه بیتکوین 21 میلیون واحد است، به این معنی است که این دارایی دیجیتال نسبتاً کمیاب است. این عوامل در تئوری باید به افزایش بهای بیتکوین در طول زمان کمک کنند، البته با فرض اینکه تقاضا همچنان بالا باشد.
سختی استخراج هر چند وقت یکبار تنظیم میشود؟
سختی استخراج بیت کوین هر 2016 بلاک (یا تقریباً هر دو هفته) به روز میشود. به همین دلیل است که هر 2016 بلاک، یک دوره سختی (difficulty epoch) نامیده میشود؛ و شبکه تعیین میکند که آیا فعالیت ماینرها در دو هفته اخیر زمان استخراج بلاک جدید را کاهش داده یا افزایش داده است.
اگر زمان آن کمتر از 10 دقیقه باشد، Mining Difficulty افزایش مییابد. برعکس آن زمانی اتفاق میافتد که زمان بلاک بالای 10 دقیقه باشد.
سختی استخراج بیتکوین چگونه محاسبه میشود؟
سختی استخراج بیت کوین با فرمولهای مختلفی محاسبه میشود. با این حال، رایجترین آنها این است:
هدف فعلی/سختی هدف = سطح سختی.
Difficulty Level) = Difficulty Target/Current Target)
Difficulty Target یا «سختی هدف» یک عدد هگزا دسیمال از هش هدف (Target Hash) است که سختی استخراج آن 1 است. در مقابل، current target یا «هدف فعلی» هش هدفِ آخرین بلاک شبکه است. وقتی این دو عدد بر هم تقسیم میشوند، یک عدد کامل به دست میآید که همان سطح Mining Difficulty بیت کوین است.
به عنوان مثال، اگر پاسخ 24 تریلیون باشد، انتظار میرود که یک ماینر قبل از اینکه بتواند هش برنده را پیدا کند، تقریباً 24 تریلیون هش تولید کند. البته، گاهی اوقات ماینرها ممکن است خوش شانس باشند و با حدسهای بسیار کمتری هش برنده را پیدا کنند.
نحوه تنظیم Mining Difficulty بیت کوین
تنظیم Mining Difficulty با مقایسه زمان استانداردی که برای یافتن 2016 بلاک در شبکه بیت کوین باید طول بکشد با زمانی که برای یافتن 2016 بلاک آخر طول کشید انجام میشود. در نظر داشته باشید که زمان بلاک مورد قبول 10 دقیقه است. پس زمان مورد انتظار برای استخراج 2016 بلاک 20160 دقیقه (یعنی 2016 ضرب در 10 دقیقه) است.
شبکه کل زمانی که برای استخراج 2016 بلاک آخر لازم است را محاسبه میکند. سپس 20160 دقیقه استاندارد را بر این عدد تقسیم کرده و در آخرین «سطح سختی» ضرب میکند. نتیجه این فرمول درصد تغییر مورد نیاز در سطح Mining Difficulty است که زمان بلاک را به 10 دقیقه مورد نظر میرساند.
با این حال، یک خطا در پروتکل بیتکوین وجود دارد که سطح سختی را به جای 2016 بلاک، بر اساس 2015 بلاک قبلی تنظیم میکند.
در حالی که زمان بلاک 10 دقیقهای هدف شبکه است، سختی استخراج را نمیتوان بیشتر یا کمتر از چهار برابر سطح سختی فعلی تغییر داد. حد بالایی برای هر دوره سختی بیشتر از %300+ و حد پایین آن %75- است. این قانون برای حذف هرگونه تغییر ناگهانی در سختی استخراج وضع شده است. امیدواریم با مطالعه این مقاله از فکت کوینز همه ابهامات در رابطه با Mining Difficulty رفع شده باشد. نظرات و پیشنهادتان را برای ما کامنت کنید.
به زبان ساده سختی استخراج به درجه سختی کشف بلاکهای جدید یک ارز از طریق مکانیزم استخراج گفته میشود.
HASHING به استفاده از ریاضیات برای تبدیل یک ورودی به یک خروجی ثابت رمزنگاری شده گفته میشود.
سختی استخراج بیتکوین هر 2016 بلاک (یا تقریباً هر دو هفته) به روز میشود.