نانس چیست؟ کاربرد عدد nonce در بلاکچین
عدد نانس چیست؟ کلمه “نانس” از دو عبارت تشکیل شده است. یکی حرف (n) که مخفف “عدد” (Number) است و دیگری عبارت (Once) به معنای “فقط یکبار” است. عدد نانس یا Nonce درواقع کوتاه شدهی عبارت “number only used once” به معنی “شمارهای که فقط یکبار استفاده شده” است.
نانس چیست؟ کاربرد عدد nonce در بلاکچین
Nonce یک شماره تصادفی یا نیمهتصادفی است که برای یک مصرف خاص به وجود میآید. عدد نانس عموماً در ارتباطات رمزنگاریشده و فناوری اطلاعات به کار میرود. نانس در واقع مقداری است که بر اساس زمان تغییر میکند، آن هم به این دلیل که تأیید کند، مقادیر خاص بیش از یکبار استفاده نشدهاند.
مفهوم عدد نانس در بلاکچین
بلاکچین بستری برای ایجاد رمز ارزها است. برای اینکه بلاکچین امن باقی بماند، دادههای بلاکهای قبلی به صورت یک سری اعداد یا حروف رمزگذاری یا به اصطلاح هش میشوند. این عمل با پردازش ورودی بلاک از طریق تابع هش (Hash Function) انجام میشود که یک خروجی با طول ثابت و مشخص به ما میدهد.
تابعی که برای ایجاد هش به کار میرود یک تابع قطعی و ثابت است؛ به این معنا که خروجی تابع هش در ازای یک ورودی مشخص، تغییر نخواهد کرد و هر تغییر کوچک در ورودی، یک هش بسیار متفاوت به وجود میآورد. این سیستم پیچیده، محرمانگی بلاکچین را به وجود میآورد.
کاربردهای نانس در بلاکچین کاربردهای نانس در بلاکچین را میتوان به صورت زیر بیان کرد:
- هشکردن یا Hashing: الگوریتم اثبات کار یا گواه کار (Proof of Work) از مقادیر نانس برای تغییر دادن ورودی تابع هش رمزنگاری استفاده میکند. در الگوریتم اثبات کار، بلاکهای جدید در بلاکچین از طریق استخراج به وجود میآیند. عدد نانس همان چیزی که استخراجکنندگان برای رسیدن به آن تلاش میکنند. وقتی که راهحل معادله پیدا میشود، در ازای این کار به ماینرها پاداش داده میشود.
- مدیریت هویت افراد: بازیابی حساب و احراز هویت دو مرحلهای از کاربردهای مهم عدد نانس است. برای مثال وقتی بخواهیم حساب کاربریمان را چه با تأیید یک مرحلهای و چه دو مرحلهای بازیابی کنیم، این بازیابی با استفاده از مقادیر نانس انجام میشود. به همین ترتیب، نرمافزارهای ایجاد کنندهی امضاهای دیجیتال نیز از نانس استفاده کرده و به کمک آن امضاها را مقایسه و تأیید میکنند.
عدد نانس کجا قرار میگیرد؟
جایگاه استفادهی عدد Nonce در درخت مرکل است. درخت مرکل، راهحل ساتوشی ناکاموتو برای حل مشکل فضای ذخیرهسازی بلاکچین بیتکوین است. در سیستمی که درخت مرکل ارائه میشود، زمانی که یک تراکنش جدید انجام و نهایی شد، تمامی تراکنشهای قبلی میتوانند نادیده گرفته شوند. البته در این راه حل، تراکنشهای قبلی حذف یا شکسته نمیشوند، فقط به صورت خلاصه در ریشهی درخت ذخیره میشوند.
مهمترین قسمت درخت مرکل، سربرگ یا Header آن است. سربرگ محلی است که اطلاعاتی مانند: Nonce، هش بلاک و هش ریشه در آن ذخیره میشود. هنگامی که یک بلاک در بلاکچین استخراج و تایید شد، در واقع یک درخت مرکل در آن ایجاد شده است. نانس عددی است که تمامی اطلاعات درخت مرکل در آن ذخیره شده است.
کاربرد نانس در استخراج بیتکوین
بدون حضور عدد نانس در مشخصات یک تراکنش، ماینر نمیتواند با حفظ نظم تراکنشها به آنها ساماندهی کند. برای مثال، اگر چهاردهمین اتریوم در حال استخراج باشد و نانس اتریوم شمارهی ۱۰، صفر باشد، یعنی توالی بلاکها و تراکنشها برهم خورده است. به همین دلیل تراکنشهایی با نانس ۰ در لیست تایید ماینرها قرار نمیگیرند چرا که انسجام بلاکچین را حفظ نمیکنند. به همین دلیل اگر نانس یک تراکنش صفر باشد، تراکنش هرگز انجام نخواهد شد.
کاربرد عدد نانس در لغو تراکنش در حال انتظار
ماینرها هنگام فعالیت در شبکه و استخراج ارز دیجیتال، به دنبال دو نوع پاداش هستند. یکی پاداش بلاک و دیگری کارمزد تراکنشهای کاربران.
به همین دلیل زمانی که یک تراکنش را برای تایید انتخاب میکنند، تلاش میکنند تراکنشهایی را انتخاب کنند که بیشترین کارمزد را دارند و زمانی که ترافیک شبکه زیاد است، تراکنشها با کارمزد پایین تایید نمیشوند.
ترتیب پردازش تراکنشها در شبکه با عدد نانس تعیین میشود. در صورتی که کاربر بخواهد تراکنش در حال انتظار خود را لغو کند و مجدد آن را ارسال کند، اولین قدم این است که مقدار نانس آن را پیدا کند. سپس یک تراکنش جدید با همان نانس اما با کارمزد بالاتر ارسال کند. به این ترتیب، شبکه تراکنش دوم را جایگزین تراکنش در حال انتظار میکند.
مقالات مرتبط