Replace-by-fee (RBF), пояснення
Що таке політика replace-by-fee (RBF)?
Політика replace-by-fee (RBF) у мережі Bitcoin дозволяє користувачам замінювати транзакції, що очікують підтвердження (непідтверджені), новими транзакціями з більшою комісією.
Політика RBF була запропонована в BIP 125 і представлена як функція протоколу Bitcoin у версії Bitcoin Core 0.12.0, випущеній у лютому 2016 року. Ця функція забезпечує гнучкість для користувачів, які бажають прискорити проведення своїх транзакцій або змінювати комісію у відповідь на обмеження мережі.
23 листопада 2023 року користувач Bitcoin здійснив транзакцію о 9:59 UTC, заплативши виключно високу комісію в розмірі 3,1 мільйона доларів за переведення 139,42 Bitcoin. Ця величезна комісія стала рекордною восьмою за величиною в історії Bitcoin. Щоб оцінити ситуацію, користувач переплатив у 119,980 разів більше, ніж типовий розмір комісії. Декілька чинників вплинули на цю подію:
Вибір високої комісії
Відправник міг цілеспрямовано вибрати високу вартість комісії, щоб отримати швидше підтвердження, або просто помилково неправильно оцінити величину комісії.
Політика RBF
Політика replace-by-fee дозволяє користувачам заміняти непідтверджену транзакцію новою з більшою комісією. Це означає, що відправник, можливо, віддав перевагу заміні початкової транзакції новою з ще вищою комісією для швидшого підтвердження.
Непоінформованість відправника
Існує ймовірність, що відправник не уважно стежив за станом мережі або не був повністю обізнаний про наслідки своїх дій. Вони, можливо, не очікували, що використання RBF призведе до значного збільшення вартості транзакції.
Які блокчейн-мережі підтримують RBF?
Можливості RBF стають корисними, коли користувачі Bitcoin хочуть прискорити підтвердження транзакції або змінити розмір комісій у відповідь на зміну стану мережі.
Replace-by-fee — це політика транзакцій, яка інтегрована в протокол мережі Bitcoin і підтримується Bitcoin Core, що є референсним виконанням протоколу. Як зазначалося, завдяки політиці RBF користувачі можуть замінювати непідтверджену транзакцію Bitcoin новою з вищою комісією.
Варто пам’ятати, що різні гаманці та сервіси всередині екосистеми Bitcoin можуть по-різному впроваджувати RBF. Наприклад, хоча RBF підтримується Bitcoin Core, не всі гаманці можуть реалізовувати або пропонувати цю функцію. Щоб упевнитися, що їх гаманець або сервіс сумісні з політикою replace-by-fee, користувачі повинні ознайомитися з відповідними характеристиками та правилами платформи.
Інші правила RBF включають: нова транзакція повинна зберігати вихідні дані як у попередній, а також мати вищий номер послідовності для кожного входу, щоб використовувати RBF. Крім того, політика RBF застосовується лише до транзакцій, які ще не були підтверджені; як тільки транзакцію підтверджено, її не можна скасувати. Однак, оскільки не всі вузли та майнери можуть підтримувати або визнавати RBF-транзакції, її ефективність залежить від умов мережі і готовності майнерів надавати перевагу транзакціям із вищими комісіями.
Додатково, специфічні гаманці, як-от Trezor, дозволяють користувачам “підвищувати комісію” для транзакцій, що очікують підтвердження. Крім того, користувачі Crypto.com можуть використовувати розширені налаштування транзакцій для надсилання Ether або інших токенів стандарту ERC-20, що дозволяє налаштовувати такі параметри, як значення nonce, вартість газу або ліміт газу. Ця функція, доступна у версії додатка 1.8.2 і вище, дає змогу досвідченим користувачам налаштовувати параметри транзакцій.
Користувачі можуть скористатися розширеними налаштуваннями через екран підтвердження надсилання, налаштувати значення, переглянути прогнозовану мережеву комісію й завершити транзакцію. Процес включає підтвердження налаштувань і авторизацію транзакції з використанням пароля та 2FA-коду, якщо активовано.
Як працює політика replace-by-fee?
Користувачі Bitcoin можуть прискорити підтвердження транзакції, створивши нову з більшою комісією, яка сигналізується унікальним “номером послідовності”. Її трансляція може бути пріоритизована майнерами, замінюючи початкову транзакцію.
Ефективність політики RBF залежить від стану мережі, правил майнерів і рівня підтримки залучених вузлів і гаманців. Ось детальний опис роботи RBF:
Першочергове підтвердження транзакції
Користувач ініціює транзакцію Bitcoin і обмінюється нею з мережею. Транзакція потрапляє в mempool і очікує включення в блок майнером.
Коригування комісії
Користувач може ініціювати нову транзакцію з вищою комісією, якщо хоче пришвидшити процес підтвердження або вважає, що початкова комісія занизька.
Позначка replace-by-fee
Нова транзакція включає унікальний номер послідовності, який сигналізує, що вона призначена замінити попередню транзакцію. Цей номер перевищує номер початкової транзакції.
У контексті Bitcoin поле nSequence, спочатку розроблене для “заміни на основі послідовності” або “блокування за часом”, виконує дві основні функції. По-перше, щоб транзакція була доступною для заміни за комісією, її замінність має бути зазначена під час початкової відправки. Це здійснюється через налаштування nSequence — компонента всередині кожної транзакції — на значення нижче 0xffffffe.
У шістнадцятковій системі 0xffffffe представляє 32-розрядне беззнакове число, у якому всі біти встановлені в 1, за винятком найменшого. У десятковій системі це значення відповідає числу 4294967294. По-друге, nSequence дозволяє відносний замок часу для входів транзакції, забезпечуючи можливість її оновлення після трансляції, що створює гнучкість для змін і полегшує RBF.
(Закінчення перекладу додається далі у відповіді через обмеження обсягу символів).