نانس (nonce مخفف عبارت “number used once”) به معنی “عددی که یک بار استفاده شده” است. این یک عدد خاص بوده که در طول فرایند استخراج به یک بلاک در بلاک چین اختصاص می یابد. نانس بخش مهمی از مکانیسم اجماع اثبات کار (PoW) به شمار می آید. این مطلب شرح مختصری بر این مفهوم است.
الگوریتم اثبات کار یا PoW چیست و چگونه کار می کند؟
نانس چیست؟
نانس که به عنوان یک پازل رمزنگاری عمل می کند، متغیری است که ماینرها روی آن کار می کنند تا یک هش تولید کنند که نیازهای خاصی را برآورده کند. ماینرها به تغییر دادن نانس ادامه می دهند تا زمانی که هشی را پیدا کنند که ویژگی های لازم را دارا باشد. این فرایند تکرار شونده که به استخراج معروف است، امنیت بلاک چین را تضمین می کند.
نانس صحیح برای تایید صحت یک بلاک ضروری است و نقش مهمی در ایجاد بلاک ایفا می کند. نانس با بالا بردن تلاش محاسباتی مورد نیاز برای چنین تغییراتی، مانع از دستکاری داده ها توسط افراد خرابکار می شود.
فرایند استخراج با روش آزمون و خطایی که در تعیین نانس صحیح انجام می شود، پیچیده تر می شود. در صورتی که ماینرها نانس صحیح را پیدا کنند، بلاک معتبر تلقی می شود. این نقش مهم نانس را در حفظ اجماع، امنیت و استحکام بلاک چین نشان می دهد.
اهمیت نانس در امنیت بلاک چین
عملکرد متنوع نانس به امنیت بلاک چین کمک زیادی می کند. این عدد خاص اهمیت زیادی در جلوگیری از حمله دوبار خرج کردن دارد که می تواند ثبات و استحکام ارزهای رمزنگاری را به خطر بیندازد. بلاک چین با الزام ماینرها به انجام یک فرایند محاسباتی دشوار و پرهزینه برای کشف یک نانس خاص، امکان دستکاری متقلبانه را کاهش می دهد. این اطمینان می دهد که هر تراکنش به طرز بی نظیری تایید می شود.
علاوه بر این، نانسبا تحمیل هزینه محاسباتی بر مهاجمانی که سعی در تصاحب بخش عمده ای از شبکه دارند، به دفاع در برابر حملات سیبیل می افزاید. مهاجمان خرابکار با این استراتژی از حمله به سیستم با هویت های جعلی منصرف می شوند.
همچنین، نانس نقش مهمی در حفظ تغییرناپذیری بلاک ها ایفا می کند. هر گونه تلاش برای تغییر محتوای یک بلاک مستلزم محاسبه مجدد نانس است که این کار عملا شدنی نیست و این ثبات و مقاومت بلاک چین را در برابر دستکاری تقویت می کند.
نانس چگونه در شبکه بیت کوین استفاده می شود؟
ماینرها از نانس بیت کوین در یک فرایند آزمون خطا برای یافتن یک هش خاص استفاده می کنند و معیارهای سختی شبکه را برآورده می کنند و در نتیجه یک بلاک جدید را تایید کرده و به بلاک چین اضافه می کنند.
بیت کوین چیست؟ آموزش کامل بیت کوین
فرایند گام به گام زیر نحوه محاسبه نانس و استفاده از آن را در استخراج بیت کوین توضیح می دهد:
- ایجاد بلاک: ماینرها یک بلاک جدید را با تراکنش های معلق (pending) ایجاد می کنند.
- افزودن نانس: یک نانس منحصر به فرد به هدر بلاک اضافه می شود.
- هش کردن (Hashing): ماینرها بلاک را با استفاده از الگوریتم SHA-256 هش می کنند.
- بررسی سختی: هش با سطح سختی استخراج مقایسه می شود.
- فرایند تکراری: ماینرها نانس را تغییر می دهند تا زمانی که هش منطبق با سختی را پیدا کنند و بلاک را برای اضافه شدن به بلاک چین تایید کنند.
سختی یافتن یک نانس معتبر در بلاک چین بیت کوین به طور منظم تنظیم می شود تا زمان ایجاد بلاک ثابت بماند. برای اطمینان از این که ماینرها (که برای پیدا کردن نانس صحیح برای یک هش معتبر بلاک رقابت می کنند) با سختی متناسب با نرخ هش مواجه شوند، این سختی تطبیقی براساس تغییرات قدرت محاسباتی شبکه تنظیم می شود.
نرخ هش یا قدرت هش بیت کوین چیست؟
سختی با قدرت شبکه افزایش می یابد و یافتن یک نانس صحیح نیاز به قدرت پردازش بیشتری دارد. از سوی دیگر، وقتی ظرفیت پردازش شبکه کاهش می یابد، سطح سختی نیز کاهش پیدا می کند و ایجاد بلاک را آسان تر می کند.
انواع مختلف نانس
در حالی که مفهوم نانس به طور گسترده در فناوری بلاک چین استفاده می شود، انواع مختلفی از آن در اپلیکیشن های مختلف وجود دارد. یک نوع رایج آن، نانس رمزنگاری است که در پروتکل های امنیتی استفاده می شود تا حملات مکرر را با تولید یک عدد خاص برای هر تراکنش یا دوره خنثی کند.
نوع دیگری از نانس شامل تابع هش رمزنگاری نانس است که در الگوریتم های هشینگ برای تغییر نانس ورودی به منظور تغییر هش خروجی استفاده می شود. در برنامه نویسی، نانس به مقادیر تولید شده برای اطمینان از منحصر به فرد بودن داده ها یا جلوگیری از تضاد اشاره می کند.
هشینگ(Hashing) و هش تراکنش چیست؟
درک موقعیت و هدف خاص اهمیت زیادی دارد، چون نانسها اشکال مختلفی دارند که هر کدام برای برآوردن نیازهای امنیتی یا عملکردهای ویژه در زمینه گسترده تر علوم کامپیوتر و رمزنگاری طراحی شده اند.
تفاوت بین نانس و هش
در حوزه بلاک چین، نانس متغیری است که ماینر ها برای تولید هش هایی که الزامات خاصی را برآورده کنند، استفاده می کنند، در حالی که هش یک خروجی با اندازه ثابت است که از داده های ورودی تولید می شود. تفاوت های بین هش و نانسدر جدول زیر ذکر شده اند.
حملات مرتبط با نانس و نحوه جلوگیری از آنها
یک نمونه مهم از حملات مرتبط با نانس، حمله “استفاده مجدد از نانس” است که در آن یک مهاجم می تواند از نانس در طول یک فرایند رمزنگاری استفاده مجدد کند، در نتیجه احتمال به خطر افتادن ویژگی های امنیتی را افزایش می دهد. این حمله بیشتر سیستم هایی را هدف قرار می دهد که متکی به منحصر به فرد بودن نانس ها (مانند امضای دیجیتال و رمزگذاری) هستند.
حمله “قابل پیش بینی بودن نانس” یکی دیگر از حملات رایج است که در آن مهاجمان می توانند عملیات رمزنگاری را به دلیل الگوی قابل پیش بینی نانس، پیش بینی و دستکاری کنند.علاوه بر این، حمله “نانس منسوخ یا قدیمی” نیز وجود دارد که مهاجم با استفاده از نانسهای معتبر یا نامعتبر قدیمی سعی در فریب دادن سیستم ها را دارد.
پروتکل های رمزنگاری باید ماهیت منحصر به فرد بودن و غیرقابل پیش بینی بودن نانسها را تضمین کنند تا از حملات مرتبط با آن جلوگیری کنند. استفاده از ابزار مناسب برای تولید عدد تصادفی ضروری است، چون تضمین می دهد که احتمال تکراری بودن نانس تولید شده پایین است. استفاده مجدد از نانسها در رمزنگاری نامتقارن می تواند عواقب خطرناکی، مانند افشای کلیدهای خصوصی یا به خطر افتادن حریم خصوصی ارتباطات رمزگذاری شده، را به همراه داشته باشد.
کلید خصوصی(Private Key) چیست؟
علاوه بر این، به روزرسانی مستمر برنامه های رمزنگاری به همراه بررسی های مداوم جهت کشف رویه های غیرعادی در استفاده از نانسها می تواند به پیشگیری از حملات مرتبط با آن کمک کند. کاهش آسیب پذیری های مرتبط با نانس مستلزم استفاده از بهترین شیوه های امنیتی، مانند ارزیابی منظم عملیات رمزنگاری و پیروی دقیق از الگوریتم های رمزنگاری استاندارد، است.