نانس (Nonce) چیست؟ نقش نانس در استخراج بیتکوین و تراکنش اتریوم
فهرست مطالب۱۱ بخش
- نانس چیست؟ معنای سادهی یک کلمهی عجیب
- نانس در استخراج بیتکوین چه نقشی دارد؟
- هدر بلاک: نانس کجا نشسته است؟
- مسابقهی پیدا کردن نانس، قدمبهقدم
- چرا نانس بیتکوین زود تمام میشود؟
- نانس و سختی شبکه چه رابطهای دارند؟
- نانس و استخراج بیت کوین برای آدم معمولی
- نانس در تراکنش اتریوم چیست؟
- نانس حساب دقیقا چه کاری میکند؟
- نانس را کجا ببینیم؟
- چرا تراکنش گیرکرده پیش میآید؟
- چطور تراکنش گیرکرده را با نانس جایگزین کنیم؟
- اشتباههای رایج کاربران با نانس
- نانس بلاک و نانس حساب در یک نگاه
- چرا نانس برای امنیت بلاکچین مهم است؟
- سوالات متداول
- جمعبندی

نانس چیست؟ نانس (Nonce) یعنی «عددی که فقط یک بار به کار میرود». در بلاکچین دو معنا دارد. در استخراج بیتکوین، نانس عددی در سربرگ بلاک است که ماینر آنقدر عوضش میکند تا هش بلاک شرط شبکه را داشته باشد. در اتریوم، نانس شمارهی ترتیب تراکنشهای هر کیف پول است.
خیلیها این کلمه را اولین بار وقتی میبینند که تراکنش اتریومیشان ساعتها «در انتظار» مانده و کسی به آنها گفته «نانس را درست کن». بعضی هم در مقالههای استخراج به آن برخوردهاند. بیایید هر دو را با هم، قدمبهقدم و ساده باز کنیم.
نانس چیست؟ معنای سادهی یک کلمهی عجیب
واژهی Nonce را معمولا کوتاهشدهی «Number used once» میدانند، یعنی «عددی که یک بار مصرف میشود». در رمزنگاری، هر جا بخواهند یک پیام یا یک کار دوباره و تقلبی تکرار نشود، یک عدد یکبارمصرف کنارش میگذارند.
مثل شمارهی نوبت نانوایی است. هر نوبت فقط یک بار صدا زده میشود. اگر کسی همان کاغذ نوبت دیروز را بیاورد، نانوا قبولش نمیکند، چون آن عدد قبلا مصرف شده است.
در دنیای رمزارز همین ایدهی ساده دو کار بزرگ انجام میدهد:
- نانس بلاک: در شبکههای اثبات کار مثل بیتکوین، ابزار مسابقهی ماینرهاست و ساختن بلاک را پرزحمت میکند.
- نانس حساب (نانس تراکنش): در شبکههایی مثل اتریوم، شمارندهی تراکنشهای هر آدرس است و نمیگذارد یک تراکنش دو بار اجرا شود.
پس اگر جایی «نانس» دیدید، اول ببینید حرف از استخراج است یا از تراکنش کیف پول. این دو با هم فرق زیادی دارند.
نانس در استخراج بیتکوین چه نقشی دارد؟
برای فهمیدن نانس بلاک، اول باید بدانیم هش چیست. هش یعنی اثر انگشت دیجیتال یک داده. هر متنی را به تابع هش بدهید، یک رشتهی ثابت و ظاهرا تصادفی تحویل میگیرید. اگر حتی یک ویرگول متن عوض شود، هش کاملا عوض میشود. بیتکوین از تابعی به نام SHA-256 استفاده میکند. توضیح کاملترش را در مقالهی هش چیست و الگوریتمهای هش در بلاکچین نوشتهام.
هدر بلاک: نانس کجا نشسته است؟
هر بلاک بیتکوین یک سربرگ کوچک دارد که به آن «هدر بلاک» میگویند. این سربرگ فقط ۸۰ بایت است و شش بخش دارد. جدول زیر آنها را به زبان ساده نشان میدهد:
| بخش | اندازه | به زبان ساده یعنی |
|---|---|---|
| نسخه (Version) | ۴ بایت | بلاک با کدام قاعدههای شبکه ساخته شده |
| هش بلاک قبلی | ۳۲ بایت | حلقهای که این بلاک را به بلاک قبلی میدوزد |
| ریشهی مرکل (Merkle Root) | ۳۲ بایت | خلاصهی همهی تراکنشهای داخل بلاک در یک هش |
| زمان (Timestamp) | ۴ بایت | تقریبا چه ساعتی بلاک ساخته شده |
| هدف سختی (Bits) | ۴ بایت | شرطی که هش بلاک باید داشته باشد |
| نانس (Nonce) | ۴ بایت | تنها عددی که ماینر آزادانه عوضش میکند |
پنج بخش اول تقریبا ثابتاند. فقط نانس است که ماینر هر بار یک واحد بالا میبرد و دوباره امتحان میکند. همین عدد کوچک، کل مسابقهی استخراج را میسازد.

مسابقهی پیدا کردن نانس، قدمبهقدم
شبکهی بیتکوین یک شرط گذاشته است: هش هدر بلاک باید از یک عدد هدف کوچکتر باشد. به زبان سادهتر، هش باید با تعداد مشخصی صفر شروع شود. چون هیچکس نمیتواند هش را از قبل پیشبینی کند، تنها راه امتحان کردن است:
- ماینر تراکنشهای در صف را جمع میکند و هدر بلاک را میسازد.
- نانس را صفر میگذارد و از هدر، هش SHA-256 میگیرد (در بیتکوین دو بار پشت سر هم).
- هش را با هدف شبکه مقایسه میکند.
- اگر هش کوچکتر از هدف نبود، نانس را یکی بالا میبرد و برمیگردد به قدم ۲.
- اگر شد، بلاک را به همهی شبکه اعلام میکند. بقیه فقط یک بار هش میگیرند و درستیاش را میسنجند.
- ماینر برنده پاداش بلاک و کارمزد تراکنشها را میگیرد.
مثل قفل رمزدار چمدانی است که رمزش را فراموش کردهاید. راه میانبری نیست؛ باید عددها را یکییکی بچرخانید. فرقش این است که این چمدان میلیاردها میلیارد حالت دارد و هزاران نفر همزمان دارند رمزش را امتحان میکنند. اسم همین روش «اثبات کار» است که در مقالهی اثبات کار یا Proof of Work چیست کامل توضیحش دادهام.
یک نکتهی زیبا هم دارد: پیدا کردن نانس سخت است، ولی سنجیدنش آسان. ماینر شاید تریلیونها بار امتحان کرده باشد، ولی بقیه با یک بار هش گرفتن میفهمند جوابش درست است یا نه. پس نانس درست، رسید زحمت ماینر است.
چرا نانس بیتکوین زود تمام میشود؟
نانس بیتکوین ۴ بایت، یعنی ۳۲ بیت است. پس فقط حدود ۴٫۳ میلیارد حالت دارد. شاید زیاد به نظر برسد، ولی بیایید با هم حساب کنیم.
فرض کنیم یک دستگاه ماینر در هر ثانیه ۱۰۰ تریلیون هش امتحان کند (این فقط مثال است؛ دستگاهها با هم فرق دارند). ۴٫۳ میلیارد تقسیم بر ۱۰۰ تریلیون میشود حدود ۰٫۰۰۰۰۴ ثانیه. یعنی همهی نانسها در کمتر از یک دههزارم ثانیه تمام میشوند، و معمولا جوابی هم پیدا نشده است.
پس ماینر چه میکند؟ چند بخش دیگر را کمی عوض میکند تا هدر تازه شود و دوباره از نانس صفر شروع کند:
- اکسترا نانس (Extra Nonce): عددی در اولین تراکنش بلاک، همان تراکنشی که پاداش را به ماینر میدهد. با عوض شدنش، ریشهی مرکل و در نتیجه کل هدر عوض میشود.
- زمان: زمان بلاک هم در یک بازهی مجاز قابل جابهجایی است.
- بخشی از نسخه: دستگاههای امروزی چند بیت از بخش نسخه را هم برای همین کار میچرخانند.
پس در عمل «نانس» فقط آن ۴ بایت نیست؛ ماینر یک فضای خیلی بزرگتر را میگردد و نانس فقط شمارندهی سریع آن است.
نانس و سختی شبکه چه رابطهای دارند؟
سختی شبکه یعنی اینکه شرط پیدا کردن هش چقدر سخت است. هر چه هدف کوچکتر باشد، صفرهای بیشتری لازم است و ماینر باید نانسهای بیشتری امتحان کند.
بیایید با یک مثال ساده ببینیم. هش را معمولا با ۱۶ نماد (۰ تا ۹ و a تا f) مینویسند. احتمال اینکه اولین نماد یک هش تصادفی صفر باشد، یک در ۱۶ است. برای دو صفر اول، یک در ۲۵۶. برای چهار صفر، یک در ۶۵٬۵۳۶. هر صفر اضافه، کار را ۱۶ برابر سختتر میکند.
| صفرهای لازم در ابتدای هش | احتمال موفقیت در هر بار | میانگین تعداد امتحان |
|---|---|---|
| ۱ | یک در ۱۶ | ۱۶ بار |
| ۲ | یک در ۲۵۶ | ۲۵۶ بار |
| ۴ | یک در ۶۵٬۵۳۶ | حدود ۶۵ هزار بار |
| ۸ | یک در حدود ۴٫۳ میلیارد | حدود ۴٫۳ میلیارد بار |
این جدول فقط برای حس کردن موضوع است. سختی واقعی بیتکوین بسیار بالاتر از ردیف آخر است. برای همین است که یک بازهی کامل نانس معمولا جواب نمیدهد.
شبکه هر ۲٬۰۱۶ بلاک، یعنی تقریبا هر دو هفته، سختی را دوباره تنظیم میکند تا بلاکها بهطور میانگین هر ۱۰ دقیقه یک بار ساخته شوند. ماینر بیشتر بیاید، شرط سختتر میشود؛ ماینر کم شود، آسانتر. جزییات این تنظیم را در مقالهی سختی شبکه بیتکوین چیست و چگونه تغییر میکند ببینید. سرعت امتحان کردن نانس در کل شبکه را هم «هش ریت» میگویند که در مقالهی هش ریت چیست بازش کردهام.
پس نانس به تنهایی معنا ندارد. سختی میگوید هدف کجاست، هش ریت میگوید شبکه با چه سرعتی میدود، و نانس همان قدمهایی است که برداشته میشود.
نانس و استخراج بیت کوین برای آدم معمولی
شاید بپرسید: «اگر من یک دستگاه بخرم، شانس پیدا کردن نانس را دارم؟» شانس دارید، ولی بسیار کم، چون با کل شبکه مسابقه میدهید. برای همین بیشتر ماینرها به استخر استخراج میپیوندند. استخر کار گشتن را بین اعضا پخش میکند و پاداش را به نسبت سهم هر کس تقسیم میکند.
اگر میخواهید بدانید استخراج در عمل چطور است و چه هزینهای دارد، مقالهی استخراج بیت کوین چیست را بخوانید. حواستان باشد که در ایران استخراج فقط با مجوز و برق قانونی مجاز است.
نانس در تراکنش اتریوم چیست؟
اینجا نانس معنای دیگری دارد. اتریوم از سال ۲۰۲۲ و با مرج اتریوم دیگر استخراج اثبات کار ندارد. پس نانس بلاک آن عملا بیاستفاده شده است. ولی یک نانس دیگر در اتریوم خیلی زنده است: نانس حساب.
نانس حساب یعنی شمارهی ترتیب تراکنشهایی که یک آدرس فرستاده است. اولین تراکنش هر آدرس نانس ۰ دارد، دومی ۱، سومی ۲ و همینطور تا آخر. کیف پول این عدد را خودش میگذارد و معمولا شما اصلا نمیبینیدش.
مثل دستهچک است. هر برگ شمارهی سریال دارد. بانک یک برگ را دو بار پاس نمیکند، و اگر برگ شمارهی ۵ هنوز به بانک نرسیده باشد، اتریوم اجازه نمیدهد برگ ۶ زودتر پاس شود.
نانس حساب دقیقا چه کاری میکند؟
- جلوی تکرار را میگیرد: هیچکس نمیتواند تراکنش امضاشدهی شما را بردارد و دوباره به شبکه بفرستد، چون آن شماره قبلا مصرف شده است.
- ترتیب را حفظ میکند: تراکنشهای یک آدرس دقیقا به ترتیب نانس ثبت میشوند، نه به ترتیب رسیدن.
- یک شماره، یک تراکنش: دو تراکنش با یک نانس هرگز هر دو ثبت نمیشوند. هر کدام زودتر در بلاک بیاید، دیگری کنار گذاشته میشود.
نکتهی سوم کلید حل تراکنش گیرکرده است. چند خط پایینتر سراغش میرویم.
بیتکوین این نوع نانس را ندارد. ساختار بیتکوین بر پایهی «خروجیهای خرجنشده» است و هر سکه فقط یک بار خرج میشود. پس وقتی دربارهی «نانس تراکنش» حرف میزنیم، منظور معمولا اتریوم و شبکههای شبیه آن است، مثل زنجیرههای سازگار با اتریوم.
نانس را کجا ببینیم؟
در بلاک اکسپلورر اتریوم، صفحهی هر تراکنش یک سطر Nonce دارد. اگر آدرس خودتان را جستوجو کنید، تعداد تراکنشهای فرستادهشده تقریبا همان نانس بعدی شماست. روش کار با اکسپلورر را در مقالهی اتراسکن چیست قدمبهقدم نوشتهام. بیشتر کیف پولها هم در تنظیمات پیشرفته گزینهای برای دیدن و تغییر دستی نانس دارند.

