سختی شبکه بیتکوین چطور تنظیم میشه؟

سختی شبکه وظیفش اینه که میانگین زمان ایجاد بلاک رو روی 10 دقیقه نگه داره. تقریبا هر دو هفته یک بار سختی شبکه دوباره تنظیم میشه. چرا هر دو هفته؟

چون سورس کد بیتکوین اینجوری نوشته شده که بعد از ایجاد 2016 بلاک بیا و سختی شبکه رو دوباره محاسبه کن. حالا چون ایجاد هر بلاک حدود 10 دقیقه طول میکشه:

2016 * 10 = 20160 دقیقه
20160 / 60 / 24 = 14 روز

یعنی ایجاد 2016 بلاک 14 روز (دو هفته) زمان میبره.

حالا وقتی یک چرخه تموم میشه و به بلاک 2016ام میرسیم شبکه بررسی میکنه که این 2015 بلاک قبلی چقدر تولیدشون طول کشیده. اگر بیشتر از 14 روز باشه یعنی توان پردازشی شبکه پایین اومده و سختی باید کاهش پیدا کنه و برعکس اگر کمتر از 14 روز طول کشیده یعنی ماینر ها قوی تر شدن پس سختی رو افزایش میده.

فرمول محاسبه ی سختی :

سختی قبلی x
14 روز /
زمان تولید 2015 بلاک قبلی

سختی شبکه از 1 شروع میشه و هیچوقت کمتر از اون نمیشه.

حالا به عنوان مثال سختی قبلی اگر 5 باشه و تولید 2015 بلاک قبلی 16 روز طول کشیده باشه:

5 * 14 / 16 = 4.375

سختی جدید کمتر از سختی قبلیه چون تولید بلاک ها بیشتر از 14 روز طول کشیده (که نباید طول بکشه).


این محاسبات رو چه کسی و کجا انجام میده؟

شما وقتی نرم افزار Bitcoin Client رو نصب میکنین و یعنی با انجام این کار قصد ایفای نقش node در شبکه رو دارین باید یک سری قوانین رو بپذیرین و تنظیم سختی شبکه یکی از این قوانینه.

تمامی این محاسبات به صورت خودکار و توسط سیستم هایی که نقش node رو در شبکه دارن انجام میشه. اینجوری نیست که مثلا یک متغیر کلی در شبکه وجود داشته باشه و همه نود ها از اون متغیر بخونن بلکه هر نود به صورت جداگانه سختی رو محاسبه میکنه و به عنوان قانون رعایت میکنه.

حالا اگر نودی بخواد تقلب کنه و بلاک هایی با سختی کمتر از چیزی که مورد قبول شبکه هست تولید کنه بلاک هاش توسط شبکه رد میشه.