استخراج بلاک بیت کوین ؛ قسمت 8 آموزش صفر تا صد Bitcoin

استخراج و ماینینگ در بلاک چین ارز دیجیتال بیت کوین چیست؟ در این قسمت از آموزش صفر تا صد، مفاهیم ماین کردن ، ماینر و استخر استخراج Bitcoin ارائه شده است.
در جلسه قبلی دیدیم که تراکنش آلیس برای پرداخت هزینه یک فنجان قهوه در کافه باب چگونه ساخته شد و به شبکه ارز بیت کوین ارسال گردید. یک تراکنش به خودی خود در بلاک چین بیت کوین ثبت نمیشود، بلکه باید درون یک بلاک – Block قرار گیرد و پس از فرآیند استخراج -– Mining در بلاک چین شبکه ثبت شود. در این قسمت فرآیند قرارگیری یک تراکنش درون بلاک و استخراج آن به صورت اجمالی معرفی شده است. در جلسات بعدی فرآیند ماینینگ به تفصیل شرح داده خواهد شد.
مفهوم استخراج در بلاک چین بیت کوین
در شبکه بیت کوین، تراکنشها به صورت گروهی درون یک بلاک قرار میگیرند. پس از قرار گرفتن این تراکنشها درون بلاک، استخراج بلاک آغاز میشود که این فرآیند نیاز به تلاش محاسباتی بسیار زیادی دارد. به صورت کلی، ماین کردن بیت کوین دو هدف کلی دارد:
- طی این فرآیند، ماینرها تراکنشها را با استفاده از قوانین اجماع شبکه بیت کوین تایید میکنند. بنابراین فرآیند استخراج باعث حذف تراکنشهای نامعتبر و افزودن امنیت به شبکه میشود.
- فرآیند ماینینگ باعث تولید بیت کوین جدید در هر بلاک میشود. این کار دقیقا مشابه چاپ پول توسط بانکهای مرکزی است، با این تفاوت که تولید BTC با استفاده از استخراج آن، دارای یک برنامه از پیش تعیین شده است و در طول زمان کاهش مییابد.
همانطور که گفته شد، استخراج بیت کوین نیاز به تلاش محاسباتی فراوانی دارد و این تلاش محاسباتی متقابلا نیازمند منابع برق زیادی است. بنابراین فرآیند ماینینگ باعث متعادل شدن عرضه و تقاضا میشود، زیرا یک ماینر حاضر نیست بیت کوینی را که به دست میآورد، پایینتر از هزینه تمام شده استخراج آن بفروشد.
در صورتی که یک ماینر بتواند یک بلاک را ماین کند، علاوه بر پاداش استخراج که در بالا ذکر شد، کارمزد تراکنشهای درون آن بلاک را نیز در قالب بیت کوین دریافت میکند. لازم به ذکر است که پس از ماینینگ یک بلاک، سایر گرههای شبکه باید صحت استخراج آن بلاک و تراکنشهای درون آن را تایید کنند. بنابراین اگر یک ماینر به عمد تراکنشهای اشتباه را درون بلاک جای دهد، هیچ پاداشی به وی تعلق نمیگیرد.
فرآیند ماینینگ همانند حل یک جدول سودوکو است. فرض کنید چند نفر (ماینرها) در تلاش برای یافتن پاسخ مناسب برای یک جدول سودوکو هستند. این جدول پس از حل شدن، مجددا با ساختار متفاوتی ارائه میگردد و سختی آن به گونهای تنظیم میشود که حل کردن آن حدودا 10 دقیقه زمان ببرد. حل یک جدول سودوکو زمانبر است، اما تایید درست بودن حل آن بسیار ساده و سریع است. فرایند استخراج نیز اینگونه است و یافتن پاسخ درست برای یک بلاک زمانبر و چک کردن درست بودن پاسخ، سریع است. همچنین شبکه سختی استخراج را طوری تعیین میکند که حل آن 10 دقیقه طول بکشد.
مزرعه، ASIC و استخر استخراج
اگر به یاد داشته باشید، در قسمت سوم شخصیت جینگ را معرفی کردیم. جینگ یک کارآفرین جوان است که در شانگهای زندگی میکند. او صاحب یک مزرعه استخراج بیت کوین است. یک مزرعه استخراج بیت کوین چندین سخت افزار مخصوص ماینینگ را شامل میشود که در رقابت با سایر ماینرهای دنیا برای ماین کردن یک بلاک و دریافت پاداش آن است. این رقابتها تقریبا 10 دقیقه طول میکشد و با استخراج هر بلاک، همه چیز مجددا آغاز میشود و تا زمانی که اولین نفر بتواند پاسخ درست را پیدا کند، ادامه دارد. به این الگوریتم که در آن گرهها نیاز به تلاش محاسباتی فراوانی برای اجماع در شبکه دارند، الگوریتم اجماع اثبات کار – Proof of Work گفته میشود. الگوریتم اجماع بیت کوین، اثبات کار است و در آن از رمزنگاری SHA256 (بخوانید شا دویست و پنجاه و شش) استفاده میشود.