چرا تراکنش گیرکرده پیش میآید؟
تراکنش گیرکرده یعنی تراکنشی که فرستاده شده، ولی ساعتها در حالت «در انتظار» (Pending) مانده و در هیچ بلاکی ثبت نشده است. سه دلیل رایج دارد:
- کارمزد کم: کارمزد شبکه یا همان گس فی را کمتر از بازار آن لحظه گذاشتهاید و سازندههای بلاک سراغ تراکنشهای پرکارمزدتر میروند.
- شکاف نانس: تراکنش قبلی با نانس کمتر هنوز ثبت نشده است. تا آن ثبت نشود، تراکنشهای بعدی هم پشتش میمانند. مثل صف بانک که نفر اول کارش گیر کرده و بقیه هم منتظرند.
- نانس دستی اشتباه: کسی نانس را دستی عوض کرده و شمارهای جلوتر از نوبت گذاشته است. شبکه آن را نگه میدارد تا شمارههای قبلی پر شوند.
پس اول ببینید کدام تراکنش پایینترین نانس را دارد و هنوز در انتظار است. گره کار همانجاست، نه در آخرین تراکنش.
چطور تراکنش گیرکرده را با نانس جایگزین کنیم؟
راهحل از همان قاعدهی «یک شماره، یک تراکنش» میآید. یک تراکنش تازه با همان نانس و کارمزد بیشتر میفرستید. اگر تراکنش تازه زودتر ثبت شود، تراکنش قدیمی خودبهخود کنار گذاشته میشود. در اکسپلورر هم وضعیتش «جایگزین شد» (Dropped & Replaced) میخورد.
این کار دو شکل دارد:
| روش | چه میفرستید | نتیجه |
|---|---|---|
| تسریع (Speed Up) | همان تراکنش، با همان نانس و کارمزد بیشتر | پول به همان مقصد میرود، فقط زودتر |
| لغو (Cancel) | تراکنشی به آدرس خودتان با مبلغ صفر، با همان نانس و کارمزد بیشتر | تراکنش اصلی هرگز اجرا نمیشود؛ فقط کارمزد لغو را میپردازید |
بیشتر کیف پولها این دو دکمه را کنار تراکنش در انتظار دارند و نانس را خودشان درست میگذارند. اگر کیف پول شما این گزینه را نداشت، قدمها این است:
- در اکسپلورر، نانس پایینترین تراکنش در انتظار را پیدا کنید.
- در کیف پول، گزینهی «نانس دستی» یا «تنظیمات پیشرفته» را روشن کنید.
- تراکنش تازه را با همان نانس بسازید.
- کارمزد را بهروشنی بالاتر بگذارید. بیشتر نودها جایگزین را فقط وقتی قبول میکنند که کارمزدش دستکم حدود ۱۰٪ بیشتر از قبلی باشد.
- بفرستید و در اکسپلورر ببینید کدام ثبت شد.
یک هشدار جدی: لغو یعنی پول نمیرود، ولی کارمزد میرود. پس اگر فقط کارمزد کم بوده و مقصد درست است، تسریع بهتر از لغو است.
اشتباههای رایج کاربران با نانس
اینها را بارها دیدهام. هر کدام هم پول و هم اعصاب آدم را میبرد:
- فرستادن دوباره به جای جایگزینی: تراکنش گیر کرده، کاربر دوباره همان مبلغ را میفرستد. تراکنش دوم نانس تازه میگیرد و پشت اولی صف میبندد. وقتی گره باز شود، هر دو ثبت میشوند و پول دو بار میرود.
- دست زدن به نانس بیدلیل: اگر تراکنشی گیر نکرده، به نانس دست نزنید. یک شمارهی جلوتر از نوبت، همهی تراکنشهای بعدی را قفل میکند.
- یک آدرس در دو کیف پول: اگر یک عبارت بازیابی را در دو برنامه وارد کردهاید و از هر دو تراکنش میفرستید، ممکن است یکی از نانس دیگری خبر نداشته باشد. از یک جا تراکنش بفرستید.
- لغو تراکنشی که ثبت شده: وقتی تراکنش در بلاک ثبت شد، دیگر برگشت ندارد. لغو فقط برای تراکنش در انتظار معنا دارد.
- اشتباه گرفتن نانس با شناسهی تراکنش: نانس یک عدد سادهی ترتیبی است. شناسهی هر تراکنش چیز دیگری است که در مقالهی شناسهی تراکنش یا TXID توضیحش دادهام.
پس پیش از هر کاری، اول در اکسپلورر نگاه کنید. بیشتر گرفتاریها با یک نگاه ساده روشن میشود.
نانس بلاک و نانس حساب در یک نگاه
برای اینکه این دو معنا با هم قاطی نشوند، جدول زیر را نگه دارید:
| ویژگی | نانس بلاک (استخراج) | نانس حساب (تراکنش) |
|---|---|---|
| کجاست؟ | در هدر هر بلاک | در هر تراکنش یک آدرس |
| چه کسی تعیینش میکند؟ | ماینر، با امتحان کردن پشت سر هم | کیف پول، به ترتیب از صفر |
| کارش چیست؟ | پرزحمت کردن ساخت بلاک و امنیت شبکه | جلوگیری از تکرار و حفظ ترتیب تراکنشها |
| در کدام شبکه مهم است؟ | شبکههای اثبات کار مثل بیتکوین | اتریوم و شبکههای شبیه آن |
| کاربر عادی با آن کار دارد؟ | معمولا نه | فقط وقتی تراکنش گیر میکند |
یک کاربرد سوم هم هست که کمتر دیده میشود. وقتی با کیف پول خود وارد یک سایت میشوید و «پیامی را امضا میکنید»، معمولا یک نانس یکبارمصرف در آن پیام است. این کار نمیگذارد کسی امضای دیروز شما را امروز دوباره به کار ببرد. همان شمارهی نوبت نانوایی است.
چرا نانس برای امنیت بلاکچین مهم است؟
فرض کنید کسی بخواهد یک تراکنش قدیمی را در بلاک ۱۰۰ عوض کند. با کوچکترین تغییر، هش آن بلاک عوض میشود و دیگر شرط سختی را ندارد. پس باید نانس آن بلاک را از نو پیدا کند. چون هش هر بلاک در بلاک بعدی نوشته شده، باید نانس همهی بلاکهای بعدی را هم دوباره پیدا کند، آن هم سریعتر از کل شبکه.
این یعنی هزینهی برق و دستگاهی بیشتر از همهی ماینرهای صادق دنیا. برای همین تقلب در بیتکوین در عمل صرفه ندارد. اگر میخواهید تصویر کامل زنجیره را ببینید، مقالهی بلاک چین چیست را بخوانید.
پس نانس فقط یک عدد نیست. در استخراج، قفلی است که تقلب را گران میکند. در تراکنش، شمارهای است که نمیگذارد پول شما دو بار خرج شود.
سوالات متداول
نانس چیست به زبان ساده؟
نانس یعنی عددی که فقط یک بار به کار میرود. در استخراج بیتکوین، عددی در هدر بلاک است که ماینر آنقدر عوضش میکند تا هش بلاک شرط سختی را داشته باشد. در اتریوم، شمارهی ترتیب تراکنشهای هر آدرس است.
نانس در استخراج چه نقشی دارد؟
ماینر نانس را یکییکی بالا میبرد و هر بار از هدر بلاک هش میگیرد. اولین ماینری که هشی کوچکتر از هدف شبکه پیدا کند، بلاک را میسازد و پاداش میگیرد. همین امتحان کردن پرزحمت، پایهی اثبات کار و امنیت شبکه است.
نانس بیت کوین چند رقمی است؟
نانس بیتکوین ۴ بایت یا ۳۲ بیت است و حدود ۴٫۳ میلیارد حالت دارد. دستگاههای امروزی این بازه را در کسری از ثانیه تمام میکنند. برای همین ماینرها اکسترا نانس، زمان یا بخشی از نسخه را هم تغییر میدهند تا هدر تازه بسازند.
نانس در تراکنش اتریوم چیست؟
نانس حساب، شمارندهی تراکنشهای فرستادهشده از یک آدرس است که از صفر شروع میشود و با هر تراکنش یکی بالا میرود. نمیگذارد یک تراکنش امضاشده دو بار اجرا شود و تراکنشهای یک آدرس را دقیقا به ترتیب ثبت میکند.
چطور تراکنش گیرکرده را با نانس جایگزین کنیم؟
یک تراکنش تازه با همان نانس تراکنش گیرکرده و کارمزد روشن بالاتر بفرستید، معمولا دستکم حدود ۱۰٪ بیشتر. اگر مقصد درست است، همان تراکنش را تسریع کنید. اگر نمیخواهید اجرا شود، صفر واحد به آدرس خودتان بفرستید تا لغو شود.
چرا تراکنشهای بعدی من هم گیر کردهاند؟
چون تراکنشهای یک آدرس به ترتیب نانس ثبت میشوند. اگر تراکنشی با نانس کمتر هنوز در انتظار باشد، همهی تراکنشهای بعدی پشت آن میمانند. باید همان پایینترین تراکنش در انتظار را تسریع یا لغو کنید تا صف باز شود.
آیا بیت کوین نانس تراکنش دارد؟
نه. بیتکوین شمارندهی تراکنش برای هر آدرس ندارد و جلوی خرج دوباره را با ساختار خروجیهای خرجنشده میگیرد. نانس در بیتکوین فقط در هدر بلاک و برای استخراج به کار میرود.
فرق نانس و هش چیست؟
هش اثر انگشت دیجیتال داده است و از روی محتوای بلاک ساخته میشود. نانس یک عدد ورودی است که ماینر عوضش میکند تا هش تازهای به دست بیاید. یعنی نانس را تغییر میدهیم و هش نتیجهی آن تغییر است.
جمعبندی
نانس یک عدد ساده با دو کار بزرگ است. در استخراج بیتکوین، ماینرها برای پیدا کردنش مسابقه میدهند و همین مسابقه تقلب را گران میکند. در اتریوم، شمارهی نوبت تراکنشهای شماست و نمیگذارد تراکنشی دو بار اجرا شود.
پس دفعهی بعد که تراکنشی گیر کرد، دوباره نفرستید. اول در اکسپلورر پایینترین نانس در انتظار را پیدا کنید، بعد همان را با کارمزد بیشتر تسریع یا لغو کنید. اگر هم میخواهید وضعیت بازار را ببینید، قیمت ارزهای دیجیتال امروز را دنبال کنید.
