استخراجکنندگان بیت کوین برای برنده شدن رقابت با سایر ماینرها و به دستآوردن پاداش بلاک، باید مسئلهای را حل کنند که به پازل ماینینگ معروف است. همانطور که میدانید بیتکوین از الگوریتم گواه اثبات کار (POW) استفاده میکند. کسی شانس بیشتری برای افزودن بلاک بعدی به بلاکچین را دارد که توان پردازشی بالاتری داشته باشد و زودتر از سایرین بتواند تکه گمشده پازل را پیدا کند. در ویدیو زیر آندرس آنتونوپولوس متخصص حوزه ارزهای دیجیتال، در رابطه با این که حل پازل ماینینگ چطور انجام میشود توضیح داده است . با میهن بلاکچین همراه باشید.
تابع هش چیست؟
تابع هش یک تابع ریاضی است که میتواند ورودی با هر حجمی را به یک خروجی با طول ثابت تبدیل کند. به نوعی میتوان گفت که توابع هش، مقادیر ورودی را فشرده میکنند و ویژگیهای خاصی دارند که عبارتند از:
- خروجی این توابع غیرقابل پیشبینی است.
- با معکوس کردن نمیتوان از خروجی به مقادیر ورودی دست پیدا کرد.
- نمیتوان با تنظیمات خاص، یک مقدار خروجی مشخص تولید کرد.
- خیلی سریع خروجی تابع مشخص میشود.
- اگر ورودی ثابتی را بارها به تابع هش بدهید، خروجی همواره یکسان خواهد بود.
توابع هش مختلفی وجود دارند که در رمزارزهای مختلف از آنها استفاده میشود. در بیتکوین از تابع هش SHA256 استفاده میشود. فرقی نمیکند ورودی این تابع چه طولی داشته باشد، در هر حالت خروجی یک عدد ۲۵۶ بیتی است که ۲ به توان ۲۵۶ حالت مختلف ممکن است داشته باشد.
تراکنش کوینبیس چیست؟
در قسمتی از ویدیو، آنتونی از تراکنش Coinbase صحبت میکند که یک تراکنش خاص و متفاوت است. بر خلاف تراکنشهای معمول که فرستنده و گیرنده مشخص دارند، تراکنش کوینبیس از مبدا هیچکس بوده و در اصل همان پاداش ماینرها است.
ماینرها با یکدیگر رقابت میکنند تا بلاک جدید را بسازند و پاداش بلاک را به دست آورند. آنها در هنگام ساخت بلاک جدید، ابتدا پاداش مورد انتظار خود را طی تراکنشی از مبدا هیچکس به آدرسی که خودشان میخواهند در بلاک قرار میدهند. این پاداش که از تولید کوین جدید پرداخت میشود، در صورت برندهشدن ماینر به آدرسش ارسال شده و پس از گرفتن ۱۰۰ تاییده، قابل خرج کردن است.
حل پازل ماینینگ به چه صورت اتفاق میافتد؟
پس از قرار دادن تراکنشها در بلاک، هش همه آنها از جمله تراکنش کوینبیس محاسبه شده و نهایتا ریشه درخت مرکل در هدر بلاک قرار میگیرد. علاوه بر این سه پارامتر دیگر در هدر جای میگیرند:
- یک برچسب زمانی (Time Stamp).
- هش بلاک قبلی که باعث اتصال بلاکها به هم و ایجاد زنجیره میشود.
- پارامتری به نام نانس (nonce).
از تمام دادههای هدر بلاک هش گرفته میشود و خروجی حاصل شده باید شرط خاصی را ارضا کند. این شرط که با سختی شبکه مشخص میشود، به این صورت که است خروجی تابع هش باید با تعداد مشخصی صفر شروع شود.
تکه گمشده این پازل نانس است که یک عدد ۳۲ بیتی است. ماینرها باید آنقدر نانسهای مختلف را در تابع هش تست کنند تا بتوانند پازل را حل کرده و خروجی را مطابق با شرط شبکه به دست بیاورند. این کار به توان پردازشی محض نیاز دارد؛ بنابراین ماینری که توان بالاتری داشته باشد، شانس بیشتری برای پیدا کردن نانس زودتر از سایرین دارد.