در این مقاله به این که محاسبات ماینینگ از نظر ریاضیات چگونه انجام میشود، چرا و چگونه تعداد بیتکوینها محدود به ۲۱ میلیون شده و سختی شبکه چگونه محاسبه میشود میپردازیم و توضیح خواهیم داد که دانستن این اطلاعات چرا مهم بوده و چه استفادهای میتوان از آنها کرد.
مقدار کار مورد نیاز
کمترین فاکتورهای مورد نیاز برای تأیید بلاک بیتکوین، به شکل تغییر ناپذیر در کد منبع آن نوشته شده است؛ مثلاً اینکه تعداد هشهای مورد نیاز که برای حل کردن یک بلاک انتظار میرود، 232 هش است. ریگهای ماینینگ فعلی در این مقیاس، عملکردی حدود 244 −245 هش بر ثانیه دارند؛ این در حالیست که کل شبکه معادل 263 هش بر ثانیه قدرت دارد. آستانهی تأیید تراکنش به شکل منظمی توسط شبکه بازبینی میشود و مثلاً به طور تقریبی 10 دقیقه زمان میبرد تا با جستجو از تمام ماینرها، یک بلاک مورد تأیید واقع شود که این همان Block Time(زمان بلاک) برای بیتکوین است. سختی شبکه (دیفیکالتی) فعلی برای حل کردن بلاک، به شکل فاکتوری از حداقل سختی شبکه (دیفیکالتی) غیرقابل تغییر بیان میشود. در واقع کار پیشبینی شده در یک سختی شبکه (دیفیکالتی) در سطح D برابر است با:
D * 232 h/s
دریافت سختی شبکه (دیفیکالتی) از زنجیره بلوک
کمترین سختی شبکه (دیفیکالتی) در بلاکچین در هر بلاک ثبت میشود؛ بنابراین بلاکچین، منبع معتبر آن است. عملیات انکودینگ(کدگذاری) آن نسبتاً خاص است و از روی کد منبع بیتکوین به صورت مهندسی معکوس طراحی شده است:
73امین بایت از بلاک به عنوان عدد مثبت X و 74-75امین بایت به عنوان یک عدد بزرگ مثبت Y تفسیر میشود.
سختی شبکه (دیفیکالتی) کدگذاری شده به شکل زیر خواهد بود:
اصلاح سختی شبکه (دیفیکالتی)
شبکه طوری سختی استخراج را تنظیم میکند که انتظار می رود که مجموع ماینرها، در عرض 10 دقیقه یک راه حل جدید پیدا کنند؛ این بازبینی سختی شبکه (دیفیکالتی) هر 2016 بلاک، یک بار انجام میشود که یعنی:
سرعت شبکه
زمانی که انتظار میرود یک ماینر در هر 10 دقیقه موفق شود، سرعت محاسباتی کل شبکه(S(d بر حسب هش بر ثانیه برابر است با:
به عنوان مثال با سختی شبکه (دیفیکالتی) فعلی 1590896927258، سرعت کل شبکه بر اساس فرمول بالا برابر است با 11.38 * 1018 hash/s یا EH/s 11.38 (اگزاهش بر ثانیه)
سهم ماینر از کل مارکت
زمانی که یک ماینر سرعت کل شبکه را بداند، میتواند سهم خود را از مارکت بر اساس سرعت محاسباتی خود(S) و سختی شبکه (دیفیکالتی) (d) محاسبه کند:
پاداش ماینینگ
با هر بلاک تولید شده و تأیید شده توسط شبکه، به یک ماینر مقداری بیتکوین تعلق میگیرد؛ البته میزان پاداش بلاک که بین ماینرها تقسیم میشود، هر 210000 بلاک که معادل 4 [= 10min * 210000] سال است، نصف میشود که با 50 BTC شروع شده است. نرمافزار بیتکوین تنها از مقادیر محاسباتی صحیح استفاده میکند و یک بیتکوین را معادل 108 ساتوشی میداند. سهم ماینرها از بیتکوینهای جدید(N)، بر اساس طول بلاک داده شده(h) به شرح زیر است:
به دلیل رند کردن به پایین اجباری در عملیاتهای اعداد صحیح در زبان ++C، تابع (N(h برای h >= 34 * 210000 به صفر میرسد؛ پس از آنجا که شبکه برای تولید یک بلاک در 10 دقیقه تنظیم شده است، انتظار میرود دیگر بیتکوین جدیدی بعد از حدود (6*24*365)/34*210000 ≈ 136 سال از شروع به کار شبکهی بیتکوین در سال 2009 تولید نشود. از آنجا که این تنها منبع تولید بیتکوینهای جدید است، با محاسبهی حد مجموع بیتکوینهای تولیدی در مییابیم که تعداد کل بیتکوینهای قابل گردش در شبکهی این رمزارز هیچوقت از عدد 20999949.9769 ≈ 21 میلیون بیشتر نخواهد شد. در زمان نگارش این مقاله، تعداد کل بیتکوینهای تولید شده تا به این لحظه در حدود 17.5 میلیون بیتکوین است. ماینرها علاوه بر پاداش بلاک، فی تأیید تراکنشها که در بلاک است را نیز دریافت میکنند. در حدود 15% از کارمزد ماینرها از محل تأیید تراکنشهاست که انتظار میرود در آینده افزایش یابد؛ چرا که پاداش بلاک و صرفهی کار برای ماینرها در حال کاهش است.
تولید بیتکوین مورد انتظار
ماینری با سرعت پردازشهش یا هشریت(S) که زیرمجموعهای از کل شبکه است، زمانی به تناسب بیشتر از کل شبکه برای حلکردن یک بلاک مصرف میکند؛ در نتیجه سهمی که از کل پاداش روزانهی شبکه میبرد، به تناسب اینگونه خواهد بود:
به عنوان مثال، یک ماینر با قدرت (10TH/S (1013 hash/s در طول بلاک 57595 (12.5=(57595)H) و سختی شبکه (دیفیکالتی) فعلی 1590896927258، انتظار تولید 0.0015806 بیتکوین در روز را دارد.
زمان پیداکردن یک بلاک
مهم نیست که چقدر محاسبات از قبل انجام شده است؛ احتمال اینکه هش بعدی پیروز و درست باشد، برابر است با: 1-(d*232)
بنابراین «تایم بلاک» بعدی برای هشریت (S)، یک توزیع نمایی با تابع چگالی تجمعی زیر است:
میزان تولید استخر ماینینگ
رویدادهای یافتن یک بلاک، مستقل از تایم آخرین بلاک و مستقل از زمان اتفاق میافتند؛ در نتیجه تابع توزیع پوآسون را میتوان برای شمارهی رویدادهای یافتن بلاک در بازهی زمانی خاصی به کار برد. ما میتوانیم از تابع چگالی احتمال تجمعی در توزیع پوآسون استفاده کنیم تا احتمال یافتن بیش از (K) بلاک در یک روز را محاسبه کنیم:
مدلسازی سختی شبکه (دیفیکالتی)
به نظر میآید که پاداش ماینینگ یک بازخورد و نتیجهگیری برای بیشتر اتفاقات تاریخ شبکهی بیتکوین و شتابدهی به ظرفیت محاسباتی شبکه به وجود آورده است.
بهترین مدلسازی تاریخی برای تغییرات سختی شبکه (دیفیکالتی) ماهانه، یک فرآیند تخمینی خودکار به شکل زیر است:
دیدگاههای بالا به ما اجازه میدهد که فرض کنیم تغییر سختی شبکه (دیفیکالتی) بر اساس شاخصهای ماههای قبل ادامه مییابد. یک مدل ساده با بهرهگیری از سختی شبکه (دیفیکالتی) ثابت که ضریب افزایش روزانه در آن (r) باشد، میتواند برای مقاصد کاربردی در بازههای زمانی کوچک کافی باشد. ما برای (t) روز آینده، سختی شبکه (دیفیکالتی) را اینگونه مدلسازی کردهایم:
مدلسازی قبلی نرخ پیشبینی r=0.75% را به ما میدهد که مطابق است با افزایش سختی شبکه (دیفیکالتی) سالانه %1429.
ورودی بیتکوین مورد انتظار
مقدار مورد انتظار بیتکوینی که یک ماشین ماینینگ میتواند در (t) روز تولید کند، با پاداش بلاک فعلی و افزایش نرخ سختی شبکه (دیفیکالتی) اندازهگیری میشود. اگر فرض کنیم نصف شدن پاداش بلاک در بازهی زمانی تمام طول عمر دستگاه وجود نداشته باشد، آنگاه N(h)=N است و مقدار بیت کوین تولیدی مورد انتظار برابر است با:
اما نظر شما در رابطه با این مطلب و دادههای آماری بدست آمده چیست؟ آیا این دادهکاوی در صنعت ماینینگ مفید بوده است؟