ممپول (Mempool) چیست؟ چرا تراکنش در صف میماند
ممپول صف تراکنشهایی است که فرستاده شدهاند ولی هنوز در بلاکی ثبت نشدهاند. ببینید چرا تراکنش کمکارمزد معطل میماند، mempool.space را چطور بخوانید و کی صبر کنید و کی سراغ RBF یا CPFP بروید.

فهرست مطالب۸ بخش
- ممپول چیست و کجاست؟ هر نود صف خودش را دارد
- از لحظهی ارسال تا تأیید چه بر سر تراکنش میآید؟
- چرا تراکنش در ممپول معطل میماند؟
- کارمزد و اولویت در بیتکوین: sat/vB یعنی چه؟
- mempool.space را چطور بخوانیم؟
- تراکنش بیتکوین گیر کرده: صبر، RBF یا CPFP؟
- RBF: جایگزینی با کارمزد بیشتر
- CPFP: تراکنش فرزند کارمزد والد را میدهد
- یک مثال با عدد
- کی بهتر است فقط صبر کنید؟
- جدول تصمیم: الان چه کار کنم؟
- ممپول در اتریوم: کارمزد پایه، انعام و nonce
- برداشت از صرافی یا سواپولت در صف مانده؟
ممپول (Mempool) صف تراکنشهایی است که به شبکه فرستاده شدهاند ولی هنوز در هیچ بلاکی ثبت نشدهاند. وقتی بیتکوین یا اتریوم میفرستید، تراکنش اول در این صف مینشیند تا یک ماینر یا اعتبارسنج آن را در بلاک بگذارد. جای هر بلاک محدود است و ماینرها اول سراغ تراکنشهایی میروند که کارمزد بیشتری دادهاند. برای همین وقتی صف شلوغ است، تراکنش کمکارمزد ممکن است ساعتها و گاهی چند روز منتظر بماند.
تراکنشی که در ممپول مانده، پولتان را جایی نبرده است؛ فقط هنوز نوبتش نرسیده. اگر همین حالا تراکنشی در صف دارید، بخش «تراکنش بیتکوین گیر کرده» پایینتر میگوید کی صبر کنید و کی با RBF یا CPFP آن را جلو بیندازید.
ممپول چیست و کجاست؟ هر نود صف خودش را دارد
اسم ممپول از Memory Pool میآید: فهرست تراکنشهای منتظری که هر نود شبکه در حافظهی خودش نگه میدارد. نود کامپیوتری است که نسخهای از بلاکچین را دارد، تراکنشهای تازه را بررسی میکند و به نودهای دیگر میرساند. پس ممپول مرکزیای در کار نیست. ممپول نودها معمولاً خیلی به هم شبیه است، ولی مو به مو یکی نیست.
برای همین گاهی یک اکسپلورر تراکنش تازهتان را نشان میدهد و اکسپلورر دیگر هنوز خبری از آن ندارد. تراکنش خیلی کمکارمزد هم ممکن است در یک سایت دیده شود و در سایت دیگر نه.
هر نود برای ممپولش قاعده و سقف هم دارد. تنظیمات پیشفرض Bitcoin Core، نرمافزار اصلی نودهای بیتکوین، اینهاست:
- سقف ۳۰۰ مگابایت حافظه: وقتی ممپول پر شود، نود اول تراکنشهای کمکارمزد را بیرون میاندازد و حداقل کارمزدی را که برای ورود به صف میپذیرد بالا میبرد. وقتی صف خلوت شد، این حداقل کمکم پایین میآید.
- مهلت ۳۳۶ ساعت، یعنی دو هفته: تراکنشی که این مدت در صف بماند و تأیید نشود، از ممپول آن نود پاک میشود.
- حداقل کارمزد ۰٫۱ ساتوشی بر ویبایت: از نسخهی ۲۹٫۱ به بعد، نود تراکنش ارزانتر از این را نه به صف خودش راه میدهد و نه برای نودهای دیگر میفرستد.
از لحظهی ارسال تا تأیید چه بر سر تراکنش میآید؟
مسیر یک تراکنش بیتکوین از دکمهی ارسال تا اولین تأیید چهار مرحله دارد:
- امضا و ارسال: کیف پول تراکنش را با کلید خصوصی شما امضا میکند و به چند نود میفرستد. از همین لحظه شناسهی تراکنش (TXID) را دارید و میتوانید دنبالش کنید.
- بررسی و پخش: هر نود چک میکند امضا درست باشد، پول قبلاً خرج نشده باشد و کارمزد از حداقل خودش کمتر نباشد. اگر همهچیز درست باشد، تراکنش را به ممپولش اضافه میکند و به نودهای دیگر میرساند.
- انتظار در صف: تراکنش حالا «صفر تأیید» است و اکسپلورر آن را با برچسبی مثل Unconfirmed یا Pending نشان میدهد.
- انتخاب و ثبت: ماینری که بلاک بعدی را میسازد، آن را با پرکارمزدترین تراکنشهای ممپول خودش پر میکند. وقتی این بلاک ساخته شد و شبکه آن را پذیرفت، تراکنش شما از ممپول بیرون میرود و اولین تأییدش را میگیرد. هر بلاکی که بعد از آن بیاید، یک تأیید دیگر حساب میشود.
چرا تراکنش در ممپول معطل میماند؟
در بیتکوین بهطور میانگین هر ده دقیقه یک بلاک ساخته میشود و جای هر بلاک محدود است. وقتی تراکنشهای منتظر بیشتر از جای چند بلاک بعدی باشند، ماینرها باید انتخاب کنند و معیارشان ساده است: تراکنشی جلوتر است که برای هر واحد حجم کارمزد بیشتری بدهد. پس ممپول در عمل مثل مزایده کار میکند؛ هر کس برای جا گرفتن در بلاک قیمتی پیشنهاد میدهد و پیشنهاد بالاتر زودتر جا میگیرد.
معمولاً یکی از اینها تراکنش را معطل کرده است:
- کارمزدتان از نرخ این لحظهی شبکه کمتر است. شاید موقع ارسال کافی بوده، ولی بعد صف شلوغ شده و تراکنشهای پرکارمزدتر جلو زدهاند.
- شبکه یکدفعه شلوغ شده است. نوسان تند قیمت یا موجی از تراکنشها میتواند نرخ لازم برای بلاکهای بعدی را بالا ببرد.
- پولی که خرج کردهاید خودش هنوز تأیید نشده است. اگر بیتکوینی را فرستادهاید که از یک تراکنش تأییدنشدهی دیگر رسیده بود، تا آن تراکنش اول ثبت نشود، تراکنش شما هم ثبت نمیشود.
- در اتریوم، nonce یا سقف کارمزد جلویش را گرفته است. این دو را در بخش اتریوم توضیح دادهایم.
کارمزد و اولویت در بیتکوین: sat/vB یعنی چه؟
در بیتکوین کارمزد به مبلغ ارسالی ربطی ندارد و از روی حجم تراکنش حساب میشود. ویبایت (vByte) واحدی است که شبکه حجم تراکنش را با آن میسنجد و ساتوشی کوچکترین واحد بیتکوین است. نرخ کارمزد را با ساتوشی بر ویبایت (sat/vB) میگویند، یعنی برای هر ویبایت از حجم تراکنش چند ساتوشی میدهید. ماینرها تراکنشها را با همین نرخ با هم مقایسه میکنند، نه با کارمزد کل.
مثلاً اگر تراکنشتان ۲۰۰ ویبایت باشد و نرخ را ۲ sat/vB بگذارید، کارمزد کل ۴۰۰ ساتوشی میشود. حالا اگر یک نفر با تراکنشی به همین اندازه ۱ بیتکوین بفرستد و نفر دیگر ۰٫۰۰۱ بیتکوین، هر دو با این نرخ همان ۴۰۰ ساتوشی را میدهند و در صف همردیفاند.
اندازهی تراکنش بیشتر به تعداد ورودیهایش بستگی دارد تا به مبلغ. اگر موجودی کیف پولتان از ده واریز کوچک جمع شده باشد، تراکنشی که همه را با هم خرج کند حجم بیشتری دارد و با همان نرخ، کارمزد کل بیشتری میپردازد. حساب کارمزد در شبکههای دیگر را در کارمزد شبکه ارز دیجیتال توضیح دادهایم.
mempool.space را چطور بخوانیم؟
mempool.space یک اکسپلورر متنباز بیتکوین است که ممپول را به شکل بلاکهایی در صف نشان میدهد. تصویر پایین را ۲۹ مهر ۱۴۰۵ از صفحهی اول این سایت گرفتهایم؛ به سه بخش شمارهدارش نگاه کنید.

