فرآیند ماینینگ یا استخراج چگونه انجام می شود؟
ماینینگ یا استخراج (Mining) فرآیندی است که طی آن تراکنشهای بین کاربران شبکه تایید شده و به بلاک چین اضافه میشود. طی این فرآیند سکههای جدید به اصطلاح استخراج شده نیز به سایر سکههای در حال گردش اضافه میشوند؛ این یکی از ویژگیهای اصلی رمزارزهاست که آنها را به شبکههایی همتابههمتا (شبکهای ساده که کارده و کارخواه را بدون واسطه به هم متصل میکند-P2P) و غیرمتمرکز (عدم کنترل توسط فرد، سازمان یا کشور خاص) تبدیل میکند تا در تراکنشها نیازی به واسطهای مثل بانک نباشد.
بیت کوین یکی از پرطرفدارترین و با ثباتترین نمونههای رمزارز قابل استخراج است. استخراج بیت کوین بر اساس یک الگوریتم به نام «گواه اثبات کار» (Proof of Work) انجام میشود.
ماینینگ یا استخراج چگونه انجام میشود؟
ماینر یا استخراج کننده (Miner) یک نود یا گره (Node) در شبکه محسوب میشود که تراکنشها را جمع آوری و به صورت بلاک (Block) در میآورد. هر وقت که تراکنشها انجام شوند، گرههای شبکه آنها را دریافت و صحتشان را تایید میکنند. گرهها این تراکنشهای تایید شده را از استخر حافظه (Memory Pool) جمع آوری کرده و تولید بلاک جدید را آغاز میکنند.
اولین قدم در استخراج یک بلاک جدید، هش شدن (پروسهای که طی آن یک مقدار ورودی با هر طولی، با استفاده از الگورتیمی به یک خروجی با طول ثابت تبدیل میشود-Hashing) تراکنشهایی است که از استخر حافظه گرفته شدهاند. اما قبل از این کار، استخراج کننده یک تراکنش ایجاد میکند؛ تراکنشی که در آن پاداش استخراج(هر میزان رمزارزی که شبکه بلاک چین برای تولید هر بلاک جدید به ماینرها پرداخت میکند-Mining reward) را برای خودش میفرستد. این همان تراکنشی است که در آن سکههای جدید یک رمزارز تولید شده و در اکثر مواقع اولین تراکنشی است که در یک بلاک جدید ثبت میشود.
پس از هش شدن هر تراکنش به صورت جداگانه این هشها در درخت مرکل (یا درخت های هش-Merkle Tree) مرتب میشوند. درخت مرکل با جفت شدن دو هش مربوط به تراکنشهای مختلف و هش شدن آنها تشکیل میشود. خروجی گرفته شده از این دو هش، در کنار یک خروجی دیگر جفت شده و دوباره هش میشوند. این عمل آنقدر ادامه پیدا میکند تا به نوک درخت که ریشه هش (یا ریشه مرکل-Merkle Tree) نام دارد برسیم. ریشه مرکل در واقع یک هش است که نماینده تمام هشهایی که برای تولیدش استفاده شدهاند محسوب میشود.
حالا ریشه هش با هش بلاک قبلی و عدد نانس (تعدادی عدد دلخواه که تنها یکبار برای امضای یک ارتباط استفاده میشود-Nonce) در سربرگِ بلاک (Header) قرار میگیرند. سربرگ بلاک بر اساس سه عنصر تشکیل دهنده آن (یعنی ریشه هش، هش بلاک قبلی و عدد نانس) و تعدادی پارامتر اضافی هش میشود. خروجی این فرآیند «هشِ بلاک» (Block Hash) نام دارد و نشان دهندهی هویت بلاکی است که به تازگی تشکیل شد.
برای معتبر بودن این خروجی (هشِ بلاک)، مقدار آن باید از میزان تعیین شده توسط پروتکلهای شبکه کمتر باشد. این میزان تعیین شده یا «درجه سختی» (Hashing Difficulty) به صورت منظم توسط پروتکلها تنظیم شده و موجب میشود که سرعت و زمان بین تشکیل بلاکهای جدید باثبات باشد. درجه سختی با توجه به قدرت پردازشی که برای هش کردن در یک شبکه وجود دارد تغییر میکند.
بنابراین اگر ماینرهای جدید به شبکه ملحق شوند و رقابت افزایش پیدا کند، درجه سختی زیاد شده و مانع کاهش زمان لازم برای تشکیل هر بلاک جدید میشود. در مقابل اگر ماینرها از شبکه خارج شوند درجه سختی کاهش پیدا میکند و علی رغم این که قدرت پردازشی شبکه کم شده، زمان لازم برای تشکیل هر بلاک جدید افزایش پیدا نمیکند و باز هم ثابت میماند.
فرآیند استخراج، ماینرها را مجبور میکند تا سربرگِ بلاک را با استفاده از عدد نانس آنقدر هش کنند تا هشِ بلاک معتبر پیدا شود. سپس گره موسس و شروع کننده بلاک، آن را به شبکه مخابره میکند. حالا تمام گرههای دیگر شبکه این هش را بررسی کرده و در صورت تایید شدن آن، همگی بلاک جدید را به کپی بلاک چین خود اضافه میکنند و استخراج بلاک بعدی شروع میشود.
البته توجه داشته باشید که امکان دارد دو ماینر به صورت همزمان یک بلاک معتبر را به شبکه گزارش کنند و شبکه با دو بلاک در حال رقابت مواجه شود. در این حالت ماینرها بر اساس اولین بلاکی که دریافت کنند کار استخراج بلاک بعدی را شروع میکنند. زمانی که بلاک بعدی به شبکه ارسال و تایید شود، مطمئنا بر اساس یکی از آن دو بلاک رقابت کننده بوده و یکی از بلاکها رها میشود (بلاک یتیم-Orphan Block). ماینرهایی که روی بلاک رها شده کار میکردند به سراغ بلاک دیگر یا به اصطلاح بلاک برنده میروند و یکپارچگی شبکه حفظ میشود. لازم به ذکر است که برای کار روی بلاکهای رها شده پاداشی به ماینرها تعلق نمیگیرد.
استخرهای استخراج (Mining pools)
پاداش هر بلاک به ماینری که زودتر هش معتبر را پیدا کند تعلق میگیرد و شانس پیدا کردن هش معتبر با میزان قدرت پردازشی هر ماینر ارتباط مستقیم دارد. بنابراین احتمال پیدا کردن این هش توسط ماینرهایی که درصد قدرت پردازشی کوچکی در شبکه دارند بسیار پایین خواهد بود. استخرهای استخراج برای حل این مشکل ایجاد شدهاند. در استخرهای استخراج ماینرها با استفاده از شبکهای مثل اینترنت، قدرت پردازشی خود را به اشتراک میگذارند و اینگونه درصدی قابل توجه از قدرت پردازشی شبکه را در اختیار میگیرند و در نتیجه شانس پیدا کردن هش معتبر توسط آنها بالا میرود. زمانی که هش معتبر پیدا شد، پاداش بلاک بین ماینرهای استخر (بر اساس میزان قدرتی که در اختیار استخر قرار دادند) تقسیم خواهد شد.
ماینینگ بی شک یکی از داغ ترین مباحث در زمینه ارز دیجیتال است. در این مقاله سعی کردیم جزئیات آنچه در این پروسه اتفاق میافتد را بررسی نماییم. مسلما اینکه چگونه و با استفاده از چه نرم افزار، سخت افزار و استخری ماینیگ را شروع کنیم به عوامل بسیاری بستگی دارد. آنچه اینجا بیان کردیم دانشی بنیادی برای علاقمندان به استخراج رمزارزها است که مطمئنا برای درک اصولی این پدیده مدرن کمک فراوانی خواهد کرد.
میشه یه مقاله در باره نحوه ماینینگ کردن بذارید؟