Що таке Mempool і як він працює?

ПочатківецьDec 03, 2023
Ця стаття розповідає про важливу роль «mempool» в криптовалютних транзакціях, надаючи глибоке розуміння його концепції та операцій. Він висвітлює динаміку та життєві цикли транзакцій, що обробляються в межах mempool, пояснюючи потенційні причини перевантаження та затримок.
Що таке Mempool і як він працює?

Якщо ви коли-небудь виконували транзакцію з криптовалютою, наприклад надсилали кошти на іншу адресу гаманця , ви могли помітити затримку. Ці відкладені транзакції зазвичай зберігаються в так званому «мемпулі».

У цьому посібнику детально описано, що таке mempool, як він працює та чому він є важливою частиною транзакції криптовалюти.

)

Що таке mempool?

Мемпул — це свого роду «кімната очікування» на вузлі блокчейну, де зберігаються невидобуті транзакції. Термін «мемпул» — це комбінація двох слів — «пам’ять» і «пул» і означає простір, де незавершені транзакції чекають у черзі, перш ніж їх буде додано до блокчейну.

Біткойн був першим блокчейном, який представив і використовував концепцію пулу пам’яті транзакцій (mempool). Інші блокчейни, такі як Ethereum, також пізніше прийняли цей термін. Усі блокчейни мають певний тип mempool, навіть якщо вони можуть мати інший термін для цього. Наприклад, блокчейн Parity використовує термін «черга транзакцій» для представлення мемпулів у своєму ланцюжку.

Роль у транзакціях блокчейну

Мемпули відіграють важливу роль у роботі вузлів блокчейну . Щоб транзакція була завершена та записана в блокчейні, її потрібно спочатку додати до блоку. Однак не всі вузли в мережі блокчейн можуть створити новий блок. Наприклад, у блокчейнах, які працюють з використанням механізму підтвердження роботи , як-от біткойн, лише майнери можуть додавати транзакції до нового блоку. Що стосується блокчейнів, які використовують механізм підтвердження частки , наприклад Ethereum, лише валідатори або пропоненти можуть додавати транзакції до блоку.

Після ініціювання транзакції користувачі повинні залежати від майнера або валідатора, щоб схвалити транзакцію та додати її до блокчейну. Це не відбувається миттєво. Натомість існує затримка між часом ініціювання транзакції та моментом її завершення. Протягом цього часу транзакція зберігається в мемпулі в очікуванні підтвердження.

Як працює mempool?

По-перше, ви повинні зауважити, що блокчейни не мають лише одного mempool. Навпаки, кожен вузол у конкретній мережі блокчейн має власний пул пам’яті транзакцій. Наприклад, кожен вузол у блокчейні біткойн має власний пул транзакцій, які очікують на додавання до публічної книги. Разом мемпули в окремих вузлах складають колективний мемпул.

Коли користувач ініціює транзакцію, вона надсилається на вузол. Потім вузол додасть транзакцію до свого mempool і поставить її в чергу, очікуючи перевірки. Після підтвердження транзакції вона буде позначена як "очікує на розгляд". Майнери можуть додавати до нового блоку лише транзакції, позначені як «очікуючі».

Динаміка Mempool і життєвий цикл транзакцій

Щоб проілюструвати динаміку mempool і життєвий цикл транзакцій, припустімо, що ви хочете надіслати 0,01 BTC другу.

  1. Спочатку ви введете адресу гаманця свого друга, приймете комісію за транзакцію блокчейну, а потім натисніть «Надіслати».

  2. Транзакцію буде додано до найближчого mempool як транзакцію в черзі.

  3. Далі трансакція буде транслюватися на інші вузли в мережі, але вона поки що не буде доступна в блокчейні. Замість цього кожен вузол виконує індивідуальні тести, щоб перевірити справжність транзакції.

  4. Якщо вузли схвалюють транзакцію, її статус змінюється з «у черзі» на «очікує».

  5. Зрештою незавершена транзакція буде вибрана майнером і додана до нового блоку.

  6. Далі майнер передасть цей блок назад усім вузлам. У результаті всі вузли тепер матимуть доступ до всіх транзакцій, включених до нового блоку.

  7. На цьому етапі вузли, які все ще зберігають вашу транзакцію у своїх mempool, видалять її.

  8. Нарешті ваша транзакція завершена, і ваш друг отримує 0,01 BTC.

Перевантаження та відставання в Mempool

