نانس (Nonce) یکی از مفاهیم کلیدی در بلاکچین و تراکنشهای ارزهای دیجیتال است که نقش مهمی در تضمین صحت و ترتیب انجام تراکنشها ایفا میکند. این عدد که برای هر تراکنش فقط یکبار استفاده میشود، از وقوع مشکلاتی مانند دوباره خرج کردن (Double spending) جلوگیری میکند و به شبکه کمک میکند تراکنشها را بهترتیب صحیح پردازش کند. در کیف پول متامسک، نانس بهصورت خودکار افزایش مییابد اما قابلیت سفارشیسازی آن نیز فراهم شده است تا کاربران بتوانند تراکنشهای معلق را سریعتر انجام دهند یا در صورت نیاز آنها را لغو کنند.
سفارشیسازی نانس در متامسک بهویژه برای کاربران حرفهای و کسانی که بهدنبال مدیریت دقیقتر تراکنشهای خود هستند، اهمیت زیادی دارد. این امکان هم در نسخه افزونه مرورگر و هم در نسخه موبایل متامسک وجود دارد اما پیش از استفاده باید برخی تنظیمات فعال شود. در این مقاله از میهن بلاکچین بهصورت گامبهگام آموزش میدهیم چگونه نانس تراکنشها را در هر دو نسخه متامسک تغییر دهید تا بتوانید کنترل بیشتری روی زمانبندی و اولویت تراکنشهای خود داشته باشید و از تأخیرهای احتمالی جلوگیری کنید.
نانس (Nonce) چیست؟
واژه نانس (Nonce) ترکیبی از عبارت «Number Used Only Once» بهمعنای «عددی که فقط یکبار استفاده میشود» است. هر تراکنشی که از کیف پول متامسک (MetaMask) خود ارسال میکنید، دارای یک نانس است. این عدد از صفر برای اولین تراکنش شروع میشود و بهترتیب با گامهای یکواحدی افزایش مییابد.
نانس هر تراکنش، شناسهای است که اطمینان میدهد تراکنشهای شما توسط شبکه بهترتیب صحیح پردازش میشوند و از وقوع سناریوهای دوباره خرج کردن جلوگیری میکند.
در متامسک، تنظیم نانس میتواند در مواقعی مفید باشد که نیاز دارید تراکنشهای معلق را سریعتر انجام دهید یا لغو کنید. در ادامه، توضیح خواهیم داد که چگونه نانس را هنگام ارسال یک تراکنش سفارشیسازی کنید.
هر تراکنشی که از یک آدرس در شبکههای سازگار با اتریوم (مانند اتریوم، پالیگان، بیانبی چین) ارسال میکنید، یک نانس منحصربهفرد دارد. این عدد از صفر برای اولین تراکنش شروع شده و با هر تراکنش جدید، یک واحد به آن اضافه میشود.
کاربردهای اصلی نانس عبارتند از:
- تعیین ترتیب تراکنشها: شبکه تراکنشها را بر اساس شماره نانس پردازش میکند، نه بر اساس زمان ارسال. تراکنش با نانس ۵ حتما باید پس از تراکنش با نانس ۴ پردازش شود.
- جلوگیری از دوباره خرج کردن (Double Spending): از آنجایی که هر نانس فقط یکبار قابل استفاده است، نمیتوان یک تراکنش را دو بار به شبکه ارسال کرد.
- مدیریت تراکنشهای معلق: مهمترین کاربرد عملی نانس برای کاربران این است که اگر تراکنشی با نانس مشخصی (مثلاً نانس ۱۰) بهدلیل کارمزد پایین در شبکه گیر کند، تمام تراکنشهای بعدی (با نانس ۱۱، ۱۲ و غیره) پردازش نخواهند شد تا تکلیف تراکنش شماره ۱۰ مشخص شود. با دستکاری نانس، میتوان این تراکنش معلق را جایگزین یا لغو کرد.
چه زمانی باید نانس را بهصورت دستی وارد کنیم؟
تغییر دستی نانس یک ابزار قدرتمند اما حساس است. در شرایط زیر به آن نیاز پیدا خواهید کرد:
- تراکنش گیر کرده (Pending): وقتی یک تراکنش بهدلیل کارمزد پایین یا ازدحام شبکه در حالت معلق باقی مانده و گزینههای پیشفرض
Speed Up
یاCancel
در متامسک بههر دلیلی کار نمیکنند. - ارسال تراکنشهای متوالی: وقتی میخواهید چند تراکنش را پشت سر هم ارسال کنید و ترتیب دقیق انجام آنها برای شما اهمیت دارد (مثلاً در تعامل با قراردادهای هوشمند خاص).
- خطای کیف پول: در موارد نادر، ممکن است کیف پول نانس را به اشتباه محاسبه کند و نیاز به اصلاح دستی داشته باشد.
آموزش گامبهگام سفارشیسازی نانس در متامسک
پیش از شروع، باید قابلیت تغییر نانس را در متامسک فعال کنید. این کار هم در نسخه افزونه و هم موبایل ضروری است.
مرحله اول: فعالسازی قابلیت سفارشیسازی نانس
- وارد کیف پول متامسک خود شوید.
- به بخش Settings بروید.
- وارد منوی Advanced شوید.
- گزینه Customize transaction nonce را پیدا کرده و آن را فعال کنید.
نکته بسیار مهم: اگر قابلیت Smart Transactions را فعال کردهاید، باید پیش از تنظیم نانس، این قابلیت را غیرفعال کنید. پس از پایان کار، فراموش نکنید که دوباره آن را فعال کنید.
افزونه مرورگر (Extension)
سفارشیسازی نانس در متامسک امکانپذیر نیست، مگر اینکه آن را فعال کرده باشید. برای فعالسازی، به صفحه بررسی تراکنش بروید و گزینه نمایش جزئیات پیشرفته (Show advanced details) را در گوشه بالا سمت راست فعال کنید.
اگر قابلیت Smart Transactions را فعال کردهاید و تراکنش در شبکه اصلی اتریوم (Ethereum Mainnet) یا زنجیره هوشمند BNB انجام میشود، باید پیش از تنظیم نانس، این قابلیت را غیرفعال کنید. پس از پایان تنظیمات، فراموش نکنید که دوباره Smart Transactions را فعال کنید.
محل تنظیم نانس تراکنش
اگر از نسخهای از افزونه متامسک استفاده میکنید که قدیمیتر از ۱۲.۱۳.۰ است، گزینه «سفارشیسازی نانس تراکنش» را میتوانید در مسیر زیر پیدا کنید:
Settings > Advanced
برای شروع، یک تراکنش از کیف پول خود ارسال کنید. آدرس گیرنده و مبلغ را وارد کرده و روی گزینه بعدی (Next) کلیک کنید. پیش از تأیید تراکنش، صفحهای شامل جزئیات کارمزد گس و اطلاعات دیگر به شما نمایش داده میشود.
در این مرحله روی فیلد نانس سفارشی (Custom nonce) کلیک کرده و عدد موردنظر خود را وارد کنید. وقتی آماده ارسال تراکنش بودید، گزینه تأیید (Confirm) را بزنید.
نکته: برای پیدا کردن نانس تراکنش معلق، کافی است روی تراکنش مورد نظر کلیک کرده و گزینه View on Etherscan یا اکسپلورر شبکه مربوطه را انتخاب کنید. سپس در صفحهای که باز میشود، به پایین صفحه رفته و در قسمت More Details روی گزینه Show More کلیک کنید تا نانس تراکنش در قسمت Other Attributes برایتان نمایش داده شود.
نسخه موبایل
در نسخه موبایل نیز امکان تنظیم نانس وجود ندارد، مگر اینکه آن را از قبل فعال کرده باشید. برای این کار، روی آیکون چرخدنده در نوار پایین صفحه ضربه بزنید و وارد بخش Settings > Advanced شوید.
اکنون برای ارسال یک تراکنش اقدام کنید. آدرس گیرنده و مبلغ مورد نظر را وارد کرده و روی گزینه بعدی (Next) ضربه بزنید. سپس وارد صفحهای مشابه تصویر زیر خواهید شد.
در این صفحه، روی گزینه ویرایش (Edit) در کنار فیلد نانس که مشخص شده است ضربه بزنید. اکنون میتوانید با استفاده از دکمههای مثبت و منفی، نانس را به مقدار دلخواه تغییر دهید.
در پایان برای ثبت انتخاب خود، روی گزینه «ذخیره» (Save) ضربه بزنید.
با این کار، تراکنش جدید شما که دارای نانس یکسان اما کارمزد بالاتر است، توسط شبکه انتخاب شده و تراکنش معلق قبلی از صف خارج (Dropped & Replaced) میشود.
نکات تکمیلی و مهم
- هزینه کارمزد: به یاد داشته باشید که برای تراکنش جایگزین باید کارمزد جدیدی بپردازید و کارمزد تراکنش قبلی (که هرگز پردازش نشد) به شما بازگردانده نمیشود.
- شبکههای سازگار با EVM: این روش برای تمام شبکههای مبتنی بر ماشین مجازی اتریوم (EVM) مانند BNB Chain، Polygon و Avalanche نیز کاربرد دارد.
- شبکههای غیر EVM: در شبکههایی که از مدل نانس استفاده نمیکنند (مانند Tron)، اغلب امکان جایگزینی یا لغو تراکنش وجود ندارد و تنها راه، صبر کردن است.
- شبکههای مبتنی بر UTXO (بیتکوین): در شبکههایی مانند بیتکوین، لایتکوین و بیتکوین کش، مفهوم نانس وجود ندارد. برای تسریع تراکنشهای معلق از قابلیتهای دیگری مانند جایگزینی با کارمزد (RBF) و پرداخت فرزند به جای والدین (CPFP) استفاده میشود.
خطرات و نکات احتیاطی: قبل از تغییر دستی نانس حتما به این نکات توجه کنید!
تغییر دستی نانس یک ابزار قدرتمند است، اما مانند هر ابزار پیشرفتهای، استفاده نادرست از آن میتواند مشکلات را پیچیدهتر کند. قبل از اقدام، حتماً از خطرات زیر آگاه باشید و با دقت کامل عمل کنید:
۱. خطر ایجاد «شکاف» در ترتیب تراکنشها (Nonce Gap): این شایعترین اشتباه است. اگر آخرین تراکنش موفق شما دارای نانس ۱۰ باشد و شما بهصورت دستی تراکنشی با نانس ۱۲ ارسال کنید، این تراکنش پردازش نخواهد شد. شبکه منتظر میماند تا ابتدا تراکنشی با نانس ۱۱ را دریافت و تأیید کند. در نتیجه، تراکنش شما تا زمان پر شدن این شکاف، معلق باقی میماند و عملاً مشکل را بدتر میکند.
راهکار: همیشه اطمینان حاصل کنید که نانسی که وارد میکنید، دقیقاً شماره نانس تراکنش معلق یا شماره بعدی در ترتیب تراکنشهایتان است.
۲. خطر استفاده از نانسِ از قبل تأیید شده: اگر نانسی را وارد کنید که قبلاً در یک تراکنش موفق استفاده و در بلاکچین ثبت شده است، شبکه بلافاصله آن تراکنش را بهعنوان یک تکرار نامعتبر شناسایی و رد (Reject) میکند. گرچه این کار باعث از دست رفتن سرمایه نمیشود، اما تلاش شما بیثمر خواهد بود و کارمزد شبکه (Gas) نیز ممکن است مصرف شود.
۳. کارمزد ناکافی برای تراکنش جایگزین: هدف اصلی از ارسال تراکنش جایگزین، جلب توجه ماینرها با یک پیشنهاد کارمزد بالاتر است. اگر کارمزد تراکنش جدید شما فقط کمی بالاتر از تراکنش معلق باشد، ممکن است در زمان شلوغی شبکه کافی نباشد و این بار، تراکنش جدید نیز معلق بماند.
راهکار: برای اطمینان، کارمزد را حداقل ۳۰٪ بالاتر از تراکنش قبلی تنظیم کنید و قیمتهای پیشنهادی فعلی شبکه را در سایتهایی مانند Etherscan Gas Tracker بررسی نمایید.
۴. کارمزد تراکنش اولیه بازگردانده نمیشود: به یاد داشته باشید که کارمزد پرداختشده برای تراکنش معلق اولیه، حتی پس از آنکه آن را با موفقیت لغو یا جایگزین کردید، هرگز به کیف پول شما باز نمیگردد. این هزینه برای تلاش محاسباتی اولیه شبکه مصرف شده است. هر تلاش برای جایگزینی نیز کارمزد جدید خود را دارد.
نکته نهایی: همیشه قبل از زدن دکمه «Confirm»، تمام مقادیر—بهویژه آدرس مقصد، مبلغ، کارمزد و از همه مهمتر عدد نانس سفارشی—را دو یا سه بار بررسی کنید. یک اشتباه کوچک میتواند منجر به سردرگمی و هزینههای اضافی شود.
سخن پایانی
درک و استفاده صحیح از نانس، مرز بین یک کاربر عادی و یک کاربر حرفهای در دنیای ارزهای دیجیتال را مشخص میکند. این ابزار قدرتمند که در ابتدا ممکن است فنی و پیچیده بهنظر برسد، در عمل کلید شما برای غلبه بر مشکلات رایجی مانند تراکنشهای معلق و مدیریت دقیق داراییهایتان است.
با تسلط بر این مفهوم، دیگر مجبور نیستید منفعلانه منتظر تأیید شبکه بمانید. شما این قدرت را خواهید داشت که کنترل کامل سرنوشت تراکنشهای خود را در دست بگیرید، آنها را سرعت ببخشید یا در صورت نیاز لغو کنید. همواره با دقت عمل کنید و از این دانش برای انجام تراکنشهایی سریعتر، بهینهتر و هوشمندانهتر بهره ببرید.
سوالات متداول (FAQ)
تراکنش جایگزین را با نانس صحیح و کارمزد بالاتر فرستادم، اما آن هم معلق مانده است. چرا؟
این اتفاق معمولاً به این دلیل رخ میدهد که افزایش کارمزد شما برای رقابت در شرایط فعلی شلوغی شبکه کافی نبوده است. راهحل این است که فرآیند را تکرار کنید: یک تراکنش جدید با همان نانس ارسال کرده و این بار کارمزد را به مقدار بسیار بالاتری افزایش دهید. همیشه قبل از ارسال، قیمتهای پیشنهادی در یک ردیاب گس (Gas Tracker) مانند Etherscan Gas Tracker را بررسی کنید.
به اشتباه یک نانس را جا انداختم (مثلاً بعد از نانس ۲۰، تراکنشی با نانس ۲۲ فرستادم). چگونه این مشکل را حل کنم؟
شبکه منتظر تراکنش با نانس جا افتاده (در این مثال، نانس ۲۱) است. برای حل مشکل، باید بهصورت دستی یک تراکنش جدید با نانس ۲۱ ارسال کنید. سادهترین راه، ارسال یک تراکنش با مبلغ صفر به آدرس کیف پول خودتان و با نانس ۲۱ است. پس از تأیید این تراکنش، تراکنش معلق شما با نانس ۲۲ نیز پردازش خواهد شد.
چه تفاوتی بین لغو کردن تراکنش و صرفاً صبر کردن تا حذف شدن از شبکه وجود دارد؟
صبر کردن یک راهکار منفعل و غیرقابل پیشبینی است. ممکن است تراکنش شما ساعتها یا روزها بعد با کاهش کارمزدها تأیید یا از حافظه شبکه (Mempool) پاک شود. اما لغو کردن یک اقدام فعال و قطعی است. شما با پرداخت کارمزد جدید، فوراً تراکنش معلق را از صف خارج کرده و به خودتان اجازه میدهید تراکنشهای جدید را بدون وقفه ارسال کنید. لغو کردن هزینه دارد اما کنترل و قطعیت را به شما بازمیگرداند.
کیف پول من قابلیت ویرایش نانس را ندارد. چه کار باید بکنم؟
امنترین راهکار، وارد کردن (Import) عبارت بازیابی (Seed Phrase) کیف پول فعلیتان در یک کیف پول پیشرفتهتر است که این قابلیت را پشتیبانی میکند، مانند متامسک (MetaMask) یا MyEtherWallet. هنگام کار با عبارت بازیابی خود نهایت دقت و نکات امنیتی را رعایت کنید و از انجام این کار در کامپیوترهای عمومی یا ناامن خودداری کنید.
اگر دو تراکنش با نانس یکسان ارسال کنم چه اتفاقی میافتد؟
شبکه تنها یکی از آنها را انتخاب خواهد کرد. تقریباً همیشه، ماینرها تراکنشی را انتخاب میکنند که کارمزد بالاتری داشته باشد. پس از اینکه یکی از آنها تأیید و در بلاکچین ثبت شد، تراکنش دیگر به طور خودکار توسط نودهای شبکه به عنوان تکراری نامعتبر، رد میشود.