nonce به معنی عدد یک بار مصرف شده است، که در زمینه استخراج ارز دیجیتال به کار برده می شود. عدد نانس (Nonce)، عددی است که به یک بلوک رمزگذاری شده یا هش شده، در یک بلاک چین افزوده می شود و سطوح دشواری ایجاد می کند. عدد نانس در بلاک چین، عددی است که ماینر های بلاک چین برای حل آن در تلاش هستند و زمانی که بتوانند آن را حل کنند، به آن ها ارز دیجیتال تعلق می گیرد. Nonce به اولین عددی اشاره دارد که یک ماینر بلاک چین باید پیش از حل یک بلوک در بلاک چین، آن را پیدا کند. هنگامی که محاسبات ریاضی توسط ماینر حل شد، در قبال مهارت و زمانی که ماینر صرف کرده است، به آن ها ارز دیجیتال ارائه می شود. در این مقاله قصد داریم به توضیح کامل عدد نانس (Nonce) و روش کار آن، بپردازیم.

عدد نانس چیست؟

عدد نانس چیست

همان طور که می دانید زیرساخت اصلی ارز های دیجیتال، فناوری بلاک چین است. داده بلوک های پیشین، به جهت ایمن نگه داشتن بلاک چین، رمزگذاری و یا اصطلاحا "هش" می شوند. این کار با استفاده از پردازش ورودی بلوک و از طریق تابعی که یک خروجی با طول ثابت ایجاد می کند، انجام می شود. تابعی که برای تولید هش مورد استفاده قرار می گیرد، ثابت است. این ثبات به این معنی است که در هر بار که از یک ورودی یکسان استفاده می شود، یک نتیجه یکسان نیز حاصل می شود. همچنین، این تابع می تواند ورودی که هش شده است را به طور تاثیرگذاری تولید، ورودی را دشوار کرده (که امنیت بلاک چین را تامین می کند) و تغییراتی هرچند کوچک در ورودی ایجاد کند و از این طریق حریم خصوصی بلاک چین را حفظ می کند. برای افزودن تراکنش ها به بلاک چین، نیازمند قدرت و توان پردازش کامپیوتری قابل توجهی هستیم. ماینر ها تنها در صورتی می توانند ارز های دیجیتال را به صورت غرامت دریافت کنند که جزو اولین کسانی باشند که هش ایجاد کرده و امورات ملزوم را که هش هدف نامیده می شوند، برآورده کنند. حدس زدن هش توسط ماینر ها از هدر بلوک شروع می شود و شماره نسخه بلوک، هش استفاده شده در بلوک قبلی، هش عدد نانس، درخت مرکل و هش هدف را شامل می شود. اگر هش الزامات تعیین شده در هدف را بتواند برآورده کند، آنگاه بلوک به بلاک چین افزوده می شود. این چرخه حدس زدن نانس، اثبات کار نامیده می شود و به هر استخراج کننده ای که بتواند آن را پیدا کند، بلوک تعلق می گیرد.
Nonce یک عدد تصادفی یا نیمه تصادفی است که در امورات مربوط به ارتباطات رمزنگاری و فناوری اطلاعات (IT) استفاده می شود. این اصطلاح مخفف "عدد یک بار استفاده شده" است و به طور معمول، مقداری است که با زمان تغییر می کند تا تأیید کند که مقادیر نمی توانند دوباره استفاده شوند. به عنوان مثال، ماینر های بیت کوین باید سعی کنند یک nonce معتبر را حدس بزنند. زیرا تلاش های متعددی برای محاسبه هش بلاکی انجام می دهند که الزامات خاصی را برآورده می کند (یعنی با تعداد معینی از صفر شروع می شود). هنگام رقابت برای استخراج یک بلوک جدید، اولین ماینری که بتواند یک nonce را پیدا کند که منجر به هش بلاک معتبر شود، این حق را دارد که بلوک بعدی را به بلاک چین اضافه کند و برای انجام این کار پاداش دریافت کند. به عبارت دیگر، فرآیند ماینینگ شامل ماینر هایی است که تعداد بی شماری توابع هش را با مقادیر مختلف انجام می دهند تا زمانی که یک خروجی معتبر تولید شود. اگر خروجی هش یک ماینر کمتر از آستانه از پیش تعیین شده باشد، بلوک معتبر تلقی می شود و به بلاک چین اضافه می شود. اما در صورتی که خروجی معتبر نباشد، ماینر به تلاش با مقادیر مختلف ادامه می دهد. هنگامی که یک بلوک جدید با موفقیت استخراج و اعتبار سنجی شد، فرآیند از نو شروع می شود. در بیت کوین و اکثر سیستم های Proof of Work، عدد نانس تنها یک عدد تصادفی است که استخراج کنندگان از آن برای تکرار خروجی محاسبات هش خود استفاده می کنند. ماینر ها برای این کار از روش آزمون و خطا استفاده می کنند. زیرا احتمال حدس زدن دقیق یک nonce معتبر، نزدیک به صفر است. میانگین تعداد تلاش های هش به طور خودکار توسط پروتکل تنظیم می شود تا اطمینان حاصل شود که هر بلوک جدید، به طور متوسط هر ۱۰ دقیقه یک بار تولید می شود. دشواری استخراج یک بلوک جدید به میزان قدرت هش (نرخ هش) متعهد به سیستم بلاک چین، مربوط می شود.

کاربرد نانس چیست؟ 

کاربرد نانس

عدد نانس(Nonce)،  برای طیف وسیعی از برنامه های شبکه کامپیوتری، از جمله  احراز هویت، انواع برنامه های بازیابی حساب و هویت، امضای الکترونیکی، رمزگذاری داده ها و موارد دیگر استفاده می شود.
مقادیر Nonce را می توان برای انواع برنامه های IT استفاده کرد، از جمله موارد زیر:
احراز هویت:  Nonce توسط پروتکل های احراز هویت استفاده می شود تا اطمینان حاصل شود که ارتباطات قدیمی نمی توانند دوباره پردازش شوند.
هش کردن: سیستم های اثبات کار از مقادیری برای تغییر ورودی به یک تابع هش رمزنگاری، استفاده می کنند. این به تحقق شرایط دلخواه و ایجاد دشواری مطلوب کمک می کند.
مقداردهی اولیه: بردار اولیه یک nonce است که برای رمزگذاری داده ها تنها یک بار استفاده می شود و از تکرار توالی ها در متن رمزگذاری شده جلوگیری می کند.  
امضای الکترونیکی:  مقادیر مخفی nonce گاهی اوقات توسط ابزار های امضای الکترونیکی برای ایجاد، مقایسه و تأیید امضا ها استفاده می شود.
ارز های دیجیتال: کاربرد عدد نانس، در ارز های دیجیتال به این صورت است که برای ایجاد یک هش رمزنگاری که به یک بلاک چین متصل خواهد شد، استفاده می شود. لازم به ذکر است در استخراج بیت کوین، نانس طلایی به مقداری از هش اشاره دارد که کمتر از سختی هدف است.
از عدد nonce رمزنگاری، در پروتکل های احراز هویت برای دفاع در برابر حملات تکراری استفاده می شود. حملات بازپخش زمانی هستند که مهاجم داده های احراز هویت را در حال انتقال رهگیری می کند و از آن برای دسترسی به شبکه محافظت شده، استفاده می کند. ارز های دیجیتال از استخراج بلاک چین، یک فرآیند همتا به همتا برای حفظ امنیت و اصالت دفتر کل بلاک چین استفاده می کنند. به عنوان بخشی از این فرآیند، ماینر های بلاک چین پس از خرید ارز ها، تراکنش های ارز های دیجیتال را ثبت می کنند و بیت کوین یا سایر ارز های دیجیتال جدید را ایجاد می کنند. سپس ماینر ها اعتبار تراکنش ها را تایید می کنند و داده های تراکنش های جدید را به دفتر کل عمومی تراکنش های گذشته اضافه می کنند و یک زنجیره بلوکی را به وجود می آورند.

عدد نانس کجا قرار می گیرد؟

عدد Nonce یک عدد تصادفی و یا نیمه تصادفی است که معمولاً در امور کریپتو های رمزنگاری شده و فناوری اطلاعات به کار برده می شود. مقدار نانس، طبق زمان تغییر می کند. این تغییر برای تایید این است که مقادیر بیش از یک بار مورد استفاده قرار نگرفته اند. با توجه به نوع کاربرد، تفاوت هایی در مقادیر عدد Nonce وجود دارد. یکی از رایج ترین کاربرد های عدد نانس در الگوریتم های اجماع است. کاربرد نانس در الگوریتم های اجماع به این صورت است که عدم تکرار پردازش ارتباطات گذشته، را تضمین می کند. برای نمونه می توان به استفاده از نانس در اثبات اصالت کالا در سایت های تجارت الکترونیک اشاره کرد. دیگر کاربرد عدد Nonce در درخت مرکل یا Merkle tree است. درخت مرکل یک ساختار داده است که در برنامه های کاربردی علوم کامپیوتر استفاده می شود. در بیت کوین و سایر ارز های رمز نگاری شده، درختان مرکل برای کد گذاری داده های بلاک چین به طور موثرتر و ایمن تری عمل می کنند. آن ها همچنین به عنوان "درخت هش باینری" نیز شناخته می شوند. این درخت، جهت حل مشکلات فضای ذخیره سازی بلاک چین، ارائه شد. بنابراین، درخت مرکل نمونه ای کار آمد از طرح تعهد رمز نگاری است که در آن ریشه درخت به عنوان یک تعهد در نظر گرفته می شود و گره های برگ ممکن است بخشی از تعهد اصلی باشند. مفهوم درخت هش به افتخار رالف مرکل که آن را در سال 1979 به ثبت رساند، نام گذاری شده است. مهم ترین بخش این درخت، سربرگ یا Header است. در سربرگ، اطلاعاتی مثل: عدد Nonce، هش بلاک و هش ریشه ثبت می شود. هنگامی که در بلاک چین یک بلاک استخراج و سپس تایید می شود، در واقع می توان گفت یک درخت مرکل ایجاد شده است. نقش عدد نانس نیز این است که همه اطلاعات درخت مرکل در آن ثبت و ذخیره می شود.

چگونه عدد نانس را بیابیم؟

تعیین اینکه از کدام اعداد به عنوان nonce استفاده شود، به مقدار قابل توجهی آزمون و خطا نیاز دارد. زیرا همان طور که ذکر شد، این اعداد تصادفی هستند. به همین دلیل ماینر باید یک nonce را حدس بزند، آن را به هش هدر فعلی اضافه کند، مقدار را مجدداً بازنویسی کند و آن را با هش هدف مقایسه کند. اگر مقدار هشی که به دست می آید با الزاماتی که مدنظر داریم مطابق باشد، استخراج کننده راه حلی را ایجاد می کند که منجر به  تعلق گرفتن بلوک به او می شود. بسیار بعید است که یک ماینر در اولین تلاش، بتواند آن را با موفقیت حدس بزند، زیرا ماینر ممکن است تعداد زیادی از گزینه های nonce را پیش از درست کردن، آزمایش کند. هرچه ایجاد هش کمتر از هدف باشد، به احتمال زیاد ایجاد یک راه حل جدید بیشتر زمان می برد. در کل شبکه، سختی بلاک به صورت یکسان است و تمام ماینر ها نیز برای دریافت هش صحیح شانس یکسانی دارند. شبکه های ارز های دیجیتال، معمولاً تعداد بلوک های هدفی را ایجاد می کنند که می خواهند در یک دوره زمانی خاص پردازش شوند. اگر تعداد بلوک های پردازش شده این هدف را برآورده نکند، سختی کاهش می یابد.

نانس صفر به چه معناست؟

در صورت عدم حضور عدد نانس در فرآیند یک تراکنش، امکان ساماندهی نظم تراکنش ها توسط ماینر وجود ندارد. تراکنش هایی که نانس صفر دارند، امکان قرارگیری در لیست تایید ماینر ها را به دلیل عدم حفظ انسجام بلاکچین، ندارند. پس می توان گفت که در یک تراکنش نانس صفر باشد، تراکنش قابل انجام نیست. قوانینی در مورد اینکه چه معاملاتی معتبر هستند وجود دارد و nonce برای اجرای برخی از این قوانین استفاده می شود. 

نتیجه گیری
دنیای کریپتو ماینینگ، بسیار چالش برانگیز است و افراد اغلب به قدرت محاسباتی عالی نیاز دارند تا بتوانند در این زمینه شروع به فعالیت کنند. Nonce برای طیف وسیعی از برنامه های شبکه کامپیوتری، استفاده می شود. یافتن عدد Nonce دشوار است و می توان گفت که راهی برای از بین بردن ماینر هایی با توانایی کمتر در نظر گرفته شده است. در این مقاله از سایت تتر ایران، سعی کردیم تا هر آن چه که نیاز است راجع به عدد نانس و مسائل پیرامون آن بدانید، جمع‌ آوری کرده و شرح دهیم.