من اینجا هستم تا شما رو با دنیای بلاک چین و رمزارزها آشنا کنم.جدیدترین مطالب رو در سایت ما finmag.ir بخونید.
سختی شبکه یا سختی استخراج (mining difficulty) چیست؟
اگر پیگیر رویدادهای دنیای رمز ارز باشید احتمالا شنیدهاید که میگویند ماینرها مجبورند مدام از سختافزارهای قویتری استفاده کنند تا سختی استخراج آنها را از دور خارج نکند. در دنیای کریپتو، سختی (difficulty) یک واحد است که نشان میدهد پیدا کردن یک هش در مدت مورد نظر چقدر دشوار است. این سختی در شبکه بیت کوین و هر رمز ارزی که به شیوه اثبات کار استخراج شود اهمیت دارد. در اینجا به صورت مختصر اما مفید با پدیده سختی ماینینگ آشنا میشویم. اگر از جمله دوستداران حوزه رمز ارز هستید با ما همراه شوید تا با این شاخص و تاثیرات آن آشنا شوید.
ابتدا برویم سراغ تعریف سختی استخراج یا سختی شبکه (mining difficulty). سختی عددی است که مشخص میکند چقدر زمان میبرد تا ماینرها یک بلاک جدید حاوی تراکنش را به بلاک چین اضافه کنند.
هرکسی که رویای استخراج بیت کوین یا رمز ارز دیگری را در سر میپروراند ابتدا باید از یک دوران آموزشی مقدماتی گذر کند. یک جنبه از استخراج رمز ارز، «سختی» انجام ماینینگ در هر زمان مشخص است. این سختی ماهیت کار استخراج را تغییر نمیدهد (برای استخراج رمز ارز همواره به سختافزار، نرمافزار، برق و یک ابزار ماینینگ نیاز دارید)؛ آنچه تغییر میکند دشواری و پیچیدگی کارها در دل ساز و کار است که ما آن را نمیبینیم.
اکنون باید ببینیم این سختی ماینینگ نتیجه چیست. چند فاکتور در آن نقش دارند. پیش از همه سختی جهانی بلاک؛ ایجاد هش از بلاکهای معتبر باید در زمانی کمتر از سختی جهانی بلاک اتفاق بیفتد. فاکتور دوم شمار افرادی است که در شبکه سرگرم استخراج هستند. فاکتور سوم که میتواند وجود داشته باشد، «سختی مشترک» در استخرهای استخراج است که آنها برای رمز ارزهای گوناگون تعریف میکنند.
میزان این سختی هر 2 هفته یکبار آپدیت میشود و باعث میشود افزودن بلاک تازه به بلاک چین به طور میانگین 10 دقیقه طول بکشد.
اهمیت سختی استخراج در چیست؟
اهمیت وجود سختی ماینینگ در آن است که باعث میشود حتی با پیوستن ماینرهای بیشتر به شبکه، بلاکهای حاوی تراکنش با وقفههای یکنواخت به بلاک چین افزوده شوند.(برای اطلاع از فرآیند هشینگ اینجا کلیک کنید)
اگر سختی بیتغییر بماند، زمان افزوده شدن بلاکهای جدید به بلاک چین کمتر میشود زیرا شمار ماینرهای شبکه در حال افزایش است. با بالا رفتن سختی، ماینرها به توان سختافزاری بیشتری نیاز پیدا میکنند تا بتوانند در همان سطح به استخراج ادامه دهند. به همین خاطر بود که سالها پیش CPU، GPU و FPGA کارایی خود را برای استخراج از دست دادند و دستگاههای نیرومندASIC جایگزین آنها شدند.
خوب است بدانیم که سختی ماینینگ در بیت کوین هیچ سقفی ندارد. این سختی میتواند همچنان بالا برود تا جایی که همه بیت کوین ها استخراج شوند؛ اتفاقی که پیشبینی شده در سال 2140 رخ دهد. از سوی دیگر، فاکتور سختی میتواند در مقایسه با 2,016 بلاکی که تا کنون ایجاد شده جهشهای بسیار بزرگتری پیدا کند. در دنیای بیت کوین افزایش 15 درصدی سختی چیز عجیبی نیست ولی برای آن دسته از ماینرهایی که نمیتوانند یا نمیخواهند سختافزارهای استخراج خود را قویتر کنند اهمیت زیادی دارد.
سختی ماینینگ در بیت کوین میتواند پایین هم برود ولی بعید است چنین چیزی بیش از دو بار در سال رخ دهد. اگر به نمودار چند وقت اخیر آن نگاه کنیم متوجه میشویم که سختی مدام به سمت رشد گرایش داشته و دارد. از 11 جولای 2015 تا کنون، سختی ماینینگ بیت کوین تنها در 5 مورد دچار کاهش شده است.
هرکسی که میخواهد در دنیای ماینینگ سرمایه گذاری کند (چه در بیت کوین یا هر رمز ارز دیگر) باید حتما با مفهوم سختی استخراج آشنا باشد و آن را در نظر بگیرد. با گذشت زمان و شکلگیری بلاکهای بیشتر در شبکه و مشارکت ماینرهای بیشتر در تامین توان هش (هش پاور) شبکه، درآمدزایی از ماینینگ کمتر خواهد شد. نخستین گروهی که به سراغ یک رمز ارز جدید میروند معمولا در آغاز راه که میزان سختی ماینینگ کم است کوینهای زیادی استخراج میکنند. نکته مهم اینجاست که همواره چارتها را چک کنیم و ببینیم چه زمانی استخراج یک رمز ارز دیگر سودآور نخواهد بود.
سختی استخراج چه زمانی تغییر میکند؟
میزان سختی، هر 2016 بلاک یکبار تنظیم میشود که حدودا برابر با دو هفته است.
در این بازههای زمانی، هر گره، زمان پیشبینی شده برای استخراج 2016 بلاک (دقیقه 2016 x 10 ) را تقسیم بر زمان حقیقی استخراج آن (دقیقه) میکند:
زمان حقیقی/ زمان پیشبینی شده
زمان حقیقی / 20160
اگر ماینرها بتوانند مسائل هر بلاک را سریعتر از زمان پیشبینی شده حل کنند، مثلا در مدت 9 دقیقه برای هر بلاک، آنگاه به چنین نتیجهای میرسند:
1.11=20160/18144
سپس هر گره از این عدد برای تنظیم سختی 2016 بلاک بعدی استفاده میکند:
سختی جدید =سختی * 1.11
- اگر عدد به دست آمده بزرگتر از 1 باشد (یعنی بلاکها زودتر از زمان پیشبینی شده استخراج شده باشند) آنگاه سختی افزایش مییابد.
- اگر عدد به دست آمده کوچکتر از 1 باشد (یعنی بلاکها دیرتر از زمان پیشبینی شده استخراج شده باشند) آنگاه سختی کاهش مییابد.
به این ترتیب میزان سختی ماینینگ مشخص میشود. اکنون همه ماینرها در شبکه بیت کوین، این سختی جدید را برای 2016 بلاک بعدی در نظر میگیرند.
فاکتور تنظیم کننده سختی در بالاترین حالت 4 است، یعنی رقم آن از 4 بیشتر نیست و از 0.25 کمتر نمیباشد. دلیل این امر جلوگیری از بروز تغییرات شدید در سختی و پیشگیری از فاصله زیاد سختی جدید نسبت به سختی قبل از خود است.
سختی چگونه زمان بین بلاکها را کنترل میکند؟
برای درک این مساله از یک نمونه ساده استفاده میکنیم.
- نمونه ساده
فرض کنید من یک دامنه عددی در اختیار شما میگذارم که از 1 تا 100 است.
اکنون شما میتوانید هر یک دقیقه یکبار به صورت رندوم یک عدد بین 1 و 100 انتخاب کنید. هدف شما این است که عددی کمتر از رقم مورد نظر بیابید.
فرض کنیم رقم مورد نظر که همان سقف ما است 50 باشد:
از آنجایی که شما هر یک دقیقه میتوانید یک عدد انتخاب کنید و دامنه انتخاب هم 100 – 1 است، پس انتخاب عدد کوچکتر از سقف 50 برای شما 2 دقیقه طول میکشد.
این سادهترین حالت بود. اگر من میزان سقف را پایین بیاورم و به 20 برسانم آنگاه از هر 5 انتخابِ شما تنها 1 عدد درست خواهد بود بنابراین هر 5 دقیقه میتوانید عدد کمتر از 20 ارائه کنید.
به این ترتیب هرچه سقف کمتر باشد، دادن عدد درست سختتر خواهد بود.
البته همانطور که با خود اندیشیدهاید ممکن است دادن عدد درستِ کمتر از 20 به اندازه 5 دقیقه طول نکشد چون ممکن است انتخاب نخست شما شانسی درست از آب دربیاید (کمتر از 10 باشد). ولی اگر این روند ادامه پیدا کند به طور معمول رسیدن به عدد درست با وقفههای 5 دقیقهای همراه خواهد بود.
آشنایی با سختی
فرض کنید من یک کامپیوتر هستم و به جای اینکه سقف را مستقیم به شما بگویم، برایم راحتتر است که یک عدد به شما بدهم تا دامنه خود را بر آن تقسیم کنید و به سقف برسید. عددی که به شما میدهم یک عدد جدید است.
این عدد جدید بلندی سقف را کنترل میکند. این عدد جدید همان سختی است و روش سادهای برای تنظیم بلندی سقف محسوب میشود.
اندازه سقف با این روش به دست میآید:
سقف = سختی / ماکزیمم سقف
از سوی دیگر، من به کمک مقدار سختی میتوانم سقف را در هر سطحی که میخواهم قرار دهم:
روشن است که هرچه سختی بیشتر باشد، سقف پایینتر خواهد بود.
بنابراین در اینجا از سختی برای کنترل سقف استفاده کردیم و در نتیجه مدت زمان رسیدن به عدد درست را هم کنترل نمودیم.
- نمونه بیت کوین
سختی در بیت کوین درست به همین صورت کار میکند. از سختی برای تنظیم رقم سقف استفاده میشود و ماینرها به امید یافتن عدد پایینتر از رقم سقف پیوسته عدد ایجاد میکنند (بلاکهای برگزیده خود را هش میکنند).
از آنجایی که ماینرها میتوانند در هر دقیقه هزاران عدد (مقدار هش) تولید کنند، بیت کوین مجبور است از ماکزیممهای دیوانهوار استفاده کند؛ مانند:
به همین خاطر عددهای موجود در بیت کوین مقیاس بسیار بزرگی دارند.
با توجه به اینکه هزاران ماینر در تلاش برای یافتن عددهای درست هستند، برای اینکه کاری کنیم تا عدد درست هر 10 دقیقه یکبار پیدا شود (به جای هر چند ثانیه)، سقف بسیار اندک در نظر گرفته شده تا بازه عددهای درست بسیار کوچک باشد:
..............................
مطلبی دیگر از این انتشارات
چگونه مهندس داده (Data Engineer) شویم؟ بخش اول
مطلبی دیگر از این انتشارات
Data Drivenروی بورس
مطلبی دیگر از این انتشارات
Big Data