بیت کوین چگونه استخراج می شود؟
در درس قبل یاد گرفتید که ماینر بیت کوین چیست، چگونه تراکنشهای جدید را در حافظه خود ذخیره میکند و سپس با ایجاد یک بلاک کاندید فرآیند استخراج بیت کوین را آغاز میکند.
اگر درک دو جمله بالا برایتان مانند یک زبان خارجی دشوار است، توصیه میکنیم که از ابتدای فصل آشنایی با ماینینگ شروع به مطالعه کنید.
بسیار خب! برای درک عملکرد استخراج بیت کوین ابتدا بیایید نگاهی دقیقتر به “بلاکهای کاندید” بیندازیم.
درست مانند بدن انسان که میتوانیم آن را به سر و بدن تقسیم کنیم، یک بلاک کاندید را میتوان به دو قسمت تقسیم کرد:
- بلاک هدر (ناحیه زرد رنگ)
- بدنه بلاک (ناحیه توسی رنگ)
اگر به یک بلاک کاندید کمی دقیقتر نگاه کنیم، میبینیم که فقط شامل تراکنشها نیست.
بلاک کاندید ایجاد شده توسط ماینر دارای یک “هدر” یا سربرگ است. (قسمت زرد رنگ)
بدنه بلاک (قسمت توسی رنگ) تراکنشها را نگه میدارد.
یک بلاک کاندید حاوی دستهای از تراکنشهاست. علاوه بر آن حاوی برخی “ابرداده” (Metadata) است که خلاصهای از بلاک را ارائه میدهد.
“فراداده” یا “متا دیتا”، دادههایی هستند که اطلاعاتی درباره سایر دادهها ارائه میدهد. درمورد بلاک کاندید، میتوان گفت ابرداده اطلاعاتی درمورد خود بلاک ارائه میدهد که به عنوان “بلاک هدر” شناخته میشود.
چندین بخش از داده در داخل بلاک هدر وجود دارد.
هدف این درس این است تا همه چیز را درمورد محتویات بلاک هدر یاد بگیریم.
برچسب زمانی “Timestamp”
اولین بخش داده در بلاک هدر، “برچسب زمانی” یا “Timestamp” است.
برچسب زمانی بیت کوین نشان میدهد که بلاک چه زمانی ایجاد شده است.
هش بلاک قبل
دومین بخش از دادهها، “بلاک قبل” نامیده میشود. به طور تخصصیتر به آن “هش بلاک قبل” گفته میشود که شامل هش بلاکهای قبلتر در بلاک چین است.
برای اینکه مفهوم آن را بهتر درک کنیم، باید نگاهی به فایل (بلاکچین) بیندازیم.
اکنون که به داخل فایل نگاه میکنیم، میتوانیم ببینیم که دادهها به روش خاصی ساختار یافتهاند.
بیایید این تصویر را به عنوان یک بلاک چین در نظر بگیریم.
بلاک کاندیدی که توسط ماینر ایجاد شده است باید در ادامه آخرین بلاک اضافه شود.
فرض کنید بلاک آخر به رنگ آبی است.
از آنجایی که هش بلاک (به رنگ آبی) آخرین بلاک در فایل (بلاکچین) است، پس این همان بلاکی است که ماینر باید در بالای آن بلاک جدیدی ایجاد کند.
هش بلاک را مانند یک شناسه اختصاصی تولید شده برای یک بلاک در نظر بگیرید.
بنابراین کاری که ماینر انجام خواهد داد این است که آن را به عنوان هش بلاک قبلی در بلاک هدر کاندید خود اضافه کند.
هش جزئیات تراکنش
اجازه دهید بخش دیگر داده را “هش جزئیات تراکنش” بنامیم.
همانطور که از نام آن پیداست این هش خلاصهای از جزئیات تمام تراکنشهای بلاک را ارائه میکند که به صورت رشتهای از کاراکترها بیان میشوند.
اتفاقی که میافتد این است که تمام تراکنشهای موجود در بلاک (که با رنگ قرمز مشخص شدهاند) در یک تابع هش قرار گرفته و به ترتیب خاصی هش میشوند و در نهایت شما یک هش در اختیار دارید.
این هش همان هش جزئیات تراکنش است.
چیزی که این هش ارائه میکند یک اثر انگشت منحصر به فرد بر اساس تمام تراکنشهای موجود در یک بلاک است.
درواقع این فرآیند کمک میکند تا مطمئن شویم تراکنشها دستکاری نشدهاند.
این هش که خلاصهای از جزئیات تراکنشها است با عنوان “ریشه مرکل” یا “Merkle Root” شناخته میشوند.
بهخاطر داشته باشید یک تغییر کوچک در داده، کاملا هش را تغییر میدهد. به این معناست که اگر شخصی در آینده سعی داشته باشد تا هر تراکنش را در بلاک تغییر دهد، هش خلاصه تراکنش تغییر کند و کاملا با هشی که در بلاک هدر است متفاوت باشد.
اساسا تغییر تراکنش یک اثر انگشت متفاوت ایجاد میکند که با اثر انگشت اصلی مطابقت ندارد.
بلافاصله همه نودها در شبکه از این تغییر که تراکنش دستکاری شده مطلع میشوند.
هش بلاک در استخراج بیت کوین
تا اینجا دانستیم که بلاک هدر شامل سه نوع از دادههاست:
- برچسب زمانی
- هش بلاک قبلی
- هش جزئیات تراکنش
در مرحله بعد، دادههای بلاک هدر در یک تابع هش قرار میگیرند و اعداد تصادفی به نام “هش بلاک” تولید میکنند.
(البته نام دقیقتر آن “هش بلاک هدر” است زیرا این هش فقط هش بلاک سربرگ است و نه کل بلاک)
“هش بلاک” را مانند “هش بلاک قبلی” به عنوان یک “شماره شناسه اختصاصی” در نظر بگیرید که به بلاک کاندید اختصاص داده میشود.
چرا ماینر اینکار را انجام میدهد؟
برای اینکه ماینر بتواند بلاک خود را به بلاک چین اضافه کند، باید یک هش بلاک که کار خاصی را انجام میدهد پیدا کند.
اگر این هش بلاک نتواند وظیفه خود را انجام دهد، آنگاه بلاک معتبر شناخته نمیشود و ماینر نمیتواند بلاک خود را به بلاک چین اضافه کند.
به طور دقیقتر، هش بلاک باید عددی باشد که با تعداد مشخصی صفر شروع میشود.
اما دقیقا چند صفر؟
تعداد آن متفاوت است. نرم افزار سیستم بیت کوین حداقل تعداد صفرهایی که هش بلاک باید با آن شروع شود را تعیین میکند.
در ابتدا تنها تعداد کمی از صفرها مورد نیاز بود اما با پیوستن ماینرهای بیشتر، نرم افزار بیت کوین تعداد صفرهای بیشتری را مشخص کرد.
یک ماینر باید بهگونهای خروجی را تولید کند که با “آستانههای” تعیین شده توسط نرم افزار بیت کوین مطابقت داشته باشد.
این “آستانه” تعداد صفرهایی را مشخص میکنند که هش بلاک باید با آنها شروع شود.
هرچقدر این آستانه پایینتر باشد، تعداد صفرهای بیشتری مورد نیاز است.
هرچه تعداد صفرهای بیشتری مورد نیاز باشد، یافتن یک هش بلاک “صحیح” دشوارتر میشود.
زیرا هرچه تعداد صفرها بیشتر باشد به این معناست که راهحلهای ممکن کمتری وجود دارد. بنابراین زمان بیشتری برای پیدا کردن یک هش بلاک صحیح نیاز است.
یافتن یک هش که با شش صفر شروع میشود (مانند 000000123) بسیار سختتر از تلاش برای یافتن یک هش با سه صفر است (مانند 000123).
در این قسمت یک نمونه از یک هش بلاک واقعی و معتبر آورده شده است.
000000000000000000058
6b367c292dfd274bf2e67
575cf8b4d00735fc1df6ff
توجه کنید که این هش با چه تعداد صفر شروع شده است.
سختی استخراج چیست؟
تعداد صفرها ناشی از سختی استخراج است. کم یا زیاد بودن این تعداد به طور خودکار توسط نرم افزاری که شبکه بیت کوین را اجرا میکند تنظیم میشود. سختی استخراج بر اساس تعداد ماینرها تغییر میکند. هرچه تعداد کامپیوترهای بیشتری در حال استخراج باشند، سختی آن بیشتر میشود و صفرهای بیشتری در شروع کار لازم است و پیدا کردن نانس (هشی که هدف نهایی ماینرهاست) سختتر میشود.
یک هش بلاک را میتوان به عنوان یک عدد بسیار بزرگ تفسیر کرد و باید پایینتر از یک آستانه خاص باشد. به همین دلیل است که هشهای بلاک با تعدادی صفر و سپس با یک رشته الفبایی شروع میشوند. برخی از بلاکها دارای ۲۰ صفر هستند، درحالیکه بلاکهای قبلی کمتر از ۸ صفر دارند. تعداد صفرهای مورد نیاز تقریبا دشواری استخراج را در زمان انتشار بلاک نشان میدهد.
اگر هش بلاک با تعداد صفرهای لازم شروع نشود چه اتفاقی میافتد؟
در این صورت بلاک را نمیتوان به فایل (بلاکچین) اضافه کرد.
خوشبختانه ماینر میتواند چندین بار تلاش کند.
اما اگر یک ماینر هدر بلاک را که شامل برچسب زمانی، هش بلاک قبل و هش جزئیات تراکنش است را دوباره از طریق یک تابع هش اجرا کند، همان نتیجه را دریافت میکند.
ماینر باید قبل از تلاش برای هش کردن هدر بلاک، به نحوی دادهها را تغییر دهد.
بیت کوین برای حل این مشکل راهحلی را ارائه داده است.
نمودار سختی استخراج بیت کوین را به صورت انلاین در این سایت مشاهده کنید.
نانس چیست؟ Nonce
در بلاک هدر، یک فضای اضافی به نام نانس (با رنگ آبی مشخص شده) وجود دارد.
قسمت خاصی از بلاک هدر وجود دارد که ماینرها میتوانند آن را با یک عدد دلخواه پر کنند.
هر عددی که میخواهند!
نانس قسمتی کاملا جدا از تراکنشهای موجود در بلاک است. تنها هدف آن این است که به ماینرها اجازه دهد آن را با یک عدد پر کنند و اگر هش بلاک با تعداد صفرهای مشخص شده شروع نشده بود، میتوانند عدد را تغییر دهد.
با استفاده از یک نانس، ماینر میتواند خروجی تابع هش را دستکاری کند تا خروجی مورد نظر را حدس بزند.
سایر دادههای موجود در هدر بلاک را نمیتوان تغییر داد اما “نانس” تنها دادهی قابل تغییر است.
بنابراین اگر اولین تلاش بلاک هدر با شکست مواجه شود، ماینر نانس را تغییر میدهد.
شما میتوانید این فرآیند را مانند تلاش برای یافتن یک کلید از بین چندین کلید برای یک قفل در نظر بگیرید.
هیچ راه میانبری برای یافتن ترکیبی از اعداد که این قفل را باز میکند وجود ندارد. شما باید هر ترکیب را امتحان کنید تا زمانی که بهطور اتفاقی پاسخ صحیح را پیدا کنید.
باید بارها و بارها حدس بزنید تا زمانی که به جواب برسید!
فهمیدن اینکه کلیدها درست هستند بسیار آسان است (یا قفل باز میشود و یا باز نمیشود). ماینرها و سایر نودهای بعدی با بررسی صحت نانسها به راحتی به درست بودن کلیدها پی میبرند.
همچنین یک ماینر همواره در حال رقابت با دیگر ماینرهاست. اولین ماینری که یک نانس را پیدا کند که منجر به هش بلاک معتبر میشود، این حق را دارد که بلاک خود را به بلاک چین اضافه کند و برای انجام این کار پاداش دریافت میکند.
برای مثال فرض کنید هش بلاک باید با حداقل چهار صفر شروع شود.
تنها راه برای پیدا کردن یک هش بلاک با تعداد صفرهای اولیه لازم این است که به طور تصادفی مقدار نانس را انتخاب کرده و بلاک هدر را از طریق تابع هش اجرا کنید.
در این سناریو، نانس (قسمت آبی) با “0” شروع میشود.
اگر نتیجه دلخواه حاصل نشد، آنگاه تمام کاری که میتواند انجام دهد این است که دوباره با یک نانس متفاوت همین مسیر را امتحان کند.
ماینر نانس را تغییر میدهد؛ سپس دوباره شروع میکند تا زمانی که بتواند یک هش بلاک با حداقل صفرهای مورد نیاز پیدا کند.
به یاد داشته باشید، حتی اگر فقط یک تنظیم کوچک انجام داده باشید، تابع هش حتی کوچکترین تغییر را در نظر میگیرد و نتیجه کاملا متفاوتی را به عنوان خروجی ارائه میدهد.
بنابراین اولین تلاش ماینر برای این است تا از عدد صفر در نانس استفاده کند. سپس بلاک هدر را از طریق تابع هش اجرا میکند و بررسی میکند که آیا هش بلاک با ۴ صفر شروع میشود یا خیر.
همانطور که در تصویر بالا میبینید هش بلاک با دو صفر شروع میشود. بنابراین معیارهای مورد نیاز برای اضافه شدن به بلاک چین را ندارد.
اگر خروجی معتبر نباشد ماینر با نانسهای متفاوت به تلاش خود ادامه میدهد.
از آنجایی که تعداد صفرها کافی نیست، ماینر میتواند مقدا نانس را به عدد ۱ تغییر دهد (قسمت آبی رنگ) و سپس دوباره آن را از طریق تابع هش اجرا کند.
همانطور که میبینید، هش بلاک بدون صفر شروع میشود بنابراین این هش نیز کار نمیکند.
از آنجایی که مقدار ۱ برای پیدا کردن هش بلاک کار نمیکند، ماینر میتواند مقدار نانس را به ۲ تغییر دهد و سپس بلاک هدر را مجددا در تابع هش اجرا کند.
در این حالت، در نهایت هش بلاک با 4 صفر شروع میشود و معیارهای لازم را برآورده میکند.
در نتیجه یک هش بلاک صحیح و استاندارد با موفقیت تولید میشود!
همانطور که دیدید، تشخیص اینکه کدام نانس، هش صحیح (با تعداد صفرهای لازم) را تولید میکند غیر قابل پیشبینی است. بنابراین ماینر باید به تلاش خود برای یافتن هش صحیح ادامه دهد.
ماینرها میتوانند برای مدتی طولانی برای یافتن عدد صحیح استخراج کنند. البته اکثر آنها هرگز اینکار را نخواهند کرد.
نانس به عنوان شمارنده استفاده میشود که مقدار آن بهطور مداوم افزایش مییابد تا زمانی که بتواند هش بلاک صحیح را پیدا کند یا استخراج کننده دیگری به آن دست یابد.
استخراج بیت کوین یا بازی حدس اعداد
در این بازی شما سعی دارید با تغییر نانس یک هش را پیدا کنید که با تعداد مشخصی صفر شروع میشود.
ماینرها این کار را بهطور دائم انجام میدهند به امید اینکه با تغییر نانس یک هش بلاک تولید شود که معیارهای لازم را داشته باشد.
هرچه کامپیوترها قویتر باشند، بیشتر میتوانند حدس بزنند.
این فرآیند حدس زدن با عنوان استخراج یا ماینینگ شناخته میشود.
پاداش ماینر برنده، تعدادی بیت کوین (به اضافه کارمزد تراکنش) است که “پاداش بلاک” (block reward) نامیده میشود.
تقریبا در هر ۱۰ دقیقه یک ماینر، برنده “پاداش بلاک” میشود.
پاداش بلاک چیست؟
از آنجایی که ماینرها زمان و انرژی زیادی را صرف حدس زدن برای یافتن نانس صحیح و تایید تراکنشها در بلاک چین بیت کوین میکنند، نرم افزار بیت کوین به دو صورت بهخاطر تلاشهایشان به آنها پاداش میدهد:
- بیت کوین تازه ایجاد شده
زمانی که یک ماینر تراکنشها را تایید میکند، آنها در یک بلاک قرار میگیرند و به بلاکچین بیت کوین اضافه میشوند. برای هر بلاک جدیدی که به بلاک چین اضافه میشود، بیت کوینهای جدیدی به ماینرها پرداخت میشوند. این مقدار بیت کوین به عنوان “هزینه بلاک” (block subsidy) شناخته میشوند. براساس یک زمانبندی از پیش تعیینشده توسط پروتکل بیت کوین، مقدار مشخصی از بیت کوین بعد از پایان ساخت بلاک به ماینرها پرداخت میشود. در حال حاضر، هزینه بلاک برای هر بلاک جدید که ایجاد میشود ۶.۲۵ بیت کوین است و این مقدار در تاریخ اردیبهشت سال ۱۴۰۳ به ۳.۱۲۵ بیت کوین در هر بلاک کاهش مییابد.
- کارمزد تراکنش
زمانی که افراد با بیت کوین تراکنش میکنند، هزینهای به ماینرها پرداخت میکنند تا آنها را تشویق کنند که تراکنشهایشان را به تایید برسانند. هنگامی که یک ماینر مجموعهای از تراکنشها را تایید میکند، تمام کارمزدهای هر تراکنش را نیز دریافت میکند.
استخراج فرآیندی یکنواخت و تکراری است
یک هدر بلاک به همراه نانس را گرفته و آن را هش کنید. ببینید آیا هش تولید شده با تعداد صفر مشخص شده شروع میشود یا خیر. اگر جواب منفی است این فرآیند را با نانس دیگری دوباره تکرار کنید.
بنابراین اگر بخوانید یا بشنوید که استخراج شامل حل مسائل پیچیده ریاضی است، دیگر میدانید که این توصیف درستی نیست.
هیچ چیز پیچیدهای درمورد استخراج وجود ندارد. فرآیند به خودی خود بسیار ساده است. شما فقط سعی میکنید یک عدد صحیح را با بیشترین سرعت ممکن حدس بزنید یا باید به قدری سریع باشید تا اولین ماینری باشید که درست حدس میزنید. در نتیجه بلاک کاندید شما همانی است که به بلاک چین اضافه میشود!
هش ریت “Hash Rate” قدرت حدس زدن یک کامپیوتر ماینینگ را نشان میدهد. هرچه هشهای بیشتری را در ثانیه بتوانید حدس بزنید، هش ریت شما بالاتر است. برای مثال یک تریلیون حدس (1,000,000,000) در ثانیه برابر با “۱ ترا هش” (TH/s) است.
ساده بودن این فرآیند به معنای آسان بودن آن نیست. به همین دلیل است که به آن استخراج گفته میشود. در واقع شما در حال کاوش برای یافتن عدد صحیحی هستید که مانند استخراج در دنیای واقعی ملزم به تلاش بسیار زیادی است.
حالا که ماینر یک نانس را پیدا کرده است که میتواند یک هش بلاک تولید کند که الزامات را برآورده میکند (با حداقل ۴ صفر شروع میشود)، بلاک به بلاکچین اضافه میشود.
به یاد دارید که بلاک آبی جدیدترین بلاک در بلاک چین بود؟ حالا دیگر نیست!
از آنجایی که ماینر توانست نانس صحیح را حدس بزند، موفق شد بلاک خود را بلاک چین اضافه کند.
اگر بخواهیم از نمای بالاتری به آن نگاه کنیم، فایل در کامپیوتر ماینر بهروز شده است. (با رنگ سبز مشخص شده)
و سپس نود این بلاک را به نودهای مجاور که مستقیما به آنها متصل است ارسال میکند.
نودها فایل دریافتشده را بررسی و تایید میکنند و مطمئن میشوند که هش بلاک تولید شده توسط هدر بلاک الزامات را برآورده میکند. در این مثال هش بلاک باید با ۴ صفر شروع شود.
این نودها با افزودن بلاک به فایل، فایل (بلاکچین) خود را بهروز میکند.
در نتیجه فایل آنها بهروز شده و حالا فایل همه آنها درست مانند فایل (فایل سبز رنگ) ماینر برنده است.
وضعیت تراکنشهای موجود در ممپول که بخشی از بلاک برنده (بلاک جدید ایجاد شده) هستند، از “تایید نشده” به “تایید شده” تغییر میکند و برای همیشه به فایل اضافه میشوند.
هرگونه تراکنش متناقض حذف خواهد شد و تنها تراکنش بنفش وارد بلاکچین میشود.
سپس این نودها بلاکها را به نودهای دیگر انتقال میدهند.
هنگامی که بلاک جدید توسط ماینرها پذیرفته شود، همه ماینرها از ابتدا شروع به ایجاد یک بلاک کاندید جدید میکنند و فرآیند استخراج را دوباره تکرار میکنند.
ماینینگ یا استخراج به عنوان یک مکانیسم مرتبسازی برای تراکنشها در شبکهای از کامپیوترها عمل میکند که بلاکهای “ماینشده” حرف آخر را درمورد آنچه به زنجیره بلاک تعلق دارد میزنند.
بلاک جدید ایجاد شده، دارای یک هش بلاک است که ماینرها از آن در بلاک کاندید به عنوان “هش بلاک قبل” استفاده میکنند.
هش بلاک به عنوان زنجیره “Chain” عمل میکند.
اکنون ماینرها باید هش بلاک قبلی را در بلاک جدیدی که ایجاد میکنند بگنجانند.
معنای آن این است که برای استخراج بلاک ۱۰۱ ماینرها باید هش بلاک ۱۰۰ را بدانند.
تا زمانی که بلاک ۱۰۱ استخراج نشده باشد، بلاک ۱۰۲ قابل استخراج نیست.
این مسئله ماینرها را وادار میکند تا روی بلاک ۱۰۱ که به نحوی شامل هش بلاک ۱۰۰ نیز هست تمرکز کنند.
اما بهجای اینکه هر بلاک یک “شماره بلاک” داشته باشد، با هش بلاک به بلاک قبلی اشاره میکند.
این بدان معناست که هر بلاک به دیگر بلاکها متصل است، پس زنجیرهای از بلاکها ایجاد میشود که آن را بلاکچین میگویند.
این زنجیره از بلاکها توسط هش بلاکها به یکدیگر متصل میشوند و نه با شمارههای بلاک.
چرا امکان تقلب در بیت کوین وجود ندارد؟
فرض کنید همه اعضای شبکه در حال کار کردن روی بلاک ۱۰۱ هستند.
اما یک ماینر میخواهد تراکنشی را در بلاک 80 تغییر دهد.
پس باید تغییراتی را ایجاد کند. تمام محاسبات بلاکهای ۱۰۰-۸۰ به همراه بلاک ۱۰۱ را انجام دهد.
محاسبات این ۲۱ بلاک بسیار سنگین است!
نه تنها این، بلکه ماینر باید همه این کارها را قبل از اتمام کار ماینرهای دیگر در شبکه بیت کوین که روی بلاک فعلی (بلاک ۱۰۱) کار میکنند به پایان برساند. پس اساسا اینکار غیرممکن است.
فرار از دستکاری هرگونه تراکنش که بخشی از بلاک چین را تشکیل میدهد بسیار سخت است.
نتیجه این است که بلاک چینها غیر قابل تغییر هستند!
الگوریتم اثبات کار Proof-of-Work (PoW) چیست؟
فرآیند استخراج معمولا با عنوان اثبات کار یا PoW معرفی میشود.
PoW با عنوان “مکانیسم اجماع” “consensus mechanism” شناخته میشود که بیت کوین از آن برای به توافق رساندن نودها درمورد کپی رسمی فایل استفاده میکند. بیت کوین از این طریق میتواند بدون نیاز به حل اختلاف یا مداخله یک مقام مرکزی با دیگر نودها به توافق برسد.
اصطلاح اثبات کار “proof-of-work” به این واقعیت اشاره دارد که برای یافتن هش بلاک با استانداردهای خاص (تعداد صفرهای لازم اولیه)، انجام “کار” ضروری است و هنگامی که این کار انجام شود، همه میتوانند آن را تایید کنند و در نهایت این کار به اثبات “Proof” میرسد.
فرآیند “حدس زدن عدد نانس” و سپس “اجرای هدر بلاک از طریق تابع هش” راهی برای اثبات این است که شما مقدار مورد نیاز کار را روی بلاک خود انجام دادهاید.
اولین ماینر که یک هش معتبر تولید کند، مجاز است یک بلاک جدید به بلاکچین اضافه کند و به عنوان پاداش، بیت کوین دریافت خواهد کرد.
اگر ماینرهای زیادی به شبکه بیت کوین بپیوندند، PoW طوری تنظیم میشود تا یافتن هش بلاک معتبر دشوارتر شود. اگر این افزایش سختی باعث دلسردی بسیاری از ماینرها شود و آنها استخراج را متوقف کنند، دشواری کاهش یافته و استخراج آسان تر میشود.
این فرآیند با عنوان تنظیم سختی شناخته میشود و تقریبا هر دو هفته یکبار اتفاق میافتد. مهم نیست که چند ماینر به شبکه بپیوندند یا از آن خارج شوند؛ “تنظیم سختی” تضمین میکند که تقریبا هر ۱۰ دقیقه یکبار بلاکهای جدید به بلاک چین اضافه شوند.
“تنظیمات سختی” بر اساس سرعتی که ماینرها در حال ایجاد بلاکهای جدید هستند انجام میشود.
بیت کوین با تنظیم سختی استخراج، با توجه به میزان قدرت محاسباتی ماینرها، مقدار بیت کوینهای جدید را به اندازه نرخ از پیش تعیین شده ثابت نگه میدارد.
تنظیم سختی بسیار مهم است زیرا تضمین میکند که ماینرها نمیتوانند بیت کوین را بیشتر از مقدار تعیین شده با سرعت زیاد استخراج کنند.
برای استخراج به سخت افزار تخصصی گران قیمت و برق زیادی نیاز داریم. به همین دلیل حمله به شبکه بیت کوین هزینه زیادی خواهد داشت. این امر امنیت و یکپارچگی شبکه بیت کوین را تضمین میکند.
اگر قدرت محاسباتی کافی برای حمله به شبکه را دارید، بهتر است این کار را صادقانه انجام دهید و “پاداش بلاک (بیت کوینهای جدید و کارمزدهای تراکنش) دریافت کنید.
خلاصه
تبریک میگوییم! حالا شما میدانید استخراج در شبکه بیت کوین چگونه عمل میکند!
- ماینرها با انتخاب یک نانس، اجرای آن در تابع هش و بررسی خروجی، به دنبال یک هش قابل قبول به نام هش بلاک میگردند.
- اگر هش تعداد صفرهای لازم را نداشته باشد، ماینرها نانس را تغییر میدهند، مجددا آن را در تابع هش اجرا میکنند و به بررسی خروجی میپردازند.
- یک ماینر زمانی برنده میشود که بتواند نانس صحیح را پیدا کند. سپس بلاک را به نودهای دیگر (و سایر ماینرها) در شبکه بیت کوین ارسال میکند که هر کدام از آنها میتوانند نانس صحیح را در که توسط ماینر برنده یافت شده در تابع هش اجرا کنند و تایید کنند که این نانس به درستی کار میکند.
- اگر این راه حل توسط اکثر نودها در شبکه پذیرفته شود، بلاک به بلاکچین اضافه میشود و ماینر برنده، پاداش بلاک را دریافت میکند.
- همه ماینرها با استفاده از هش بلاک اخیرا استخراج شده که در بلاک هدر آنها به عنوان مرجع وجود دارد (بلاک هدر قبلی)، بازنشانی شده و شروع به کار بر روی یک بلاک کاندید جدید میکنند.
- این فرآیند که در آن ماینرها سعی میکنند تا نانس صحیح را حدس بزنند به عنوان “اثبات کار” “Proof-of-Work” شناخته میشود.
اکنون که درمورد ماینرها و استخراج بیت کوین اطلاعات زیادی داریم، بیایید نقشه خود را از سیستم بیت کوین بهروز کنیم: