فهرست مطالب
شاید تا به امروز عبارت نانس (Nonce) به گوش شما خورده باشد. این مفهوم یکی از کلیدیترین و شاید فنیترین موضوعات تکنولوژی بلاکچین و ارزهای دیجیتال است و البته نقشی کلیدی در الگوریتم اثبات کار دارد. در این مقاله به بررسی کامل مفهوم نانس و کاربرد آن در فناوری بلاکچین پرداختهایم. بدون نانس هیچ ماینری نمیتواند بلاک جدید ایجاد کند و شبکههایی مثل بیت کوین غیرفعال خواهند شد.
اهمیت Nonce در بلاکچین
ارزهای دیجیتال یکی از جذابترین پدیدههای اقتصادی قرن ۲۱ هستند. رمزارزها با استفاده از فناوری بلاکچین توسعه یافتهاند. بنابراین بلاکچین نقشی حیاتی در تشکیل این اکوسیستم جدید اقتصادی داشته است.
یکی از مهمترین مبانی رمزنگاری در فناوری بلاکچین، مفهوم نانس (Nonce) است. تعاریف و توضیحات زیادی در مورد نانس ارائه شده است و تا مدتها کمتر کسی به این موضوع مهم توجه داشت. نانس را میتوان کلید ایجاد بلاکهای جدید شبکههای PoW معرفی کرد یا از آن به عنوان یکی از مهمترین بخشهای الگوریتم اثبات کار نام برد.
همانطور که ذکر شد، ارزهای دیجیتال با استفاده از فناوری بلاکچین توسعه یافتهاند و اکثر آنها از یک دفتر کل توزیع شده غیرمتمرکز برای ثبت تراکنشها استفاده میکنند. برای مثال تمام تراکنشهای BTC در دفتر کل توزیع شده شبکه بیت کوین ثبت میشود. فناوری بلاکچین ارزش آخرین بلاک را به صورت یک مقدار هش برای بلاک فعلی ذخیره میکند. در نتیجه هیچ کس نمیتواند بلاک جدید را بدون اصلاح بلاکهای قبلی تغییر دهد.
ماینرهای شبکه، بلاکهای جدید را ایجاد و سپس فرآیند اعتبارسنجی تراکنشها را آغاز میکنند. پس از آن، بلاک جدید به زنجیره اصلی شبکه اضافه میشود. ماینرهایی که میخواهند تراکنشها را اعتبارسنجی و بلاکهای جدید را ایجاد کنند، باید از مکانیزم اجماع اثبات کار (Proof-of-Work) تبعیت کنند. نانس در بلاکچین نقطه مرجع و معیار فرآیند اثبات کار محسوب میشود و هر ماینری باید با توجه به این مقدار، الگوریتم استخراج را دنبال کند.
نانس چیست؟
کلمه Nonce مخفف عبارت Number Used Once و یک عدد تصادفی است که فقط یک بار میتوان از آن استفاده کرد. در واقع نانس یک فیلد ۳۲ بیتی است که توسط ماینرها برای اطمینان از اعتبار در زمان حل تابع هش و ایجاد بلاک جدید استفاده میشود. پس از یافتن Nonce به طور کامل، ماینرها میتوانند از آن برای ایجاد بلاک استفاده کنند.
نانس در بلاکچین یک عدد شبه تصادفی است که معمولاً به عنوان شمارنده در فرآیند استخراج به کار گرفته میشود. برای مثال، زمانی که ماینرهای بیت کوین در حال تلاش برای حل تابع هش هستند، باید مقدار نانس را حدس بزنند. استخراجکنندگانی که بتوانند این مقدار را درست حدس بزنند، یک بلاک به زنجیره اصلی اضافه خواهند کرد و در ازای پیدا کردن Nonce پاداش دریافت میکنند. اصطلاح نانس طلایی یا Golden Nonce به مقداری صحیحی گفته میشود که شرایط برای استخراج بلاک را فراهم میکند.
استخراج یک فرآیند جامع است. ماینرهای زیادی دائماً در حال تلاش برای ایجاد بلاک جدید هستند. هدف اصلی استخراجکنندگان، یافتن یک خروجی معتبر برای تابع هش است. زمانی که خروجی هش ماینرها کمتر از آستانه از پیش تعریف شده باشد، بلاک جدید ایجاد و به زنجیره اصلی اضافه میشود. پس از استخراج موفقیتآمیز و اعتبارسنجی بلاک جدید، جستوجو برای نانس جدید از سر گرفته خواهد شد تا روند ایجاد و اضافه شدن بلاکها ادامه داشته باشد.
نقش نانس در بلاکچین و فرآیند استخراج
ماینرها نمیتوانند بدون پیدا کردن مقدار Nonce به اعتبارسنجی تراکنشها بپردازند. در شبکه بیت کوین و بسیاری دیگر از رمزارزهای مبتنی بر الگوی PoW، نانس بیشتر شبیه به یک عدد تصادفی به نظر میرسد. ماینرها باید دائماً مقادیر مختلفی برای Nonce در نظر بگیرند تا بتوانند جواب نهایی تابع هش را به دست آورند. در واقع استخراجکنندگان از روش آزمون و خطا برای تخمین Nonce بهره میگیرند.
بنابراین نانس یکی از مهمترین عناصر استخراج است. بدون یافتن این مقدار، خبری از بلاکهای جدید در شبکه نخواهد بود و هیچ ماینری نیز پاداش دریافت نمیکند.
مشکل پیدا کردن Nonce
ماینرهایی که برای یافتن نانس در بلاکچین تلاش میکنند باید از فرآیندها و چالشهای آن آگاه باشند تا از بروز مشکلات مختلف جلوگیری کنند. یکی از مهمترین مشکلات، رشته کدی است که مربوط به Nonce است. حدس زدن رشته تصادفی ۳۲ بیتی با استفاده از روش آزمون و خطا بسیار دشوار خواهد بود. ماینرها باید مقدار Nonce را حدس بزنند و سپس آن را به هش هدر موجود اضافه کنند. سپس این مقدار دوباره پردازش میشود و با هش هدف مقایسه خواهد شد. اگر مقدار هش بهدستآمده با شرایط از پیش تعیین شده تطابق داشته باشد، ماینرها پاداش ایجاد بلاک جدید را دریافت خواهند کرد.
پیدا کردن Nonce از طریق روش آزمون و خطا صورت میگیرد. بنابراین ممکن است ماینرها مجبور شوند یک میلیون بار مقدار نانس را حدس بزنند. از طرفی مقدار سختی بلاک در کل شبکه ثابت است. در نتیجه همه ماینرها فرصت برابری برای شناسایی هش صحیح خواهند داشت.
اغلب شبکههای بلاکچین برنامه مشخصی برای استخراج مقدار تعیینشدهای از بلاکها در مدت معینی دارند. بنابراین سطح سختی شبکه به صورت دورهای افزایش یا کاهش مییابد تا سرعت روند استخراج مطابق با برنامهها پیش برود. اگر تعداد بلاکهای استخراجشده در یک دوره خاص کمتر از هدف تعیینشده باشد، سختی شبکه کاهش مییابد تا اهداف مورد نظر تحقق پیدا کنند.
ماینرها باید با یکدیگر رقابت کنند. استخراجکنندهای که زودتر بتواند Nonce را پیدا کند، بلاک جدید را ایجاد خواهد کرد و پاداش دریافت میکند. بنابراین قدرت پردازشی نقشی تعیینکننده در این رقابت دارد. با این حال تعیین Nonce تنها به منابع محاسباتی وابسته نیست. تعداد ماینرهایی که در استخراج یک ارز دیجیتال مشارکت دارند، دشواری یافتن این مقدار را افزایش یا کاهش خواهند داد.
موارد استفاده از نانس
اهمیت Nonce در بلاکچین بسیار بیشتر از کاربردهای این مفهوم در الگوریتم اثبات کار است. از این مقدار میتوان برای پروتکلهای احراز هویت و محافظت از ارتباطات اینترنتی بهره گرفت. یک Nonce میتواند به صورت بردار اولیه برای رمزگذاری دادهها مورد استفاده قرار بگیرد. به عبارت دیگر برای جلوگیری از تکرار توالی در متون و ارقام رمزگذاریشده، میتوان یک بار از مقادیر Nonce استفاده کرد. برخی از امضاهای الکترونیکی نیز از نانس برای ایجاد، مقایسه و تأیید فرآیندها استفاده میکنند.
با این وجود، در حال حاضر مهمترین کاربرد Nonce تغییر ورودی در تابع هش رمزنگاری در شبکههای PoW است.
خلاصه مطلب
نانس یکی از اساسیترین مفاهیم تکنولوژی بلاکچین و ارزهای دیجیتال است. این مفهوم که جزو عناصر اصلی فرآیند اجماع اثبات کار محسوب میشود، نقشی کلیدی در ایجاد بلاکهای جدید شبکه دارد. ماینرها دائماً تلاش میکنند که Nonce را حدس بزنند و پاداش دریافت کنند. البته این تنها کاربرد نانس نیست و از این مفهوم برای موارد مختلفی مثل امضای الکترونیکی نیز استفاده میشود.
دیدگاه خود را ثبت کنید