Що таке Mempools і як вони працюють?

2023-07-27, 06:33

[TL; DR]

Основна функція mempool полягає в зберіганні транзакцій до їх підтвердження.

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

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

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

Вступ

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

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

Читайте також: Що таке дослідник блокчейну?

Що таке Mempool?

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

Іншими словами, мемпул - це простір, де очікують транзакції, перш ніж їх додадуть до блоку.

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

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

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

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

Пул пам’яті (Mempool) в вузлі- Babypips

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

Повні вузли в мережі Bitcoin мають Mempools - Babypips

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

Мережа вузлів Bitcoin - Babypips

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

Транзакція додається до файлу (блоку) - Babypips

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

Як працюють Mempools

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

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

Читайте також: Перетворення Ethereum та потенційні проблеми зі здоров’ям мережі

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

Читайте також: Що таке біткоїнова мережа Lightning?

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

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

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

На тому етапі декілька валідаторів схвалюють його, що дозволяє вашому другові отримати ETH.

Давайте узагальнимо динаміку пам’яті

Крок 1: Відправник вводить адресу призначення, погоджується з комісією за транзакцію мережі та натискає «НАДІСЛАТИ’’.

КРОК 2: Транзакція додається до найближчого мемпулу і стає в чергу.

КРОК 3: Дані mempool розсилаються до інших вузлів у мережі.

КРОК 4: Вузол схвалює транзакцію, і її статус змінюється з чергової на очікувану.

КРОК 5: Рудар вибирає невиконану транзакцію і додає її до блоку.

КРОК 6: Решта вузлів видаляють транзакцію зі своїх mempools.

КРОК 7: Транзакція завершена, і актив потрапляє в призначений гаманець.

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

Причини, чому транзакція застрягає в Mempool

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

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

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

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

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

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

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

Розмір та видалення Mempool: Кожна транзакція, яка має бути додана до блоку, є набором даних розміром, виміряним у кілобайтах. Тому великі пам’ятки можуть вміщувати багато транзакцій. Зазвичай вузли встановлюють розміри своїх пам’яток, які часто становлять 300 МБ для біткойна. Коли пам’ятка досягає порогу, вузол може встановити мінімальну комісію за транзакцію.

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

Чому транзакції застрягають у Mempool

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

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

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

Як вивести вашу транзакцію з Mempool

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

По-друге, ви можете вибрати прискорити транзакцію, підключивши свій Ledger до стороннього гаманця, такого як MetaMask або Electrum. Тим не менш, вам доведеться заплатити більше за це.

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

Mempool в Bitcoin

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

Однак ситуація змінилася після оновлення SegWit, яке дозволяє вимірювати транзакції у вагових одиницях. Хороша новина полягає в тому, що функції segwit дозволяють додавати в блок більше даних, ніж раніше. Зокрема, на блок припадає 2 МБ даних, хоча він може збільшитися до 4 МБ.

Мемпул Ethereum

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

Основні будівельники блоків - це сторонні учасники, які компілюють транзакції в оптимізований пакет транзакцій, який формує блок. У цьому випадку сторонні суб’єкти компілюють або переставляють певні транзакції з мемпула в пакети. Звідси вони пропонують пакети транзакцій для перевірки на включення в блоки. Сторонні суб’єкти отримують нагороду за виконання цих завдань.

Висновок

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

Часті питання про Mempools

Що таке мемпул?

Mempool - це простір, де очікуючі транзакції чекають, поки їх додають до блоку. Коли транзакція перевірена, вона додається до блоку, який існує у блокчейні.

Що відбувається в пам’ятці?

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

Що таке BTC Mempool?

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

Що таке Mempool в Ethereum?

Mempool в Ethereum - це простір для зберігання транзакцій на вузлах Ethereum перед їх підтвердженням. Час, який пройде до підтвердження цих транзакцій, залежить від навантаження мережі Ethereum протягом певного періоду.


Автор: Машелл С., дослідник Gate.io
Ця стаття відображає лише погляди дослідника і не є жодними рекомендаціями щодо інвестицій.
Gate.io залишає за собою всі права на цю статтю. Дозволяється розміщення статті за умови посилання на Gate.io. У всіх випадках буде вжита правова дія через порушення авторських прав.


Поділіться
Konten
gate logo
Gate
Торгуйте зараз
Приєднуйтесь до Gate, щоб виграти нагороди