Що таке мемпул і як він працює простими словами
Якщо ви хоча б раз проводили криптотранзакцію, ви могли помітити, що система здійснює операцію із затримкою. Коли транзакція вже ініційована, але ще не проведена, вона перебуває в так званому мемпулі.
У цьому огляді редакція сайту ITstatti.in.ua розповість, що таке мемпул, як він працює і чому він став важливою частиною схеми проведення операцій із криптовалютою.
Що таке мемпул
Мемпул - це "кімната очікування", яка знаходиться на ноді (мережевому вузлі) блокчейна. У цьому цифровому просторі зберігаються транзакції, які вже ініціювали, але не встигли обробити. Термін - похідне від англійських "memory" (пам'ять) і "pool" (пул, загальний фонд). Поєднання слів - відсилання до призначення цифрового простору, використовуваного для зберігання черги транзакцій, які потрібно додати в блокчейн.
Криптовалюта біткоїн (BTC) виявилася проєктом, який популяризував технологію блокчейн. Також творець монети - Сатоші Накамото першим на ринку застосував концепт проведення транзакцій з використанням мемпула. Після схему адаптували інші блокчейн-проекти, включно з Ethereum.
Мемпули є у всіх блокчейнах, просто в деяких вони названі по-іншому. Наприклад, мемпул блокчейн-проєкту Parity називають "черга транзакцій" (Transaction Queue).
Як визначити розмір мемпулу
Кожна транзакція, додана в мемпул, являє собою частину даних розміром не більше кількох кілобайт (КБ). Сума всіх КБ, що складають транзакції, визначає розмір мемпула.
Великий розмір мемпула свідчить про наявність безлічі транзакцій, які очікують підтвердження. Ось, наприклад, як змінювався мемпул біткоїна:
На графіку видно, що розмір мемпула біткоїна часто зростає на тлі активного руху курсу криптовалюти - зростання або падіння.
Примітка! Ноди можуть встановлювати обмеження за розмірами для свого мемпула. Перевищення межі може призвести до введення мінімальної комісії для проведення операції.
Роль мемпула в блокчейн-транзакціях
Мемпули відіграють важливу роль у схемі роботи нод блокчейна. Для запису транзакції в блокчейн потрібно, щоб її спочатку додали в блок (складова блокчейну). Не всі ноди блокчейну можуть створювати блоки. Наприклад, у блокчейн-системах, які працюють на базі алгоритму Proof-of-Work (PoW) - таких, як біткоїн, тільки майнери мають право додавати транзакції в блок. У блокчейн-системах на базі Proof-of-Stake (PoS) - таких, як Ethereum, додаванням транзакцій у блок зайняті валідатори.
Після створення транзакції користувач змушений чекати, поки валідатор або майнер схвалить її для подальшого додавання в блок, з подальшим записом у блокчейн. Процес не відбувається миттєво. Весь той час, поки транзакція чекає на перевірку, включення в блок і запис у блокчейн, вона перебуває в тому самому мемпулі.
Як працює мемпул
Для початку зауважимо, що в одного блокчейна може бути безліч мемпулів. У кожної ноди є цифровий простір, відведений під зберігання транзакцій, які очікують на перевірку і додавання в блокчейн. Усі мемпули блокчейна, розподілені по приватних нодах, разом складають один великий колективний мемпул.
У момент, коли користувач створює транзакцію, він відправляє її на ноду. Мережевий вузол додає операцію у свій мемпул і ставить її в чергу на валідацію (перевірку на коректність даних). Після того, як транзакція проходить валідацію, її переводять у статус очікування. Саме такі операції майнери та валідатори можуть додавати в нові блоки, щоб надалі приєднати їх до блокчейну.
У момент, коли транзакція приєднана до блокчейну, ноди отримують інформацію про це. Тепер мережеві вузли можуть стерти непотрібну інформацію про операцію зі своєї "кімнати очікування". Так і відбувається синхронізація мемпулів.
Життєвий цикл криптовалютної транзакції та роль мемпула
Щоб проілюструвати роботу мемпула і життєвий цикл транзакції, уявімо, що ви хочете відправити 0.01BTC своєму товаришеві.
- Для початку потрібно дізнатися адресу гаманця для криптовалют, яким користується ваш приятель. Її потрібно вказати, як адресу одержувача під час ініціювання транзакції. Також може знадобитися згода на зазначену системою комісію за переказ. Фінальний етап - натиснути клавішу "відправити".
- Транзакцію буде додано в найближчий мемпул і позначено, як операцію в черзі на проведення.
- Тепер транзакцію транслюватимуть іншим нодам мережі, щоб мережеві вузли змогли перевірити її й упевнитися, що переказ не порушує правил.
- У разі, якщо транзакція пройде перевірку нодами, її переведуть із загальної черги в групу очікування (на додавання в блок, з подальшим записом у блокчейн). Якщо ж з операцією щось не так, користувач отримає повідомлення про те, що ця транзакція не підтверджена.
- Один із майнерів або валідаторів додасть транзакцію в новий блок і запише його в блокчейн.
- Тепер майнер або валідатор, який додав транзакцію в блок і записав її в блокчейн, почне транслювати інформацію про блок нодам. Як підсумок, мережеві вузли отримають доступ до інформації про транзакції, які включили в блок.
- На цьому етапі ноди можуть стерти інформацію про вашу транзакцію, яка весь цей час зберігалася в мемпулі.
- Готово! Переказ завершено - ваш друг отримав належні йому 0.01 BTC.
Перевантаження мемпула
Перевантаження в мемпулі виникає в періоди, коли обсяг запитуваних операцій перевищує кількість транзакцій, які можуть поміститися в один блок. Ось кілька факторів, які можуть стати причиною сповільнення роботи мемпула:
- Перевантаження мережі. Збільшення кількості транзакцій призводить до нестачі місця в блоках, що стає причиною перевантаження мемпула. Наприклад, середня кількість транзакцій в одному блоці блокчейна біткойна становить близько 3150. Якщо кількість транзакцій, що очікують, значно перевищить це число протягом кількох годин, мережа, а слідом за нею і мемпули, будуть перевантажені.
- Події або новини. Події та новини, що безпосередньо впливають на блокчейн-індустрію, як-от запуск токенів, аірдропи або підтримка криптоіндустрії знаменитостями, можуть викликати раптові сплески попиту на транзакції. Стрибки активності здатні призводити до перевантажень мемпула.
- Форки або оновлення мережі. Зміни мережі, як-от форки або оновлення блокчейна, можуть спричинити миттєве перевантаження мемпула. Причина в тому, що ноди будуть зайняті оновленнями.
Знаючи про причини перевантажень мемпула, розробники можуть вносити в проєкти необхідні корективи, щоб мінімізувати наслідки.
Пріоритет транзакцій
Одним з основних факторів, що визначають порядок виконання транзакцій у мемпулі, є комісії. Майнери і валідатори можуть вибирати, які транзакції вони хочуть додати в новий блок, керуючись обсягом потенційного прибутку. Простіше кажучи, чим більше комісії користувач готовий заплатити за проведення операції - тим швидше її проведуть.
Тому відповідь на питання про те, скільки чекати підтвердження транзакції біткоїна, залежить від рівня навантаження мемпула і щедрості комісій. Чим нижче навантаження і вища плата - тим швидше пройде операція. Перевантаження мемпула і низька комісія - навпаки, можуть стати причиною уповільнення підтвердження транзакції біткоїна або будь-якої іншої криптовалюти.
FAQ
Що таке мемпул простими словами?
Мемпул - це цифрова "кімната очікування" для транзакцій, які вишикувалися в чергу на перевірку, з подальшим додаванням у блок і записом у блокчейн.
Мемпул. Скільки чекати на проведення транзакції?
Час від моменту потрапляння транзакції в мемпул до її проведення залежить від низки чинників, включно з рівнем завантаженості мережі та обсягом запропонованої ініціатором операції комісії. Що менше навантаження на мережу і вища плата - то швидше буде проведено транзакцію.
Як подивитися завантаженість мережі біткоїна?
Знайти всі необхідні метрики можна, наприклад, на blockchain.com. Зверніть увагу на середню кількість транзакцій у блоці, обсяг мемпула і середні значення комісій. Якщо вони близькі до максимумів, отже, мережа перевантажена.
Як проходить перевірка транзакції біткоїна?
Після створення транзакція потрапляє в мемпул. Там її перевіряють ноди (мережеві вузли). Якщо з транзакцією все добре, її переміщують у чергу на додавання в блок. За цю роботу відповідають майнери. Вони можуть віддавати пріоритет операціям із найбільшою комісією. Тому швидкість додавання транзакції в блок з подальшим записом у блокчейн, зокрема, залежить від рівня оплати. Після того, як майнер вніс транзакцію в блок і додав блок до блокчейну криптовалюти, операцію можна вважати завершеною.
Читайте також - Що таке PoS у криптовалюті.
Вітаю всіх на нашому інтернет-журналі. Я - Вольдемар Воронцовський. Цей матеріал написаний і опублікований одним з наших авторів (експертом у своїй справі). За кожною статтею стоїть досвідчений співробітник нашої команди, який перевірив матеріал на помилки і актуальність. Познайомитися з нами можна в розділі - «Редакція сайту».