کاربرد Nonce در بلاک هدر بیت کوین چیست؟ همانطور که قبل تر اشاره کرده بودیم در بلک هدر هر بلاک فیلد های دیگری نیز قرار دارد. در این نوشتار کاربرد hashMerkleRoot را بررسی کردیم، فیلد دیگری که در هدر هر بلاک مشاهده میشود nonce است:
nonce مخفف عبارت: عدد یک بار مصرف شده یا number used once میباشد. به این فیلد، فیلد ماینینگ نیز اطلاق میگردد: the mining field.
ماینر ها از افزودن به nonce برای پیدا کردن مقدار هشی کمتر از block id کنونی استفاده میکنند.
توضیح اینکه در پروسه ماینینگ برای پیدا کردن بلاک جدید، بلاکی به عنوان بلاک کاندید در نظر گرفته میشود، اولین بلاک بلاکچین بیتکوین بدون این روش ساخته شده بود و block target توسط خود ساتوشی با مقدار:
00000000ffff0000000000000000000000000000000000000000000000000000
که ماکزیمم مقدار این رشته هگزادسیمال است، به صورت دستی مقدار دهی شده بود.(hard coded)
از آنجا به بعد کلیه داده های هدر بلاک کاندید دوبار توسط تابع sha256 هش میشوند و تشکیل یک هش جدید را میدهند.
حال برای اینکه بلاک خودمان را به بلاک جدید متصل کنیم (بلاک جدید را ماین کنیم) باید مقداری را بدست بیاوریم که از مقدار هش ساخته شده در مرحله قبل کوچک تر است.
این کار بار ها و بار ها با آزمون و خطا توسط ماینر ها ایجاد میگردد، اما هربار سعی جدید با یک شماره nonce افزایش یافته انجام میشود، تا جایی که منجر به کشف عبارت صحیح گردد، تمامی این رفت و برگشت ها در تصویر زیر به خوبی توضیح داده شده است:
پس از یافتن این مقدار، بلاک کنونی آپدیت شده و هدف یا تارگت بعدی بلاک نیز در مقدار Bits قرار میگیرد: