نانس (Nonce) در بلاکچین چیست؟

نانس

یک نانس (nonce) که مخفف عبارت «تعداد یک بار استفاده شده» است، یک عدد ویژه است که در طول فرآیند استخراج به یک بلوک در بلاکچین اختصاص می‌یابد. این یک بخش اساسی از مکانیزم اجماع اثبات کار (PoW) است.

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

نانس صحیح برای اعتبار بخشیدن به مشروعیت یک بلوک ضروری است و نقشی اساسی در ایجاد بلوک ایفا می کند. با بالا بردن تلاش محاسباتی مورد نیاز برای چنین تغییراتی، مانع از دستکاری عوامل مخرب در داده ها می شود.

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

 

اهمیت یک نانس در امنیت بلاکچین

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

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

نانس

چگونه از نانس در شبکه بلاکچین بیت کوین استفاده می شود؟

ماینرها از نانس بیت کوین در یک فرآیند آزمون و خطا برای یافتن یک هش خاص استفاده می‌کنند و معیارهای دشواری شبکه را برآورده می‌کنند و در نتیجه یک بلوک جدید به بلاکچین اعتبار می‌دهند و اضافه می‌کنند.
فرآیند گام به گام زیر نحوه محاسبه و استفاده از نانس در استخراج بیت کوین را توضیح می دهد:

-راه اندازی بلوک: ماینرها یک بلوک جدید را با تراکنش های معلق جمع آوری می کنند.
-شمول نانس: یک نانس منحصر به فرد به هدر بلوک اضافه می شود.
-تلاش برای هش کردن: ماینرها بلوک را با استفاده از SHA-256 هش می کنند.
-بررسی دشواری: هش با هدف دشواری شبکه مقایسه می شود.
-فرآیند تکراری: ماینرها نانس ها را تنظیم می کنند تا زمانی که مشکل هش را پیدا کنند و بلوک را برای اضافه شدن به بلاکچین اعتبارسنجی کنند.

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

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

 

انواع مختلف نانس چیست؟

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

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

درک زمینه و هدف خاص بسیار مهم است زیرا نانس ها اشکال مختلفی دارد که هر کدام برای برآوردن نیازهای امنیتی یا عملکردی خاص در زمینه گسترده‌تر علوم کامپیوتر و رمزنگاری طراحی شده‌اند.

بیت کوین

حملات غیر مرتبط در کریپتو و نحوه جلوگیری از آنها

در زمینه رمزنگاری، حملاتی که شامل نانس‌ها می‌شوند، بیشتر بر استفاده از نقص‌ها در ایجاد یا مدیریت نانس‌ها ، به‌ویژه در پروتکل‌های رمزنگاری متمرکز هستند.
یک مثال قابل توجه حمله “nonce reuse” است، که در آن یک طرف مخرب می تواند از نانس در طول یک فرآیند رمزنگاری استفاده مجدد کند، بنابراین احتمال به خطر افتادن ویژگی های امنیتی را افزایش می دهد. این امر مخصوصاً برای سیستم‌هایی که به منحصربه‌فرد بودن غیرنفره‌ها وابسته هستند، مانند امضای دیجیتال و رمزگذاری بسیار مهم است.

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

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