جینگ استخراج بیت کوین را در سال 2010 و با استفاده از یک کامپیوتر معمولی آغاز کرد. در آن زمان تعداد ماینرها بسیار اندک بودند و سطح رقابت بسیار پایین بود، بنابراین شبکه سختی را بسیار ساده تنظیم میکرد و کامپیوتر معمولی جینگ هم قادر به یافتن پاسخ مناسب برای یک بلاک بود. رفته رفته با افزایش تعداد ماینرها، سختی شبکه افزایش یافت و دیگر کامپیوتر جینگ توان رقابت در این مسابقه را نداشت. این اتفاق منجر به آن شد که دستگاههای مخصوص استخراج عرضه شوند و کامپیوترهای خانگی برای ماین کردن به صرفه نباشند. جینگ پس از خرید تجهیزات لازم برای استخراج بیت کوین با استفاده از دستگاههای ASIC، به یک استخر ماینینگ – Mining Pool ملحق شد. یک استخر استخراج متشکل از چندین ماینر بیت کوین است که تصمیم گرفتهاند با روی هم گذاشتن قدرت پردازش دستگاهها، شانس خود را برای ماین کردن یک بلاک افزایش دهند و پاداش استخراج را بین خود تقسیم کنند. استخراج یک فرآیند 24 ساعته است و هزینههای جاری مانند پول برق از طریق فروش بخشی از بیت کوین های استخراج شده پرداخت میشود.
استخراج تراکنشها در یک بلاک بیت کوین
تراکنشهای جدید از سمت والتها و سایر نرم افزارها به شبکه بیت کوین ارسال میشوند. بلافاصله پس از مشاهده یک تراکنش ارسالی توسط یکی از گرههای شبکه، این تراکنش به استخر تراکنشهای تایید نشده اضافه میشود. هنگامی که یک ماینر قصد ساخت یک بلاک را دارد، تعدادی از این تراکنشهای تایید نشده را به بلاک اضافه میکند و پس از آن تلاش برای استخراج آن بلاک آغاز میشود. فرآیند مو به موی قرارگیری تراکنشها در بلاک و ماینینگ آن در قسمتهای بعدی شرح داده خواهد شد.
اولویت اصلی برای اضافه شدن تراکنشها به یک بلاک، مقدار کارمزد تعیین شده از سوی سازنده آن تراکنش است. هر چه کارمزد تعیین شده بیشتر باشد، ماینرها اولویت بیشتری برای قرار دادن آن تراکنش درون یک بلاک قائل میشوند. پس از اینکه ماینر یک بلاک جدید را دریافت میکند، متوجه میشود که مسابقه مربوط به بلاک قبلی را از دست داده و ماینر دیگری سریعتر توانسته است بلاک قبلی را استخراج کند. بنابراین بلافاصله ماینر مد نظر شروع به ساخت یک بلاک با استفاده از تراکنشهای تایید نشده و هش بلاک قبلی میکند. هش – Hash همانند یک اثر انگشت است و در قسمتهای بعدی در مورد آن صحبت خواهد شد. بنابراین هر ماینر ممکن است که انتخابهای متفاوتی را برای تراکنشهای درون یک بلاک داشته باشد. زمانی که یک ماینر بتواند معمای بلاک خود را حل کند، پاداش ماین کردن آن بلاک و کل کارمزدهای تراکنشهای درون آن را دریافت میکند. افرادی که با استفاده از استخر ماینینگ در فرآیند استخراج شرکت میکنند، پاداش خود را برای استخر میفرستند تا بین همه تقسیم شود.
اکنون به تراکنش آلیس باز میگردیم. این تراکنش پس از ارسال توسط کیف پول آلیس، وارد استخر تراکنشهای تاییدنشده میشود. استخر استخراج جینگ متوجه این تراکنش میشود و پس از تایید صحت آن، آن را درون بلاک خود و در کنار سایر تراکنشها قرار میدهد و فرآیند ماینینگ توسط کل پردازندههای متصل به آن استخر از جمله دستگاههای ماینر جینگ، آغاز میشود. چند دقیقه بعد، یکی از دستگاههای جینگ پاسخ درست بلاک مدنظر را پیدا و آن را به شبکه اعلام میکند. اگر بلاک و پاسخ آن مورد تایید سایر گرههای شبکه بر اساس پروتکل بیت کوین باشد، آن بلاک وارد بلاک چین شده و رقابت برای بلاک بعدی آغاز میشود.
بلاکی که جینگ موفق به استخراج آن شد، 277316اُمین بلاک در شبکه بلاک چین بیت کوین است که شامل 420 تراکنش از جمله تراکنش آلیس میشود و این تراکنش اولین تاییدیه – Confirmation خود را دریافت میکند. تقریبا 10 دقیقه بعد، 277317اُمین بلاک نیز توسط فرد دیگری ماین میشود و تراکنش آلیس دومین تاییدیه را نیز دریافت میکند. این اتفاق منجر به افزوده شدن اعتبار تراکنش آلیس میشود. به صورت کلی با استخراج بلاکهای جدید، بلاکهای قبلی و تراکنشهای درون آنها اعتبار بیشتری میگیرند. علت این موضوع آن است که اضافه شدن بلاکهای جدید، تغییر و هک بلاکهای قبلی را دشوارتر میکند.
در تصویر پایین دیاگرام بلاک 277316 و بلاکهای قبل و بعد از آن را مشاهده میکنید. در بلاک چین بیت کوین، تمامی بلاکها از طریق رمزنگاری به هم متصل هستند و این اتصال از بالاترین بلاک شروع و به بلاک 0 ختم میشود. بلاک 0 اولین بلاک بیت کوین است که بلاک جنسیس – Genesis Block یا بلاک اولیه نام دارد. شماره هر بلاک در شبکه بیت کوین تحت عنوان ارتفاع – Height شناخته میشود. به عنوان مثال تراکنش آلیس در بلاک با ارتفاع 277316 قرار دارد. عمق بلاک – Depth مشخصه دیگری است که بیانگر تعداد بلاکهای بعدی هستند. عمق یک بلاک در طول زمان افزایش پیدا میکند و اعتبار تراکنشهای درون آن بیشتر میشود. ارتفاع یک بلاک نیز یک عدد ثابت است.
یک رسم بین اعضای جامعه بیت کوین وجود دارد و آن این است که تایید یک تراکنش نیاز به 6 تاییدیه دارد، به عبارتی باید 6 بلاک ماین شود تا یک تراکنش تایید شود. برای همین است که بسیاری از صرافیها مانند بایننس برای دریافت یک تراکنش ورودی بیت کوین، اجازه میدهند تا 6 بلاک (60 دقیقه) استخراج شود و سپس ورود تراکنش را تایید میکنند.
خرج یک تراکنش پس از استخراج
پس از اینکه تراکنش آلیس درون یک بلاک تایید شده قرار میگیرد، این تراکنش وارد دفتر کل توزیع شده بین تمام کاربران میشود و برای همه نرمافزارهای متصل به شبکه بیت کوین قابل مشاهده است. از این به بعد خروجیهای این تراکنش قابل خرج کردن هستند و میتوانند به عنوان ورودی یک تراکنش جدید استفاده شوند. اگر با ورودی – Input و خروجی – Output تراکنشهای بیت کوین آشنایی ندارید، قسمت ششم و هفتم آموزش صفر تا صد را مطالعه نمایید.
گرههای فول نود که در قسمت چهارم معرفی شدند، قادر به ردیابی مقدار بیت کوین جابجا شده در تراکنشها از زمان استخراج شدن آن مقدار تا حال حاضر هستند. اما کلاینتهای سبک کل بلاک چین را روی حافظه دستگاه خود در اختیار ندارند و در عوض با استفاده از روش تایید پرداخت ساده – Simplified Payment Verification – SPV یک تراکنش را خرج میکنند. در روش SPV، فقط گذشت چند بلاک کافی است تا تراکنش را تایید شده در نظر بگیریم و خروجیهای آن قابل استفاده برای تراکنشهای بعدی باشند.
اکنون باب میتواند خروجی تراکنش ارسال شده از سمت آلیس را به عنوان ورودی تراکنشهای جدید استفاده کند. به عنوان مثال، بابت میتواند خروجی این تراکنش به همراه خروجیهای دیگر از سمت خریداران قهوه از کافهاش را برای پرداخت دستمزد توسعهدهنده وبسایت کافه استفاده کند. در این حالت کیف پول باب از چند خروجی به عنوان ورودی تراکنش جدیدش استفاده خواهد کرد.
در صورتی که باب خروجی تراکنش آلیس را استفاده کند، وی زنجیره تراکنشها را که در قسمت پنجم در مورد آن صحبت شد، گسترش داده است. در تصویر زیر این زنجیره را مشاهده مینمایید:

تا بدین جای کار و در 8 قسمت اول آموزش صفر تا صد بیت کوین، مقدمهای از وجهههای مختلف این تکنولوژی ذکر شد. از قسمت بعد به صورت تخصصی هر یک از این ویژگیها را بررسی خواهیم نمود.
نظرات کاربران (0 نظر)