عدد Nonce در بلاک چین عددی تصادفی است که ماینرها در فرایند استخراج بلوک تغییر می دهند. هدف این تغییر و محاسبه مجدد هش بلوک، به دست آوردن یک هش با الگوی خاص است که شرایط معادله اثبات کار را برآورده کند. این فرایند نیازمند تلاش محاسباتی زمان بر است و به دلیل ماهیت تصادفی آن، به قدرت محاسباتی بالا نیاز دارد.
استفاده از این عدد در بلاک چین به منظور ایجاد امنیت شبکه و جلوگیری از تغییرات غیرمجاز در بلوک هاست. با تغییر حتی کوچکی در این عدد، هش بلوک کاملاً تغییر می کند و برای تغییر یک بلوک قبلی به تغییر عدد نانس و محاسبه مجدد هش بلوک نیاز است که به قدرت محاسباتی زیادی نیاز دارد.
عدد نانس در بلاک چین متغیری مهم و دارای کاربردهای چندگانه است. در این مقاله به طور مفصل درباره چیستی عدد نانس و چیستی آن در بلاک چین و کاربردهای دیگر آن بیشتر صحبت خواهیم کرد. پس تا انتهای این مقاله همراه ما باشید.
عدد Nonce چیست؟
این عدد یک مفهوم رمزنگاری است که در زمینه های مختلف از جمله رمزنگاری کلید عمومی، رمزنگاری بلوکی (Block ciphers) و شبکه های بلاک چین (Blockchain) استفاده می شود. در شبکه های بلاک چین نیز نانس برای ایجاد یک هش یکتا در فرایند استخراج بلوک به کار می رود.
ماینرها (ماینرهای بلاک چین) باید با یافتن نانس معتبر، معادله های ریاضیاتی پیچیده ای را حل کنند تا بتوانند بلوک جدیدی را به زنجیره بلاک بیفزایند. این فرایند، کار اثبات کار (Proof-of-Work) نامیده می شود و روشی ایمن برای تحقق توافق بین شرکت کنندگان در شبکه بلاک چین است.
عدد Nonce عددی تصادفی و یکتاست که به صورت موقت و تصادفی ایجاد می شود. این عدد برای اهداف مشخصی ایجاد شده و اصطلاح «Nonce» درواقع مخفف عبارت «Number Used Once» است که معنای یک بار استفاده از عدد را می دهد.
این عدد در رمزنگاری بلوکی، برای ایجاد ورودی یا برچسب تصادفی در فرایندهای رمزنگاری استفاده می شود؛ برای مثال در وقت رمزنگاری پیام با استفاده از الگوریتم AES، نانس به عنوان بخشی از ورودی (به منزله یک برچسب) برای رمزنگاری بلاک استفاده می شود. با این اقدام هر بار که پیامی با استفاده از کلید رمزنگاری بلاکی رمزگشایی می شود، خروجی متفاوتی به دست بیاید.
عدد نانس Nonce در بلاک چین چیست؟
این عدد در شبکه های بلاک چین در بلوک ها استفاده می شود. هر بلوک در یک شبکه بلاک چین یک هش (Hash) دارد که نتیجه ای از عملیات هش یا Hashing است که روی داده های هر بلوک اثر می گذارد. برای ایجاد هش یکتا و تأیید بلوک، لازم است ماینرها معادله های ریاضیاتی پیچیده ای را حل کنند.
این معادله ها معادله اثبات کار (Proof-of-Work Equation) نیز شناخته می شوند. وظیفه ماینرها یافتن راه حل معادله و رمزگشایی معادله است. این معادله به صورت خلاصه شامل هش داده های بلوک فعلی، هش بلوک قبلی و عدد نانس است. هدف ماینرها این است که عدد Nonce را تغییر دهند و معادله را با تغییرات عدد نانس به طور مکرر حل کنند تا به هشی که مدنظر آن هاست برسند.
برای مثال، در بیت کوین، معادله اثبات کار برای استخراج بلوک ها از الگوریتم ماینینگ (Mining) به نام الگوریتم ((PoW) Proof-of-Work) استفاده می کند. ماینرها باید عدد نانس را به گونه ای تغییر دهند که هش بلوک تولیدشده توسط آن ها که شامل هش بلوک قبلی و داده های بلوک فعلی است، شرایط خاصی را برآورده کند. این شرایط از قبیل داشتن تعدادی صفر در ابتدای هش است که به عنوان سختی ماینینگ (Mining Difficulty) شناخته می شود.
با تغییر عدد Nonce و تکرار حل معادله اثبات کار، ماینرها به تدریج به هش مورد نظر می رسند و بلوک جدید را ایجاد می کنند. به عنوان پاداش برای حل معادله و ایجاد بلوک جدید، ماینر موفق یک مقدار از واحد ارز شبکه (مثلاً بیت کوین) دریافت می کند.
با استفاده از عدد Nonce فرایند استخراج بلوک ها در شبکه بلاک چین قابل تنظیم و تأمین امنیت شبکه می شود؛ زیرا ایجاد هش یکتا و پیدا کردن حل معادله بسیار زمان بر است و به قدرت محاسباتی بالا نیاز دارد.
کاربردهای نانس در بلاک چین
عدد نانس در بلاک چین کاربردهای مختلفی دارد که در ادامه به برخی از آن ها اشاره کرده ایم:
- استخراج بلوک: در شبکه های بلاک چین مبتنی بر الگوریتم اثبات کار (Proof-of-Work) مانند بیت کوین، ماینرها برای استخراج بلوک های جدید به حل معادله پیچیده نیاز دارند. عدد نانس در اینجا استفاده می شود تا ماینرها با تغییر آن، هش بلوک را به گونه ای تولید کنند که شرایط خاصی را برآورده کند. این فرایند نیازمند تلاش محاسباتی بالا و استفاده از قدرت محاسباتی قوی است.
- احراز هویت و امضای دیجیتال: در بلاک چین عدد نانس می تواند در فرایندهای احراز هویت و امضای دیجیتال استفاده شود؛ برای مثال، در رمزنگاری کلید عمومی (Public Key Cryptography) امضای دیجیتال براساس یک عدد نانس تولید می شود تا امنیت اطلاعات تضمین شود.
- حفظ یکتایی بلوک: هر بلوک در شبکه بلاک چین هش مختص به خود را دارد. با تغییر عدد نانس در فرایند استخراج بلوک، هش بلوک نیز تغییر می کند. این امر سبب حفظ یکتایی بلوک می شود؛ زیرا حتی تغییر کوچکی در عدد نانس به تولید هش جدید و متفاوت می انجامد.
- جلوگیری از تغییرات در بلوک های قبلی: در بلاک چین، بلوک ها به صورت پیوسته به هم متصل می شوند و تغییر در بلوکی سبب تغییر در هش های بلوک های بعدی می شود. از عدد نانس استفاده می شود تا فرایند تغییر در یک بلوک و تمامی بلوک های بعدی زمان بر و محاسباتی نشود.
- مقاومت در برابر حملات: استفاده از عدد نانس و الگوریتم اثبات کار در استخراج بلوک ها به شبکه بلاک چین امنیت بیشتری می بخشد. این روش ایجاد هش یکتا و سختی ماینینگ که عدد Nonce آن را کنترل می کند، به شبکه امکان مقاومت در برابر حملات نفوذ و تغییرات ناخواسته را می دهد.
در کل عدد Nonce در بلاک چین در بسیاری از جوانب امنیتی و عملکردی این فناوری استفاده می شود و به حفظ یکتایی بلوک ها، امنیت شبکه و جلوگیری از تغییرات ناخواسته کمک می کند.
چطور عدد نانس را در بلاک چین پیدا کنیم؟
همان طور که قبلاً نیز گفتیم، برای پیدا کردن عدد Nonce در بلاک چین، ماینرها باید معادله اثبات کار (Proof-of-Work Equation) را حل کنند. این فرایند تقریباً بی شمار است و به تلاش محاسباتی بسیار بالا نیاز دارد. در ادامه، فرایند یافتن عدد نانس در بلاک چین را به صورت کلی توضیح داده ایم:
- داده های بلوک: ماینر برای استخراج بلوک جدید، داده های مربوط به بلوک قبلی و داده های بلوک فعلی را در اختیار دارد. این داده ها شامل هش بلوک قبلی، تراکنش ها، زمان ایجاد بلوک و سایر اطلاعات مربوط است.
- تغییر عدد نانس: ماینر این عدد را به صورت تصادفی تغییر می دهد و به هش داده های بلوک و عدد نانس، یعنی به معادله اثبات کار، اعمال می کند.
- محاسبه هش: ماینر هش بلوک جدید را با استفاده از الگوریتم هش (مثلاً الگوریتم SHA-256 در بیت کوین) محاسبه می کند.
- بررسی شرایط خاص: هش بلوک محاسبه شده بلوک جدید را بررسی می کند تا شرایط خاصی که لازم است به وجود بیاید تأیید شود. این شرایط برای مثال در بیت کوین شامل تعدادی صفر در ابتدای هش است که Mining Difficulty شناخته می شود.
- تلاش مجدد: با برآورده نشدن شرایط خاصی که قبل تر گفتیم، ماینر باید مجدد عدد نانس را تغییر دهد و مراحل ۲ تا ۴ را تکرار کند. این فرایند تا زمانی که عدد Nonce مناسب که شرایط خاصی را برآورده می کند ادامه دار خواهد بود.
- یافتن عدد نانس موفق: هنگامی که عدد نانس مناسب پیدا شود و هش بلوک جدید شرایط خاص را برآورده کند، ماینر این بلوک را به شبکه ارسال می کند و از جایزه استخراج (مثلاً بیت کوین) به عنوان پاداش برای کشف عدد نانس موفق بهره مند می شود.
فرایند پیدا کردن عدد نانس در بلاک چین یک فرایند تلاش محاسباتی و نیازمند قدرت محاسباتی بالا و تلاش زمان بر است. ماینرها با تکرار این فرایند، به طور تصادفی و تدریجی به عدد نانس مورد نظر می رسند تا بلوک جدید را استخراج کنند و به شبکه بلاک چین بیفزایند.
عدد نانس کجا قرار می گیرد؟
عدد Nonce در بلاک چین در ساختار بلوک قرار می گیرد. در هر بلوک، عدد نانس به عنوان یکی از فیلدها درج می شود. ساختار یک بلوک در بلاک چین معمولاً شامل اطلاعات زیر است:
- هش بلوک قبلی (Previous Block Hash): یک مقدار هش که به بلوک قبلی در شبکه اشاره کرده و بین بلوک ها ارتباط را برقرار می کند.
- داده های تراکنش (Transaction Data): لیستی از تراکنش هایی که در بلوک جدید صورت می گیرند.
- زمان ایجاد بلوک (Timestamp): زمان دقیقی که بلوک ایجاد شده است.
- عدد نانس (Nonce): عددی که ماینر برای استخراج بلوک باید تغییر دهد تا شرایط خاصی را برآورده کند و هش بلوک جدید را بسازد.
- هش بلوک (Block Hash): نتیجه عملیات هش در تمامی داده های بلوک که شامل بلوک قبلی، داده های تراکنش، زمان ایجاد بلوک و عدد نانس می شود.
جمع بندی
در این مقاله سعی کردیم درباره عدد نانس که عددی تصادفی است و ماینرها در فرایند استخراج بلوک که برای حل معادله اثبات کار در بلاک چین آن را تغییر می دهند صحبت کنیم. سپس درباره کارکردهای عدد نانس که شامل استخراج بلوک، احراز هویت و امضای دیجیتال، جلوگیری از حملات هکری و… است صحبت کردیم. درنهایت نیز به بررسی اینکه چطور می توان عدد نانس را پیدا کرد و چگونه از آن استفاده کرد پرداختیم.
پرسش های متداول
این عدد یک مفهوم رمزنگاری است که در زمینه های مختلف از جمله رمزنگاری کلید عمومی، رمزنگاری بلوکی (Block ciphers) و شبکه های بلاک چین استفاده می شود
این عدد در شبکه های بلاک چین در بلوک ها که هرکدام یک هش دارند و ماینرها برای ایجاد هش یکتا و تأیید بلوک ها معادلات ریاضیاتی پیچیده ای را حل می کنند استفاده می شود.
این عدد در بلاک چین در موارد مختلفی مانند احراز هویت و امضای دیجیتال، استخراج بلوک، جلوگیری از حملات هکری و حفظ یکتایی بلوک استفاده می شود.