ماینینگ مقالات

سختی شبکه (Difficulty) چیست؟

mining-difficulty
نوشته شده توسط kazem

سختی شبکه

برای ساخت بلوک بیت کوین ماینرها باید یک مسئله ریاضی پیچیده را حل نمایند. سختی شبکه بیت کوین عبارت است از مقدار دشواری این مسئله. در این مقاله ابتدا تعریف ساده‌ای از این کمیت ارائه می‌دهیم و سپس تعریف فنی آن را بیان می کنیم و در انتها تغییرات سختی را بررسی می‌نماییم.

تعریف ساده

تعریف ساده سختی شبکه بیت کوین عبارت است از پیدا کردن بلوک به این صورت که هش سرنویس بلوک، تعداد صفر دلخواهی را در ابتدای خود داشته باشد.

همچنین بخوانید: توضیح سختیِ شبکه (دیفیکالتی)

مثلاً الان باید ۲۴ صفر در ابتدای هش وجود داشته باشد. مثالی که این موضوع را روشن سازد این است که فرض کنید طاسهایی ۱۶ وجهی داریم و می خواهیم ۲۴ عدد از این طاس را با هم بیاندازیم. سختی شبکه کنونی بیت کوین یعنی ما می‌خواهیم هر ۲۴ طاس باهم شش بیایند.

تعریف فنی

برای تعریف فنی سختی شبکه ابتدا باید نحوه نگارش عدد هدف را بیاموزیم:

اعداد هدف را با فرمت 0x0403a30c می‌نویسند. در این نوع نگارش

  • شش رقم اول را جدا می‌کنیم که عددی در مبنای شانزده است.
  • دو رقم بعدی تعداد بایت‌های این عدد را نشان می‌دهد. هر دو رقم در مبنای شانزده یک بایت است و شش رقم را داریم پس سه را از عدد کم می کنیم و دوبرابر تعداد آن، صفر روبروی عدد می‌گذاریم.
  • مثلاً 0x0403a30c می‌شود ۰۳a30c00000000 دقت کنید که این عدد در مبنای شانزده نوشته می‌شود. البته این عدد به صورت یک عدد ۶۴ رقمی نوشته می‌شود و باید به تعداد کافی قبل از آن صفر بگذاریم. مثلاً این عدد به ۵۰ صفر قبل خود نیاز دارد.

عدد هش سرنویس بلوک باید از این عدد کوچکتر باشد. یعنی هرچقدر این عدد کوچکتر باشد پیدا کردن بلوک سخت‌تر می‌شود. مثلاً عدد هدف کنونی شبکه بیت کوین 0x173218a5 است و هش سرنویس بلوک‌های بیت کوین باید از این مقدار کمتر باشد.

برای سادگی، این مقدار به این صورت گرد می‌شود که بزرگترین عددی که تعداد ارقامش یکی باشد نوشته می‌شود یعنی مثال قبل به صورت 0FFFFFFFFFFFFF نوشته می‌شود. به این نوع نوشتن سختی استخری (Pool Difficulty) گفته می‌شود و با Pdif نشان داده می‌شود.

تعریف دقیق سختی شبکه:

Difficulty

Difficulty= سختی شبکه

difficulty_1_target= یک عدد ثابت و برابر با اولین عدد هدفی که ساتوشی انتخاب کرد است. مقدار آن برابر 0X1d00ffff است.

current_target= عدد هدف کنونی

مثلاً سختی شبکه یک یعنی همان سختی شبکه‌ای که در ابتدا قرار داده شده بود. و سختی شبکه ۱۰۰۰ یعنی عدد هدف هزار برابر عدد هدف اولیه شده است. سختی شبکه در سال 2019 به شرح شکل زیر است.

Difficulty

تغییر سختی

عدد هدف هر ۲۰۱۶ بلوک تغییر می‌کند یعنی تقریباً هر دو هفته. میانگین زمان طول کشیده این مقدار بلوک محاسبه می‌شود و با زمان میانگین مطلوب که ده دقیقه است مقایسه می‌گردد و به صورت ضریبی در هدف قبلی ضرب می‌شود. به این صورت سختی شبکه هم تغییر می‌کند و همچنین امکان پایین آمدن سختی شبکه نیز وجود دارد.

مقدار این تغییر ماکسیمم و مینیمم دارد. حداکثر چهار برابر و حداقل آن یک‌چهارم است. این کار برای جلوگیری از تغییرات شدید در شبکه است. در نمودارهای زیر تغییرات سختی شبکه بیت کوین را در شش ماه و ده سال گذشته می بینید:

Difficulty-bitcoin Difficulty

رابطه با هش‌ریت کل شبکه

قدرت کلی پردازش شبکه یعنی چند هش در هر ثانیه ساخته می‌شود. به این قدرت هش‌ریت شبکه گفته می‌شود. با بالا رفتن هش‌ریت شبکه زمان لازم برای یافتن هر بلوک کمتر شده و سختی بیشتر می‌گردد و از طرفی در صورت کم شدن ماینرها و پایین آمدن هش‌ریت شبکه سختی کم می‌شود.

مدت زمان لازم برای پیدا کردن یک بلوک با دستگاه ماینینگ خودتان چقدر است؟

برای یافتن این زمان می توان از فرمول زیر استفاده کرد:

با این فرمول می‌توان مدت زمان مورد انتطار برحسب ساعت برای حل یک بلوک بیتکوین و گرفتن جایزه آن را محاسبه کرد. دقت کنید که این فرمول احتمالی است و تنها احتمال زیاد برای این مدت زمان را نشان می‌دهد. مثلاً ببینیم با یک دستگاه S9 چقدر طول می‌کشد که یک بلوک را حل کنیم (دقت کنید که این حالت در صورت ماینینگ به تنهایی است و با حالت معمول و استفاده از استخرهای ماینینگ تفاوت دارد). با فرض سختی شبکه ۵,۶۱۸,۵۹۵,۸۴۸,۸۵۳ و قدرت ۱۳.۵ تراهش برای دستگاه S9 تقریباً ۴۹۶۶۶۰ ساعت می‌شود که برابر ۵۶ سال است!

درباره نویسنده

kazem

xan
Student of pure mathematics
Interested in the technology of the day and cyberspace

نظر بدهید