ممپول چیست و چگونه کار می کند؟ مشکل استخر حافظه (mempool) در شبکه های با تراکنش بالا چگونه حل میشود؟
هنگامی که یک تراکنش در شبکه رمز ارزی انجام میشود، ممپول (mempool) اولین فضایی است که تراکنش انجام شده در آن قرار میگیرد. درواقع نوعی حافظه موقت و واسطه است که تراکنشها به طور لحظهای در آن قرار میگیرند. تراکنشها در شبکه های غیر متمرکز ارزهای دیجیتال باید توسط نودها بررسی و پردازش شوند. بعد از پردازش نودها، تراکنش توسط ماینرها در بلاک قرار میگیرد و در شبکه ثبت میشود.
تراکنشهای شبکه معمولا بلافاصه توسط ماینرها ثبت نمیشوند و معمولا در یک فضای ذخیره سازی، در حالت انتظار برای تایید و ثبت قرار میگیرند. این فضای ذخیره سازی همان mempool است که عملکرد آن تاثیر بسزایی بر روی تراکنشهای شبکه دارد. در این مقاله قصد داریم تا همه چیز درباره ممپول و نحوه عملکرد آن را برسی کنیم.
نحوه عملکرد تراکنشهای شبکه بلاک چین
برای درک ممپول و عملکرد آن، بهتر است با نحوه کارکرد تراکنشها در شبکههای بلاکچین آشنا شوید. به صورت کلی در شبکههای بلاک چین یک ارز دیجیتال، هنگامی که یک تراکنش انجام میشود، توسط ماینرها یا اعتبارسنجها بررسی و تایید میگردد. این کار به دلیل ایجاد امنیت در شبکه است تا کاربران بتوانند در فضایی ایمن سرمایه گذاری کنند و تراکنشهای خود را انجام دهند.
بنابراین وقتی که تراکنشی در شبکه انجام میشود، در ابتدا نودها به بررسی تراکنش میپردازند. بعد از آنکه تایید شد، باید توسط ماینرها یا اعتبارسنجها در شبکه ذخیره شود. معمولا تراکنشها بلافاصله در شبکه ثبت نمیشوند و باید بعد از تایید توسط نودها، در یک فضای ذخیره سازی قرار بگیرند. معمولا هر نود فضای ذخیره سازی خاص خود را دارد.
در واقع هر نود دارای یک ممپول خاص است که تراکنشها در آن در حالت انتظار برای ثبت در شبکه، قرار میگیرند. بنابراین شبکههای بلاکچینی دارای یک ممپول واحد و بزرگ نیستند و هر کدام از نودها دارای ممپولهای جداگانهای هستند. نحوه بررسی و پردازش تراکنشها در شبکههای بلاک چین یکسان نیست و از الگوریتمها و روشهای مختلفی برای این کار استفاده میشود.
به عنوان مثال شبکه بلاک چین اتریوم از الگوریتم اثبات سهام استفاده میکند. در این الگوریتم نسبت به الگوریتم اثبات کار، مقیاس پذیری بالاتری وجود دارد و باعث میشود تا اعتبارسنجها با سرعت بالایی تراکنشها را بررسی و تایید کنند. همچنین تعداد تایید و بررسی تراکنشها نیز در هر شبکه متفاوت است. به عنوان مثال در شبکه بیت کوین، حداقل شش نود باید هر تراکنش را تایید کنند؛ در حالیکه در شبکه اتریوم باید هفت نود تراکنش را تایید کنند.
ممپول چیست؟
عبارت ممپول از ترکیب دو کلمه memory، به معنی حافظه و pool، به معنی استخر ایجاد شده و عبارت mempool به معنی استخر حافظه است. هر نود یا گره اطلاعات تراکنشهای اعتبارسنجی یا ماین نشده را در فضایی به نام ممپول ذخیره میکند. هر کدام از نودهای شبکه دارای استخر حافظه هستند که تراکنشها برای تایید و ثبت در شبکه، در آن قرار میگیرند.
در واقع به دلیل آنکه تمامی تراکنشهای شبکه به طور همزمان اتفاق نمیافتند و پردازش آنها به صورت غیرمتمرکز است، تراکنشها ناچار هستند تا بعد از تایید، منتظر اعتبارسنجها یا ماینرها برای ثبت در شبکه باشند. بنابراین ممپول همانند اتاق انتظار برای تراکنشهای تایید شده است.
اندازه ممپول در هر نود به سخت افزار استفاده شده نود یا گره بستگی دارد. سخت افزارهای قدرتمند با فضای ذخیره سازی و عملکرد بالا، میتوانند تعداد تراکنشهای بیشتری را ذخیره کنند و در نتیجه اندازه این استخر حافظه نیز بیشتر خواهد شد. زمانی که فضای ذخیره سازی یک ممپول پر شود، ماینرها یا اعتبارسنجها تراکنشهای آن نود را در الویت قرار میدهند؛ زیرا با پرشدن ظرفیت ممپول ، کارمزد آن نیز بیشتر میشود و اعتبارسنجها و ماینرها انگیزه بیشتری برای ثبت تراکنشهای آن دارند.
در برخی مواقع، به دلیل افزایش تراکنشها و شلوغی شبکه، ممکن است ظرفیت ممپول ها پر و مسدود شوند. در این حالت، زمان انجام تراکنشها و ثبت آن در شبکه افزایش یافته و به تبع آن میزان کامزد تراکنش شبکه نیز زیاد میشود. در این حالت برخی از کاربران از تکنیک شتاب دهنده تراکنش استفاده میکنند تا تراکنشهای خود را هرچه سریعتر در شبکه ثبت کنند.
این تکنیک بدین صورت انجام میشود: کاربری که تراکنشی در شبکه انجام داده و منتظر تایید تراکنش خود است، مجدد تراکنش خود را در شبکه ارسال میکند تا به ماینرها یا اعتبارسنجها نشان دهد هنوز تراکنش تایید نشده یا میتواند هزینه کارمزد بیشتری برای تایید تراکنش پرداخت کند.
ممپول چگونه کار میکند؟
برای درک بهتر عملکرد ممپول، شبکه بلاکچین بیت کوین را بررسی میکنیم. کاربران از طریق کیف پولهایشان، تراکنشهای خود را در شبکه انجام میدهند. تراکنشهای انجام شده وارد شبکه بلاک چین میشوند و ممپولها تراکنشهایی که توسط کاربران شبکه انجام شده را ذخیره میکنند. در شبکههای بزرگی همچون بیت کوین، هزاران کاربر به طور همزمان در بازه زمانی کوتاهی، تراکنش انجام میدهند و بدین ترتیب ترافیک تراکنش بالایی در شبکه ایجاد میشود.
بعد از انجام تراکنش و ذخیره در ممپول، ماینرها و اعتبارسنجها کار خود را شروع میکنند و تراکنشها را از استخرهای حافظه (mempool) خارج کرده و با تایید و ثبت آنها در شبکه، فضای ذخیره سازی mempoolها را آزاد میکنند. هرچه فضای ذخیره سازی ممپولها با سرعت بالاتری آزاد شود، شبکه سریعتر متعادل میشود.
در واقع هرچه تعداد تراکنشهای کمتری در شبکه انجام شود، فضای ذخیره سازی کمتری در ممپولها اشغال شده و فشار کمتری به ماینرها و اعتبارسنجها وارد میشود. به همین دلیل است که بیشتر شبکههای بلاک چینی در ابتدای کار خود سرعت بسیار بالایی دارند اما با افزایش کاربران و تعداد تراکنشها، سرعت پردازش آنها افت میکند. البته با افزایش کاربران شبکه، تعداد نودها و فضای ذخیره سازی ممپولها نیز رشد میکند. به طور خلاصه فرآیند انجام تراکنشها و عملکرد ممپول در چرخه زیر خلاصه میشود:
- کاربر تراکنش را در کیف پول خود انجام میدهد و به شبکه ارسال میکند. یک نود تراکنش را در شبکه بلاک چین پخش میکند.
- نود تراکنش را بررسی و تایید میکند و آن را در ممپول خود ذخیره و برای سایر نودها ارسال میکند.
- هر نودی که تراکنش را دریافت کند، آن را بررسی و تایید کرده و در سراسر شبکه ارسال میکند.
- اعتبارسنجها یا نودها تراکنشهای داخل ممپول ها را بررسی و در بلاک جدید ثبت میکنند.
- تمامی نودها بلاک جدید را دریافت میکنند. اگر هر یک از نودها تراکنش ثبت شده را در استخر حافظه خود داشته باشد، آن را حذف میکند تا تراکنشهای جدید را در آن قرار دهد.
بیشتر بخوانید: نود (Node) یا گره در بلاک چین چیست و انواع آن کدامند؟
ممپول ها و کارمزد تراکنشها
عملکرد ممپول ها در شبکه بلاکچین باعث مدیریت تراکنشها و انجام بهتر آنها میشود. این سیستم زمانی که تعداد تراکنشها پایین و ترافیک شبکه کم باشد، به خوبی اجرا میشود اما زمانی که تعداد تراکنشها افزایش یابد، مشکلاتی را برای کاربران ایجاد میکند. در زمانی که تعداد تراکنشها افزایش یابد، میزان کارمزد شبکه نیز افزایش مییابد و کاربر مجبور است تا برای انجام تراکنش خود کارمزد بیشتری بپردازد.
ممپول دارای فضای ذخیره سازی محدود است و اندازه این فضا به سخت افزار نودها بستگی دارد. زمانی که فضای ذخیره سازی ممپول در نودها پر میشود، نودها حداقل نرخ کارمزد را برای تراکنشهای خود تعیین و به شبکه ارسال میکنند تا تراکنشها کمتر از این نرخ انجام نشود. همین نکته باعث میشود کارمزد تراکنش در شبکه افزایش یابد و کاربر ناچار شود تا هزینه کارمزد بیشتری پرداخت کند.
در واقع کاربرانی که تراکنشهای خود را ارسال کردهاند اما هنوز تایید نشده، میتوانند صبر کنند تا اعتبارسنجها و ماینرها آنها را انجام داده و بعد در شبکه ثبت کنند. همچنین کاربران میتوانند با پرداخت هزینه تراکنش بیشتر، به تایید تراکنش خود سرعت ببخشند. این نکته یکی از انتقادات اصلی به ممپول است؛ زیرا باعث میشود افرادی که میزان دارایی بیشتری دارند و ثروتمندتر هستند به سرعت تراکنشهای خود را انجام دهند. در صورتی که سایر کاربران باید برای تایید تراکنش خود مدت زمانی بیشتری انتظار بکشند.
حل چالش ممپول در شبکههای با تراکنش بالا
همانطور که اشاره شد، یکی از مشکلات اصلی در عملکرد ممپول، بحث افزایش تراکنشها و ترافیک شبکه است. هنگامی که تعداد تراکنشها افزایش یابد، فضای ذخیره سازی استخرهای حافظه به سرعت پر شده و در نتیجه سرعت پردازش و کارمزد شبکه زیاد میشود. در نگاه اول، اینگونه تصور میشود که هرچه اندازه ممپول بیشتر باشد، میتواند تعداد تراکنش بیشتری ذخیره کند و در نتیجه سرعت شبکه نیز افزایش مییابد.
این تصور که با افزایش اندازه ممپول، عملکرد شبکه بهتر میشود، کاملا اشتباه است. اندازه ممپول ها متغیر و بسته به تعداد تراکنشهای موجود در شبکه وابسته است. بزرگی اندازه آنها تنها تراکنشهای ثبت نشده را بیشتر میکند و نمیتواند سبب بهبود شبکه شود.
در واقع با افزایش بیش از حد ممپول، تعداد تراکنشهای تایید نشده بیشتر شده و باعث تاخیر در فرآیند ثبت تراکنشها در شبکه میشود. به همین دلیل برخی از شبکههای بلاکچینی برای اندازه mempool شبکه محدودیت قرار میدهند. با قرار دادن محدودیت در آنها، نودهایی که سخت افزار مجهزتری دارند محدود میشوند و به نوعی تمرکززدایی در شبکه شکل میگیرد. همچنین میزان کارمزد شبکه و ترافیک آن نیز مدیریت میشود.
سخن پایانی
«ممپول چیست؟» mempool نقش مهمی در عملکرد و سلامت یک بلاکچین ایفا میکند. اجازه دادن به گرهها برای اعتبارسنجی تراکنشها و ماینرها برای اولویت بندی تراکنشهای معلق با توجه به هزینههای گس، بخشی اساسی برای جریان تراکنشها محسوب میشود. توسعه دهندگان نیز میتوانند از دادههای ارائه شده توسط یک mempool برای کاهش هزینهها و مشکلات در قراردادهای هوشمند خود استفاده کنند.
در شبکههای بلاک چین، تراکنشهای انجام شده توسط نودها بررسی و تایید میشوند و سپس توسط ماینرها در بلاک جدید قرار میگیرند. نودها بعد از پردازش تراکنش، آنها را در فضای ذخیره سازی به نام ممپول قرار میدهند. هر نود دارای mempool منحصر به فردیست که فضای ذخیره سازی آن به سخت افزار آن نود وابستگی دارد. استخرهای حافظه همانند اتاق انتظار برای قرارگیری در بلاک جدید عمل میکنند و دسترسی نودها به سایر ممپولهای دیگر نودها را امکان پذیر میسازند. با این کار ماینرها یا اعتبارسنجها میتوانند میزان ترافیک شبکه را ارزیابی کنند.
سوالات متداول
ممپول چیست؟
Mempool نسخه یک گره بلاک چین از اتاق انتظار برای تراکنشهایی است که هنوز تایید نشدهاند. هنگامی که آن را شروع می کنید، تراکنش شما به طور خودکار به صف در mempool می پیوندد، قبل از اینکه در بلاک چین پردازش شود.
مرورگر ممپول یا Mempool Explorer چیست؟
مرورگر ممپول ابزاریست که به شما این امکان را میدهد تا اطلاعات لحظهای و تاریخی مربوط به ممپول یک نود را مشاهده کنید، معاملات آن را تصور کرده و جستجو و مشاهده نمایید. وبسایت mempool.space مفهوم تجسم ممپول یک نود بیتکوین به صورت بلاک های پیش بینی شده را اختراع کرده است.
یک تراکنش چه مدت در ممپول می ماند؟
به عنوان یک قاعده کلی، اگر یک تراکنش به مدت کافی،یعنی حدود ۴۸ ساعت، در ممپول باقی بماند، تراکنش حذف و وجوه به کیف پول کاربر برگردانده میشود. این اتفاق ممکن است زمانی بیافتد که فرد هزینه تراکنش کمی در دورههایی که حجم تراکنشها بالاست، پرداخت کند.
مقاله بسیار مفیدی بود. مرسی از زحماتتون
سپاس از همراهی شما