سمیرا ابراهیم پور | 1395.12.06

نگاهی دقیق تر به Mempool

Mempool بیت کوین متشکل از تمام تراکنش هایی ست که در انتظار گرفتن تایید شبکه هستند. هربار که یک تراکنش بیت کوین در شبکه منتشر می شود، تا زمان دریافت اولین تایید حدود 10 دقیقه زمان می برد. البته با توجه به تعداد تراکنش هایی که در mempool در انتظار تایید هستند این زمان می تواند طولانی تر نیز بشود.

هر تراکنش جدیدی که وارد شبکه شود، به صورت خودکار به mempool اضافه می شود و منتظر دریافت تایید از سوی استخراج کنندگان می ماند. وقتی که استخراج کننده ای تراکنشی را برای گنجاندن در بلوک بعدی انتخاب کند، تراکنش به طور خودکار اولین تایید را می گیرد.

هر نود mempool مختص خود را دارد و می تواند آن را روی اندازه مورد نظرش تنظیم کند. پس از انتشار یک بلوک جدید در شبکه، نودها تراکنش های تایید شده ای که در mempool وجود دارد را حذف می کنند (یعنی تراکنش هایی که در آن بلوکِ منتشر شده قرار گرفته).

انتخاب تراکنش ها توسط استخراج کنندگان می تواند چالش برانگیز باشد. استخراج کنندگان تراکنش های تایید نشده ی mempool را بر حسب “فی” آنها اولویت بندی می کنند. علاوه بر جایزه شبکه، این فی ها به عنوان جایزه یا bonus به استخراج کنندگان برای تلاششان در ایجاد بلوک بعدی در شبکه تعلق می گیرد. کاربرانی که میزان فی بیشتری برای تراکنش خود در نظر بگیرند، تراکنششان زودتر از آنهایی که فی کمتری دارد انتخاب شده و مورد بررسی قرار می گیرد.

Mempool بیت کوین کلکسیون بزرگی از تراکنش های موجود در شبکه است که در انتظار تایید هستند. mempool بسیار شبیه به هر Pool یا استخر دیگری ست که شامل اطلاعات زیادی می شود. در mempool تراکنش های بسیار زیادی وجود دارد که می توانند تا زمانی که تایید شوند معلق (یا در انتظار) بمانند، اما اگر تعداد آنها بیش از حد شود می تواند باعث ایجاد بک لاگ (backlog) بشود. البته به طور معمول تعداد تراکنش های تایید نشده بسیار کم است. هرچند که در روزهای اخیر شاهد افزایش بی سابقه تعداد تراکنش ها هستیم.

نمودار فوق حجم اطلاعات موجود در mempool را از ماه مه 2016 تا حدود 24 فوریه 2017 نمایش می دهد. همانطور که در این نمودار 9 ماهه مشخص است در  بسیاری از زمان ها میزان تراکنش هایِ در انتظار تایید بسیار کم بوده و در حالت بیشینه به کمتر از 50/000/000 بایت معادل 50مگابایت رسیده است. اما همانطور که گفته شد در روزهای اخیر شاهد افزایش بی سابقه تعداد تراکنش ها هستیم که با توجه به نمودار این تعداد حتی به 69/000/000 نیز رسیده است.

به وجوذ آمدن بک لاگ در صورتی که تعداد تراکنش های جدید در مقایسه با تعداد تراکنش هایی که توسط استخراج کنندگان انتخاب می شود بیشتر باشد مقوله ای دور از ذهن نیست.

تا زمانی که اندازه mempool زیر 1مگابایت باشد، هیچ تاخیری در تایید تراکنش ها وجود نخواهد داشت چرا که همانطور که می دانید اندازه هر بلوک 1مگابایت است. هرگونه افزایشی در اندازه mempool بدان معناست که زمان متوسط تایید تراکنش به اندازه آن تعداد بلوک، افزایش خواهد یافت. برای مثال اگر اندازه mempool به 20مگابایت  برسد، تراکنش هایی با فی پایین تر بعد از استخراج چیزی حدود 20 بلوک، اولین تایید را از شبکه دریافت خواهند کرد.

در کل متاسفانه تا زمانی که اندازه بلوک ها به اندازه فعلی باقی باشد، راهکاری برای رهایی از صف mempool و فرار از حضور در Backlog به جز تعیین فی بالاتر برای تراکنش ها وجود ندارد. از طرفی تراکنش هایی با فی پایین و یا بدون فی، با توجه به عدم جذابیت، خود باعث ایجاد بک لاگ خواهند شد.



دیدگاه هایی که در این مقاله ارائه شده اند، متعلق به نویسنده می باشند و لزوماً مربوط به Coiniran نمی باشد و نباید به آن نسبت داده شود.



Image via nakamotoinstitute