Перевантаження в мемпулі транзакцій виникає, коли попит на транзакції перевищує кількість транзакцій, які можуть вміститися в одному блоці. Декілька факторів можуть спричинити відставання в mempool. До них належать:

  • Перевантаження в мережі: якщо мережа блокчейну відчуває великі обсяги транзакцій, це спричинить тиск на доступний простір блоків, що зрештою призведе до перевантаження mempool. Наприклад, середня кількість транзакцій в одному блоці в блокчейні Bitcoin наразі становить близько 2800. Якщо кількість транзакцій, що очікують на розгляд, значно перевищує це число протягом кількох годин, мережа буде перевантажена, і, як наслідок, мемпули також будуть перевантажені.

Середня кількість транзакцій біткойна на блок-діаграму: Ycharts.com

  • Події чи новини. Події та новини, які безпосередньо впливають на індустрію блокчейну, як-от запуск токенів, розсилка або підтримка відомих особистостей, можуть спричинити раптові сплески попиту на транзакції. Ці стрибки можуть призвести до тимчасового відставання в mempool.
  • Розгалуження або оновлення мережі: такі дії в мережі, як розгалуження або оновлення мережі блокчейн, можуть спричинити миттєве перевантаження mempool, оскільки вузли в мережі оновлюють зміни.

Розуміння цих факторів і того, як вони впливають на перевантаження mempool, є важливим для користувачів і розробників. Це дозволяє їм передбачити можливі затримки та внести необхідні коригування, щоб заощадити на оплаті газу та уникнути затримок.

Керування пріоритетом транзакцій і комісіями

Оскільки багато транзакцій відбуваються одночасно, є кілька факторів, які визначають, яким транзакціям надається пріоритет у мемпулі. Деякі з них ми виділимо нижче.

Оцінка комісії та включення транзакції

Одним із основних факторів, що визначають порядок виконання транзакцій у межах мемпулу, є комісія, що стягується з кожної транзакції. Майнери та валідатори керуються прибутком, і вони можуть вибирати, які транзакції вони хочуть додати до нового блоку. Не дивно, що вони віддають перевагу транзакціям із вищими комісіями, оскільки це означає більші винагороди.

Тому комісії, пов’язані з транзакцією, значною мірою впливають на її шанси бути включеною до блоку. Майнери зазвичай організовують транзакції всередині своїх мемпулів з точки зору комісії за одиницю даних транзакції, яка зазвичай представлена як сатоші/байт. Звідти вони віддають пріоритет транзакціям з найвищими ставками комісії, доки блок не буде заповнений.

Такий платний підхід створює конкурентний ринок у mempools. Це змушує користувачів вибирати між сплатою вищої комісії за швидке завершення транзакції або нижчою комісією за рахунок більш тривалого періоду очікування.

Тим не менш, користувачі можуть оцінити оптимальну плату, яка не надто висока, але все одно забезпечить своєчасне підтвердження. Цього можна досягти, враховуючи деякі фактори, такі як історичні дані, обсяг транзакцій, перевантаженість мережі та розподіл комісії в межах мемпулу. Більшість популярних платформ, як-от криптогаманці та біржі, мають інструменти, які можуть аналізувати поточний стан мемпулу та рекомендувати найбільш відповідні комісії.

Тим не менш, складання точних оцінок гонорарів не є точною наукою, і проблеми залишаються. Наприклад, умови мережі можуть швидко змінюватися, що робить історичні дані ненадійними. Крім того, комісії можуть стати дуже нестабільними в періоди високого попиту, що призводить до неочікуваних коливань комісії.

Вплив перевантаження мережі

Перевантаження мережі різними способами впливає на обробку транзакцій і динаміку плати за газ:

  1. Збільшений час підтвердження: коли є затори, майнери почнуть віддавати пріоритет транзакціям, які сплачують вищу комісію за газ. Зазвичай це призводить до довшого часу підтвердження. Якщо mempool залишається перевантаженим, транзакції з найнижчою оплатою газу можуть тривати години або навіть дні.
  2. Конкуренція за комісію: перевантаження в mempool часто призводить до того, що користувачі починають конкурувати за швидке додавання своїх транзакцій до блоку. Це означає, що для майнерів або валідаторів, щоб визначити пріоритет вашої транзакції, ви повинні платити вищі комісії. Це призводить до підвищення комісії в години пік.

Синхронізація Mempool і блоковий простір

Мемпулам не потрібно зберігати відповідний список усіх транзакцій, які очікують на додавання до блоку. Однак вони повинні знати, які транзакції вже додано до блокчейну, щоб вони могли видалити їх зі свого mempool, якщо вони все ще там зберігаються. Коли майнер транслює новий блок на вузли, вони можуть перевірити цю інформацію та таким чином досягти синхронізації mempool. Це гарантує, що в мемпулах зберігаються лише невидобуті транзакції.

З іншого боку, простір блоку — це ємність, доступна для включення транзакцій у новий блок. Оскільки цей простір обмежений, майнери або валідатори віддають перевагу транзакціям із вищими комісіями за газ, тоді як решта надсилаються в мемпули в очікуванні підтвердження.

Розмір Mempool і виселення

Кожна транзакція, додана до мемпулу, є частиною даних розміром не більше кількох кілобайт (кб). Сума всіх байтів, що утворюють транзакції, є розміром mempool. Більший розмір mempool вказує на те, що є багато транзакцій, які очікують підтвердження. Це також може означати сплеск мережевого трафіку.

Таблиця розмірів Mempool. Джерело: Blockchain.com

Хоча мемпули не мають попередньо визначеного максимального розміру, вузли можуть установлювати обмеження розміру для своїх мемпулів. Зазвичай це значення становить 300 МБ для біткойнів. Коли mempool досягне цього порогу, вузли можуть застосувати мінімальну плату за транзакцію . Будь-які транзакції зі ставкою комісії, нижчою за цей ліміт, вилучаються з мемпулу. Таким чином, вузли можуть уникнути збою через перевантаження незавершених транзакцій.

Розуміння того, як розмір mempool впливає на комісію та час транзакції, є важливим, оскільки це дозволяє користувачам вибрати найкращий час для здійснення транзакції. Є кілька веб-сайтів, які відстежують глобальний розмір mempool у мережі Bitcoin, наприклад mempool.space і BitcoinTicker.co.

Mempool у мережах Bitcoin та Ethereum

Тепер давайте подивимося, як функціонують мемпули в Bitcoin та Ethereum, двох найбільших блокчейнах у світі.

Біткойн-мемпул

Усі дійсні транзакції, надіслані через мережу Bitcoin, не додаються до блокчейну миттєво. Вони повинні чекати в мемпулі Bitcoin.

Спочатку комісія за транзакції в біткойнах вимірювалася кількістю сатоші за байт транзакції. Однак це змінилося після оновлення SegWit. Тепер транзакції в mempool Bitcoin вимірюються у вагових одиницях. Це оновлення представило так звану функцію SegWit.

У результаті оновлення блоки біткойн тепер можуть обслуговувати до чотирьох разів більше транзакцій.

Ethereum mempool

Як і біткойн, блокчейн Ethereum спочатку використовував mempool Ethereum як тимчасове сховище для транзакцій, які очікують на додавання до блоку майнерами. Однак після переходу Ethereum від механізму консенсусу proof-of-work до proof-of-stake мережа запровадила концепцію конструктора блоків.

Конструктори блоків — це спеціалізовані сторонні об’єкти, які компілюють транзакції для створення оптимізованого набору транзакцій, який може формувати блок. Вони роблять це шляхом зміни порядку або включення певних транзакцій у пакет із пулу пам’яті транзакцій. Згодом вони пропонують пакети пропонентам/валідаторам для включення в блок за плату.

Вартість блоку залежить від транзакцій, які він містить. Таким чином, це стимулює конструкторів блоків створювати найприбутковіші блоки, оскільки вони, швидше за все, будуть пріоритетні та підтверджені швидше валідаторами. Отже, як і в інших блокчейнах, чим більше комісій ви сплачуєте за Ethereum, тим вищі шанси, що ваша транзакція буде підтверджена швидше.

Мемпули є ключовими для децентралізованих транзакцій

Mempool є життєво важливим компонентом транзакцій блокчейну. Він діє як форма «кімнати очікування», де непідтверджені транзакції очікують перевірки та, зрештою, включення до нового блоку. Розуміння механізмів mempool, таких як черги транзакцій, перевірка та визначення пріоритетів комісії, є важливим для користувачів криптовалюти.

Відмова від відповідальності:

  1. Цю статтю передруковано з [Beincrypto]. Усі авторські права належать оригінальному автору [Alex Lielacher]. Якщо є заперечення щодо цього передруку, будь ласка, зв’яжіться з командою Gate Learn, і вони негайно розглянуть це.
  2. Відмова від відповідальності: погляди та думки, висловлені в цій статті, належать виключно автору та не є жодною інвестиційною порадою.
  3. Переклади статті на інші мови виконує команда Gate Learn. Якщо не зазначено вище, копіювання, розповсюдження або плагіат перекладених статей заборонено.
今すぐ始める
登録して、
$100
のボーナスを獲得しよう!
アカウント作成