بلاکچین، یک فناوری نوظهور است که در حال تغییر دادن روایت های مختلف جهانیان درباره امنیت، شفافیت و نحوه عملکرد سیستمهای اطلاعاتی است. این فناوری به وسیله یک سری از بلوکهای متصل به یکدیگر، اطلاعات را در یک شبکه توزیع شده ذخیره و تایید میکند. هر بلوک حاوی یک مجموعه از تراکنشها و یک شناسه (هش) منحصر به فرد است که به بلوک قبلی متصل شده و توسط فرایند رمزنگاری و تأیید تراکنشها، اطمینان از امنیت و صحت آن فراهم میکند.
اگرچه برخی از افراد معتقدند که بلاکچین به دلیل برخی از نقاط ضعفش، مانند مصرف بالای انرژی برای فرایند ماینینگ و همچنین زمان طولانی برای تأیید تراکنشها، به اندازه کافی امن نیست، اما این فناوری سیستمها و مکانیسمهای خود را برای اطمینان از امنیت بهبود داده است.
یکی از اصلیترین سازوکارهایی که برای تضمین امنیت در بلاکچین به کار میرود، عدد نانس یا “NONCE” است. نانس یک عدد منحصر به فرد است که ماینرها با استفاده از توانمندیهای محاسباتی خود در جهان، سعی در پیدا کردن آن دارند. این جستجو برای یافتن نانس نیازمند قدرت پردازشی بسیار زیاد است و به ماینرها اجازه میدهد تا به عنوان پاداش برای این کار، واحد پولی خاصی را که در شبکه بلاکچین مورد استفاده قرار میگیرد، دریافت کنند.
با توجه به اینکه نانس به صورت تصادفی و با تکنیکهای رمزنگاری پیدا میشود و هیچ الگو یا روش قطعی برای پیدا کردن آن وجود ندارد، این ویژگی اصلی بلاکچین است که امنیت سیستم را تضمین میکند. این فرایند محاسباتی که توسط ماینرها انجام میشود، بخش مهمی از امنیت و استحکام بلاکچین را تشکیل میدهد و باعث میشود تا هرگونه تغییر یا تقلب در دادههای ذخیره شده در بلاکچین بهشدت مشکوک و دشوار باشد.
( در مقاله شیلینگ ما توضیحات کاملی از شیلینگ و تاثیری که بر قیمت ارزهای دیجیتال دارد را توضیح داده ایم )
عدد نانس چیست؟
نانس یا Nonce در دنیای بلاکچین، به عنوان یکی از مفاهیم بسیار حیاتی و اساسی شناخته میشود. این مفهوم نقش مهمی در امنیت و صحت اطلاعات موجود در بلاکهای زنجیرهای (بلاکچین) ایفا میکند. از آنجایی که بلاکچین به شکل متوالی از بلوکهایی است که هرکدام حاوی معاملات و اطلاعات مختلفی هستند و به یکدیگر متصل میشوند، امنیت این سیستم نیاز به یک عنصر کلیدی دارد که تضمین کننده یکتایی و امنیت اطلاعات باشد. در اینجا وارد عملکرد نانس میشویم.
نانس، که اختصاری برای “Number used Once” یا به فارسی “عددی که فقط یک بار استفاده شده است” است، به صورت تصادفی تولید میشود و در بلاکچینهایی که از سیستم اثبات کار (Proof of Work – PoW) استفاده میکنند، نقش بسیار مهمی دارد. برای درک بهتر نحوه عملکرد نانس در بلاکچین، به یک مثال ساده میپردازیم.
فرض کنید یک معلم در کلاس ریاضی یک معادله مانند “۲۱۹ = X + ۲۱۴” را به دانشآموزان میدهد و جایزهای برای پیدا کردن مقدار X قرار میدهد. دانشآموزان مختلف سعی میکنند اعداد مختلفی را جایگزین X کنند تا به جواب برسند. اما در صورتی که معلم تصمیم بگیرد مسئله را سختتر کند، فقط دانشآموزی که باهوشتر باشد میتواند جایزه را بگیرد.
در بلاکچین، عدد نانس بهدقت نقش X در این معادله را ایفا میکند. هدف از سختی استخراج این نانس، افزایش امنیت بلاکها است. شبکه بیتکوین به صورت خودکار سختی استخراج نانس را بر اساس میزان مشارکت و توان محاسباتی ماینرها تنظیم میکند تا زمان استخراج هر بلاک بهصورت متوسط در حدود ۱۰ دقیقه باقی بماند. این فرآیند باعث میشود که تغییر یا تقلب در بلاکهای قبلی بسیار دشوار باشد.
علاوه بر این، نانس یکی از اصلیترین عواملی است که باعث ایجاد امنیت در بلاکهای زنجیرهای میشود. این مفهوم بهطور مستقیم به تضمین امنیت و اعتماد در سیستم بلاکچین کمک میکند.
معانی دیگر نانس
عبارت عدد “نانس” به طور عمومی در حوزههای مختلف با مفاهیم گوناگونی استفاده میشود که از جمله آنها عبارتند از:
1. در حوزهی کامپیوتر و فناوری اطلاعات، عدد نانس بهمعنی عددی است که بهطور یکبار مصرف در فرآیندهای خاص مورد استفاده قرار میگیرد مانند بلاکچین و استفاده در الگوریتمهای رمزنگاری.
2. در حوزهی زبان انگلیسی، عبارت “نانس” به دلیل پیشرفت تکنولوژی، وارد دستور زبان شده است و به عنوان یک واژه روزمره شناخته میشود.
3. “نانس اوردرز” (Nonce orders) نیز یک اصطلاح در معماری است که به سفارشات سفارشی یا بخشهای خاص از سفارشات معمول یا قراردادهای طراحی در معماری اشاره دارد.
4. در بریتانیا، کلمه “نانس” بهعنوان یک اصطلاح برای افرادی با بیماری پدوفیلی استفاده میشود.
بهطور کلی، عبارت “نانس” در متون مختلف و در حوزههای مختلف معانی متفاوتی دارد و به شدت وابسته به سرزمین، زمینه و موقعیت استفادهکننده است.
مفهوم عدد نانس در بلاکچین
بلاکچین به عنوان یک زیرساخت اساسی برای ایجاد و تأمین ارزهای دیجیتال مورد استفاده قرار میگیرد. این سیستم، برای حفظ امنیت و اعتماد در شبکه خود، از مفهومی به نام “عدد نانس” (Nonce) بهره میبرد که نقش بسیار مهمی در فرایند رمزنگاری دادهها و تضمین امنیت بلاکهای زنجیرهای دارد.
در بلاکچین، دادههای موجود در بلاکهای قبلی با استفاده از یک تابع هش (Hash Function) به صورت یک سری اعداد یا حروف رمزگذاری میشوند. این عملیات رمزنگاری با استفاده از تابع هش بهصورتی است که هر ورودی مشخص به یک خروجی با طول ثابت و قابل تنظیم منجر میشود.
تابع هش در بلاکچین یک تابع قطعی و ثابت است؛ به این معنا که هر تغییر کوچک در ورودی باعث تولید یک هش کاملاً متفاوت و یکتا میشود. این ویژگی از تابع هش، باعث ایجاد حفاظت بسیار بالا برای دادههای موجود در بلاکهای زنجیرهای میشود و مسائل محرمانگی و امنیتی را بهبود میبخشد.
در بلاکچینهایی که از الگوریتم اثبات کار (Proof of Work) استفاده میکنند، عدد نانس بهعنوان یک عامل مهم در فرایند تولید هش از طریق تابع هش به کار میرود. ماینرها، در حین پردازش تراکنشهای بلاکها، به دنبال یافتن عدد نانس هستند. آنها با انجام محاسبات پیچیده و رقابت با یکدیگر، سعی در پیدا کردن عدد نانس مناسب برای ایجاد هش با ویژگیهای مورد نیاز برای تأیید بلاک دارند.
بهطور خلاصه، نانس یکی از مولفههای اساسی در فرایند رمزنگاری و تضمین امنیت در بلاکچین است که توسط ماینرها به منظور تولید هش و تأیید صحت بلاکهای جدید استفاده میشود. این مفهوم اساسی برای حفظ امنیت و استحکام سیستم بلاکچین بسیار اساسی است.
انواع عدد نانس
نوع و تولید عدد نانس در بلاکچین میتواند به دو دسته اصلی تقسیم شود: عدد نانس تصادفی و متوالی. هر کدام از این روشها ویژگیهای خاصی را ارائه میدهند که در تأمین امنیت و عملکرد بلاکچین تأثیرگذار هستند.
1. عدد نانس تصادفی:
– در این حالت، عدد نانس با استفاده از یک رشته اعداد تصادفی تولید میشود. این روش میتواند از الگوریتمهای مختلفی برای تولید اعداد تصادفی استفاده کند.
– استفاده از این نوع نانس، امنیت سیستم را در برابر حملاتی که به سیستم میآیند تا چندین کلید را همزمان بررسی کنند، تقویت میکند.
2. عدد نانس متوالی:
– در این حالت، عدد نانس به صورت تدریجی و به ترتیب تولید میشود. به عبارت دیگر، عدد نانس بر اساس الگوی متوالی و به ترتیب افزایشی یا کاهشی تولید میشود.
– استفاده از این روش، ممکن است موجب اشغال فضای غیر ضروری و تکرار مقادیر شود، اما این نوع نانس قابلیت ایجاد پیوستگی در مقادیر تولیدی را از دست نمیدهد.
یک روش مثالی در تولید عدد نانس میتواند همزمان استفاده از خصوصیات هر دو نوع نانس باشد. به عنوان مثال، ترکیب کردن و تولید عدد نانس از یک مولد اعداد شبهتصادفی که بیشتر به نظر تصادفی میآید اما همچنین از رشتههای متوالی مطمئن استفاده میکند. این ترکیب ممکن است امنیت بیشتری را فراهم کند و همزمان قابلیت انطباق با الگوهای متوالی را حفظ کند.
در این روشها، عدد نانس تأثیر زیادی بر امنیت، تنوع و پیشبینیپذیری دادههای تولید شده در بلاک چین دارد. به هر حال، استفاده از روشهایی که ترکیبی از ویژگیهای تصادفی و متوالی را در نظر بگیرند، میتواند از نظر امنیتی و کیفیت دادههای بلاک چین مؤثرتر باشد.
کاربردهای عدد نانس در بلاکچین
عدد نانس (Nonce) در بلاکچین بهعنوان یک مولفه مهم و چند منظوره حائز اهمیت است و در چندین جنبه در این فناوری مورد استفاده قرار میگیرد. این کاربردها به شرح زیر است:
1. استخراج بلوک: در شبکههای بلاکچین مبتنی بر الگوریتم اثبات کار (Proof-of-Work) مانند بیتکوین، ماینرها برای استخراج بلوکهای جدید به حل معماهای پیچیده و انجام محاسبات سنگین نیاز دارند. عدد نانس در اینجا به کار میرود تا ماینرها با تغییر آن، هش بلوک را بهگونهای تولید کنند که شرایط خاصی را برآورده کند. این فرآیند نیازمند تلاش محاسباتی بالا و استفاده از قدرت محاسباتی قوی است.
2. احراز هویت و امضای دیجیتال: در بلاکچین، عدد نانس میتواند در فرایندهای احراز هویت و امضای دیجیتال استفاده شود؛ بهعنوان مثال، در رمزنگاری کلید عمومی (Public Key Cryptography) امضای دیجیتال بر اساس یک عدد نانس تولید میشود تا امنیت اطلاعات تضمین شود.
3. حفظ یکتایی بلوک: هر بلوک در شبکه بلاکچین هش مختص به خود را دارد. با تغییر عدد نانس در فرایند استخراج بلوک، هش بلوک نیز تغییر میکند. این امر سبب حفظ یکتایی بلوک میشود؛ زیرا حتی تغییر کوچکی در عدد نانس به تولید هش جدید و متفاوت میانجامد.
4. جلوگیری از تغییرات در بلوکهای قبلی: در بلاکچین، بلوکها به صورت پیوسته به هم متصل میشوند و تغییر در بلوک یکی، تغییرات در هشهای بلوکهای بعدی را ایجاد میکند. از عدد نانس استفاده میشود تا فرایند تغییر در یک بلوک و تمامی بلوکهای بعدی زمانبر و محاسباتی نشود.
5. مقاومت در برابر حملات: استفاده از عدد نانس و الگوریتم اثبات کار در استخراج بلوکها به شبکه بلاکچین امنیت بیشتری میبخشد. این روش ایجاد هش یکتا و سختی ماینینگ که عدد نانس آن را کنترل میکند، به شبکه امکان مقاومت در برابر حملات نفوذ و تغییرات ناخواسته را میدهد.
در کل، عدد نانس در بلاکچین در بسیاری از جوانب امنیتی و عملکردی این فناوری مورد استفاده قرار میگیرد و به حفظ یکتایی بلوکها، امنیت شبکه و جلوگیری از تغییرات ناخواسته کمک میکند.
چطور عدد نانس را در بلاکچین پیدا کنیم؟
در فرایند استخراج بلاکها در بلاکچین، عدد نانس (Nonce) دارای اهمیت بالایی است. برای یافتن این عدد، ماینرها نیاز دارند که فرآیندی پیچیده و محاسباتی را انجام دهند که شامل مراحل زیر میشود:
1. دادههای بلوک: این شامل اطلاعات مربوط به بلوک قبلی، تراکنشها، زمان ایجاد بلوک و دیگر اطلاعات مربوط است که در اختیار ماینرها قرار دارد.
2. تغییر عدد نانس: ماینرها به صورت تصادفی عدد نانس را تغییر میدهند و این عمل را بر روی دادههای بلوک و عدد نانس انجام میدهند.
3. محاسبه هش: ماینرها هش بلوک جدید را با استفاده از الگوریتم هش (مثلاً الگوریتم SHA-256 در بیت کوین) محاسبه میکنند.
4. بررسی شرایط خاص: هش بلوک محاسبه شده بررسی میشود تا شرایط خاصی که باید برآورده شوند، تأیید شود. برای مثال، در بیت کوین، این شرایط میتواند شامل تعدادی صفر در ابتدای هش باشد که به عنوان Mining Difficulty شناخته میشود.
5. تلاش مجدد: اگر شرایط خاصی برآورده نشوند، ماینر باید مجدداً عدد نانس را تغییر دهد و مراحل ۲ تا ۴ را تکرار کند. این فرایند تا زمانی که عدد نانس مناسب که شرایط خاصی را برآورده میکند، ادامه خواهد داشت.
6. یافتن عدد نانس موفق: وقتی که ماینر عدد نانس مناسب را پیدا میکند و هش بلوک جدید شرایط خاص را برآورده میکند، این بلوک را به شبکه ارسال میکند و به عنوان پاداش برای کشف عدد نانس موفق، جایزه استخراج (مثلاً بیت کوین) دریافت میکند.
فرایند یافتن عدد نانس در بلاکچین نیازمند تلاش محاسباتی بسیار بالا و قدرت محاسباتی قوی است و به صورت تصادفی انجام میشود. این فرآیند تا زمانی ادامه دارد که عدد نانس مناسبی که شرایط خاص را برآورده میکند پیدا شود و بلوک جدید با موفقیت استخراج شود تا به شبکه بلاکچین اضافه شود.
کاربرد نانس در استخراج بیت کوین
استخراج بیتکوین، که به طور ساده فرآیند حل معادلات ریاضی مختلف برای یافتن بلاکهای جدید در بلاکچین بیتکوین است، از عدد نانس به عنوان یکی از عوامل اساسی و حیاتی خود برای تأیید بلاکها استفاده میکند.
در بلاکچین بیتکوین، هر بلاک شامل دو بخش اساسی است: هدر بلاک و بدنه بلاک. اطلاعاتی که در هدر بلاک ذخیره میشوند، شامل هش هدر بلاک قبلی، هش ریشه مرکل تراکنشها، زمان شروع پیدا کردن هش بلاک توسط ماینر، و نیز عدد نانس است.
نقش اصلی عدد نانس در استخراج بیتکوین این است که ماینرها با تغییر آن، میتوانند اطلاعات هدر بلاک را تغییر دهند. این امر باعث میشود که ماینرها باید مجموعهای از نانسها را بیازمایند تا به عددی برسند که هش هدر بلاک به دست آمده از آن، از هش مقصد تعیینشده توسط شبکه کوچکتر باشد.
اولین ماینری که موفق میشود عدد نانس مناسب را پیدا کرده و شرایط تأیید شبکه را برآورده کند، یک بلاک جدید ایجاد میکند و در نتیجه پاداش استخراج بلاک را دریافت میکند. از این رو، عدد نانس به عنوان “عدد رویایی ماینرها” شناخته میشود، زیرا ماینرها به دنبال یافتن این عدد به منظور ایجاد بلوکهای جدید و دریافت پاداش هستند. این فرآیند به صورت مداوم برای تولید هر بلاک در بیتکوین ادامه دارد و از اهمیت ویژهای برخوردار است.
عدد نانس کجا قرار می گیرد؟
عدد نانس در بلاکچین به عنوان یکی از مؤلفههای مهم و اساسی در ساختار هر بلاک قرار میگیرد. هر بلاک در بلاکچین شامل چندین بخش است که هر کدام وظیفهها و اطلاعات خاص خود را دارند. این بخشها شامل:
– هش بلوک قبلی (Previous Block Hash): مقدار هش که به بلاک قبلی اشاره دارد و ارتباط پیوندی بین بلوکها را ایجاد میکند.
– دادههای تراکنش (Transaction Data): لیستی از تراکنشهایی که در بلوک جدید صورت میگیرند، این تراکنشها اطلاعات مبادله شده بین کاربران را نشان میدهند.
– زمان ایجاد بلوک (Timestamp): زمان دقیقی که بلوک ایجاد شده است و به صورت تاریخگذاری شده در بلاک ذخیره میشود.
– عدد نانس (Nonce): این عدد توسط ماینر برای استخراج بلوک بکار میرود. ماینرها این عدد را مکرراً تغییر میدهند تا هش بلوک جدیدی را ایجاد کنند که شرایط خاصی (مانند یک الگوریتم تعیین شده) را برآورده کند.
– هش بلوک (Block Hash): نتیجهی عملیات هش در تمامی دادههای بلوک است که شامل هش بلوک قبلی، دادههای تراکنش، زمان ایجاد بلوک و عدد نانس میباشد. این هش به عنوان یک مرجع برای تأیید اطلاعات بلوک و ارتباط با بلوکهای دیگر در بلاکچین استفاده میشود.
بنابراین، عدد نانس یکی از اجزای حیاتی بلاک چین است که نقش مهمی در فرایند استخراج بلوکها و تأیید صحت آنها دارد و توسط ماینرها با تغییر و آزمایش مکرر ایجاد میشود تا به شرایط مورد نظر جهت تولید بلاک برسد.