- بلاکهای در صف، سمت چپ خط وسط: هر مکعب بلاکی است که سایت پیشبینی میکند از ممپول فعلی ساخته شود و مکعبی که از همه به خط وسط نزدیکتر است، بلاک بعدی است. روی هر مکعب میانهی نرخ کارمزد (مثلاً حدود ۲ sat/vB)، بازهی کمترین تا بیشترین نرخ، تعداد تراکنشها و زمان تقریبی ساخته شدنش را میبینید. مکعبهای سمت راست خط، بلاکهاییاند که تازه ساخته شدهاند و اسم استخر ماینینگ هر کدام زیرش آمده است.
- کارمزد پیشنهادی (Transaction Fees): سایت سه نرخ برای اولویت کم، متوسط و زیاد پیشنهاد میدهد. هرچه اولویت بالاتر باشد، شانس رسیدن به بلاکهای نزدیکتر بیشتر است. عدد دلاری زیر هر نرخ، هزینهی تقریبی یک تراکنش ساده با آن نرخ است.
- حداقل کارمزد و تعداد تراکنشهای منتظر: عدد کنار Minimum fee کمترین نرخی است که ممپول این سایت در همان لحظه قبول میکند. روزی که عکس را گرفتیم ۰٫۱۰ sat/vB بود، یعنی همان پیشفرض Bitcoin Core، و این نشان میداد صف پر نشده است. عدد کنار Unconfirmed هم تعداد تراکنشهای تأییدنشده را نشان میدهد.
برای دیدن وضعیت تراکنش خودتان، TXID را در کادر جستوجوی بالای صفحه بچسبانید. تا وقتی تراکنش تأیید نشده، صفحهاش نرخ کارمزد (Fee rate) و زمان تقریبی تأیید (ETA) را نشان میدهد. اگر این نرخ از بازهی چند بلاک اول صف پایینتر است، یا باید صبر کنید یا کارمزد را بالا ببرید. اگر تا حالا با اکسپلورر کار نکردهاید، راهنمای بلاک اکسپلورر را قدمبهقدم دنبال کنید.
تراکنش بیتکوین گیر کرده: صبر، RBF یا CPFP؟
برای تراکنشی که در صف مانده سه راه دارید. اینکه کدام به کارتان میآید، به دو چیز بستگی دارد: فرستندهاید یا گیرنده، و کیف پولتان چه گزینهای دارد.
RBF: جایگزینی با کارمزد بیشتر
در RBF (Replace-by-Fee) فرستنده نسخهی تازهای از همان تراکنش را امضا میکند. این نسخه همان ورودیها را خرج میکند و فقط کارمزدش بیشتر است. نودها نسخهی تازه را جای نسخهی قبلی در صف میگذارند، به این شرط که طبق قواعد Bitcoin Core کارمزد کلش از نسخهی قبلی بیشتر باشد. در کیف پولها این گزینه معمولاً اسمی مثل Bump fee یا Speed up دارد.
قبلاً فقط تراکنشی را میشد جایگزین کرد که فرستنده موقع ارسال علامت RBF را رویش زده بود. از نسخهی ۲۸ Bitcoin Core که ۱۴ مهر ۱۴۰۳ منتشر شد، نودها بهطور پیشفرض هر تراکنش تأییدنشدهای را با نسخهی پرکارمزدترش عوض میکنند. با این حال شرط اصلی همان است: کیف پولتان باید بتواند نسخهی تازه را بسازد. RBF هم فقط تا وقتی جواب میدهد که تراکنش هنوز در هیچ بلاکی ننشسته باشد. به خاطر همین امکان جایگزینی است که تراکنش صفر تأیید را نباید پرداخت قطعی حساب کرد.
CPFP: تراکنش فرزند کارمزد والد را میدهد
CPFP (Child Pays for Parent) به درد وقتی میخورد که نمیتوانید خود تراکنش را عوض کنید، مثلاً چون گیرندهاید. در این روش همان بیتکوین تأییدنشده را در تراکنش تازهای خرج میکنید، مثلاً به آدرس دیگری از کیف پول خودتان، و روی این تراکنش تازه کارمزد بالا میگذارید. طبق قواعد بیتکوین، فرزند نمیتواند زودتر از والدش در بلاکچین ثبت شود؛ پس ماینری که کارمزد فرزند را میخواهد، باید والد را هم در همان بلاک یا زودتر بگذارد. به گفتهی Bitcoin Optech، Bitcoin Core موقع چیدن بلاک این دو را با هم در نظر میگیرد و نرخ کارمزد کل بسته را حساب میکند.
فرستنده هم میتواند CPFP کند، به شرطی که تراکنشش باقیماندهای (Change) به کیف پول خودش برگردانده باشد. باقیمانده همان بخشی از ورودیهاست که به آدرس خود فرستنده برمیگردد.
یک مثال با عدد
فرض کنید تراکنش ۲۰۰ ویبایتی شما با نرخ ۲ sat/vB، یعنی ۴۰۰ ساتوشی کارمزد، در صف مانده و برای رسیدن به بلاکهای نزدیک حدود ۱۲ sat/vB لازم است. تصویر پایین هر دو راه را کنار هم نشان میدهد.

