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