- با RBF: نسخهی تازه را با ۱۲ sat/vB میفرستید. کارمزد کل ۲۰۰ × ۱۲ = ۲٬۴۰۰ ساتوشی میشود و نسخهی قبلی از صف کنار میرود.
- با CPFP: تراکنش فرزندی به حجم ۱۵۰ ویبایت میسازید. حجم کل بسته ۳۵۰ ویبایت میشود و برای رسیدن به نرخ ۱۲ sat/vB، کل بسته باید ۳۵۰ × ۱۲ = ۴٬۲۰۰ ساتوشی کارمزد بدهد. والد ۴۰۰ ساتوشی را داده است، پس سهم فرزند ۳٬۸۰۰ ساتوشی است و نرخ خود فرزند حدود ۲۵٫۳ sat/vB میشود.
اگر فرستندهاید و کیف پولتان RBF دارد، همین راه ارزانتر است. CPFP گرانتر درمیآید، چون پول یک تراکنش اضافه را هم میدهید، ولی کاری است که از دست گیرنده هم برمیآید.
کی بهتر است فقط صبر کنید؟
اگر عجله ندارید و نرخ تراکنشتان از حداقل کارمزد شبکه بالاتر است، صبر کردن هم راه درستی است. معمولاً وقتی صف خلوت شود، تراکنش تأیید میشود. اگر نشود و دو هفته بگذرد یا ممپول نودها پر شود، تراکنش از صف بیرون میافتد. در این حالت چیزی از کیف پولتان کم نشده، چون تراکنش هیچوقت ثبت نشده است.
فقط مراقب یک اشتباه رایج باشید. تا وقتی ممکن است تراکنش قبلی هنوز جایی در شبکه باشد، همان پرداخت را با ورودیهای دیگر دوباره نفرستید؛ اگر هر دو تأیید شوند، دو بار پرداخت کردهاید. برای ارسال دوباره از گزینهی RBF یا Cancel خود کیف پول استفاده کنید. اینطوری نسخهی تازه همان ورودیها را خرج میکند و فقط یکی از دو نسخه ثبت میشود.
جدول تصمیم: الان چه کار کنم؟
وضعیت شما | کار درست |
|---|---|
فرستندهاید و کیف پولتان گزینهی Bump fee یا RBF دارد | نرخ را با RBF به بازهی بلاکهای نزدیک برسانید |
فرستندهاید، کیف پولتان RBF ندارد ولی تراکنش باقیماندهای به خودتان برگردانده است | باقیمانده را با CPFP و کارمزد بالا خرج کنید |
گیرندهاید و بیتکوین به کیف پول خودتان میآید | مبلغ دریافتی را با CPFP خرج کنید یا از فرستنده بخواهید RBF کند |
از صرافی برداشت کردهاید و مقصد هم یک صرافی یا سرویس دیگر است | فقط صرافی میتواند کارمزد را بالا ببرد؛ TXID را بگیرید و اگر کار طول کشید، آن را به پشتیبانی بدهید |
عجله ندارید و نرخ از حداقل کارمزد شبکه بالاتر است | صبر کنید و وضعیت را با TXID دنبال کنید |
تراکنش از صف حذف شده است | پول هنوز در کیف پول شماست؛ با همان ورودیها و کارمزد مناسب دوباره بفرستید |
ممپول در اتریوم: کارمزد پایه، انعام و nonce
اتریوم هم صف خودش را دارد. به گفتهی ethereum.org، تراکنش بعد از ارسال وارد مخزن تراکنشهای در انتظار (Transaction Pool) میشود و آنجا میماند تا یک اعتبارسنج آن را در بلاک بگذارد. ولی دو چیز در اتریوم فرق دارد.
اول اینکه کارمزد دو بخش دارد. کارمزد پایه (Base Fee) را خود شبکه برای هر بلاک تعیین میکند و این بخش سوزانده میشود. کارمزد اولویت یا انعام (Priority Fee) به اعتبارسنج میرسد و همان چیزی است که نوبت شما را جلو میاندازد. کیف پول برای کل کارمزد سقفی هم میگذارد به اسم Max Fee؛ اگر کارمزد پایه از این سقف بالاتر برود، تراکنش تا پایین آمدن کارمزد پایه نمیتواند در بلاک بیاید.
در اتریوم هر ۱۲ ثانیه یک بلاک ساخته میشود، پس صفش معمولاً زودتر از بیتکوین جابهجا میشود. اینکه چرا کارمزد پایه گاهی یکدفعه بالا میرود، در چرا کارمزد اتریوم بالاست آمده است.
دوم اینکه هر آدرس شمارندهای به اسم nonce دارد و تراکنشهایش به ترتیب همین شماره اجرا میشوند. اگر تراکنش شمارهی ۹ گیر کند، تراکنشهای ۱۰ و ۱۱ همان آدرس هم پشتش میمانند، حتی اگر کارمزدشان بالا باشد. راهحل هم به همین شماره برمیگردد. راهنمای متامسک دو گزینه را اینطور توضیح میدهد:
- گزینهی Speed up همان تراکنش را با همان nonce و کارمزد بیشتر دوباره میفرستد.
- گزینهی Cancel تراکنش گیرکرده را با تراکنشی همشماره و پرکارمزدتر کنار میزند. برای انجام دستی همین کار، صفر اتر به آدرس خودتان بفرستید و nonce را همان شمارهی گیرکرده بگذارید. کارمزد اولویت را هم دستکم ۱۰ درصد بالاتر از تراکنش اصلی ببرید؛ مثلاً اگر اصلی ۳۰ gwei بوده، ۳۳ تا ۳۵ gwei بگذارید.
هر دو گزینه فقط تا وقتی کار میکنند که تراکنش هنوز در انتظار است؛ تراکنش تأییدشده برنمیگردد. اگر چند تراکنش گیرکرده دارید، از قدیمیترین شروع کنید، چون تا شمارهی ۹ حل نشود نوبت به ۱۰ نمیرسد.
این را هم بدانید که صف اتریوم عمومی است و هر کسی تراکنشهای منتظر را میبیند. بعضی رباتها همین صف را برای پیدا کردن سواپهای بزرگ زیر نظر دارند تا درست قبل و بعد از آنها معامله کنند و از تغییر قیمتی که آن سواپ ایجاد میکند سود ببرند. اسم این کار حملهی ساندویچی (Sandwich Attack) است.
اگر تتر را روی شبکهی ترون میفرستید، حساب کارمزد فرق میکند: در ترون هزینهی تراکنش با انرژی و پهنای باند حساب میشود و سازوکارش با بیتکوین و اتریوم یکی نیست.
برداشت از صرافی یا سواپولت در صف مانده؟
وقتی بیتکوینی را که در سواپولت خریدهاید یا در هر صرافی دیگری دارید به کیف پول دیگری برداشت میکنید، تراکنش را خود سرویس میسازد و امضا میکند. کارمزد شبکهاش را هم همان سرویس تعیین میکند، پس RBF از دست شما برنمیآید. ولی این کارها را میتوانید بکنید:
- اگر هنوز TXID ندارید، سرویس احتمالاً هنوز تراکنش را نفرستاده و تراکنش اصلاً به ممپول نرسیده است. این حالت را در چرا برداشت ارز دیجیتال Pending میشود توضیح دادهایم.
- اگر TXID دارید، آن را در mempool.space باز کنید و نرخش را با بلاکهای در صف مقایسه کنید. اگر مقصد کیف پول خودتان است، خودتان میتوانید CPFP کنید.
- کارمزد برداشت سواپولت را پیش از تأیید برداشت میبینید و فهرستش در صفحهی کارمزدها هست.
- اگر گیرنده هم کاربر سواپولت است، پول را با انتقال به مخاطبان سواپولت بفرستید. این انتقال اصلاً روی بلاکچین نمیرود؛ نه ممپولی در کار است و نه کارمزد شبکه.
پرسشهای رایج
ممپول با بلاکچین چه فرقی دارد؟
بلاکچین دفتر همیشگی تراکنشهای ثبتشده است و همهی نودها یک نسخهی یکسان از آن دارند. ممپول اتاق انتظاری موقت است که هر نود برای خودش نگه میدارد و هر لحظه عوض میشود؛ هر تراکنشی که در بلاک ثبت شود، از آن بیرون میرود.
آیا تراکنش من در ممپول برای همه پیداست؟
بله. آدرسها، مبلغ و کارمزد هر تراکنش منتظر را هر کسی با یک نود یا اکسپلورر میبیند، درست مثل بعد از تأیید. اسم شما در تراکنش نیامده، ولی آدرسها عمومیاند و هر کس بداند آدرسی مال شماست، تراکنشهایش را هم میبیند.
با کارمزد اولویت بالا، تراکنش حتماً در بلاک بعدی میآید؟
نه، کارمزد پیشنهادی فقط تخمین است. اگر بعد از شما تراکنشهای پرکارمزدتری برسند، ممکن است یکی دو بلاک عقب بیفتید. فاصلهی بلاکها هم ثابت نیست و ده دقیقه فقط میانگین است.
فروشندهام و تراکنش خریدار هنوز در ممپول است؛ جنس را بدهم؟
نه. تا وقتی تراکنش در هیچ بلاکی نیست، فرستنده میتواند نسخهی دیگری جایش بگذارد که پول را به آدرس دیگری بفرستد. دستکم یک تأیید و برای مبلغهای بزرگ چند تأیید صبر کنید.
بهترین وقت برای فرستادن ارزان کی است؟
ساعت ثابتی نمیشود گفت، چون شلوغی ممپول به اتفاقهای بازار بستگی دارد. اگر عجله ندارید، درست پیش از ارسال نگاهی به کارمزد پیشنهادی mempool.space بیندازید و نرخ اولویت کم را بگذارید.
