2 Травня, 2024

Як прискорити транзакцію біткоїну. Функція Replace-By-Fee

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

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

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

 

Фактори, які впливають на швидкість біткоїн-транзакції

  1. “Вага” транзакції

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

Якщо коротко, то кожна запланована транзакція має певну “вагу” в байтах, що безпосередньо впливає на вартість і швидкість її проведення. До ваги транзакції входить (навпроти  вказуємо приблизну кількість байтів у цифрах):

  1. Кількість входів (адрес, з яких прийшли криптоактиви) – ~148 байт
  2. Кількість виходів (адрес, на які перераховуються криптоактиви) – ~34 байти
  3. Сама транзакція – ~10 байт

Тобто якщо 1 BTC вам прийшов із десяти адрес, то кількість входів визначається так: Input (у байтах) = 148*10 = 1480 байт.

Кількість виходів (output) рахується аналогічно, також треба пам’ятати про “решту”. Отже, якщо ви відправляєте частину монети на 1 адресу, то вам обов’язково має повернутися рештана вашу адресу. Таким чином, кількість виходів дорівнюватиме двом — один для відправки плюс один для решти. Склавши всі параметри, користувач може визначити кількість байтів, тобто вагу транзакції.

2. Mempool та швидкість транзакції

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

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

 

Як визначити оптимальний розмір комісії

Актуальну ціну за байт завжди можна подивитися в оглядачі блоків, наприклад за цим посиланням: https://blockchair.com/ru/bitcoin. Варто також зазначити, що комісія в мережі Біткоїн не залежить від суми, тобто з однаковою комісією можна відправити як 0.001 BTC, так і 10 BTC.

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

Ми в Trustee Wallet пропонуємо користувачеві три типи комісії, а також можливість встановити комісію мережі вручну.

При відправці користувач може обрати будь-яку серед запропонованих комісій, що, звісно, безпосередньо впливатиме на швидкість транзакції: Повільно, Середньо, Швидко. У варіантах зазначена ціна за байт, вартість комісії в Біткоїні та фіаті ($).

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

У Trustee все дуже просто, чітко і зрозуміло!

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

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

 

Варіанти подій під час зависання транзакції. Функція Replace-By-Fee

Існують такі варіанти дій із непідтвердженою транзакцією:

  • чекати на підтвердження (це може зайняти дні, тиждень або навіть вічність);
  • чекати на «скасування» транзакції. Це відбувається, коли більшість нод вирішують “викинути” транзакцію з мемпулу. Після цього Біткоїни стають вільними і ними знову можна користуватися (точного часу, коли це станеться немає, але згідно зі статистикою цей термін займає близько 3 діб);
  • збільшити комісію у вже створеній транзакції, поки вона знаходиться в мемпулі (функція Replace-By-Fee).

Replace-By-Fee (RBF) – це редагування транзакції, що вже існує та яка знаходиться у мемпулі. Це означає, що у новій транзакції будуть використані ті самі входи та виходи, що й у старій, але при цьому буде змінено комісію. Ноди мережі Bitcoin сприймають відредаговану транзакцію як стару і вона переноситься у черзі мемпулу на більш привабливі для майнерів позиції.

Якщо транзакція “зависла” через низьку мережеву комісію, то оптимальним способом прискорення транзакції буде використання функції RBF. Зверніть увагу, що ця функція доступна в обмеженій кількості криптогаманців. У Trustee Wallet вона є та працює дуже успішно.

 

Як використовувати Replace-By-Fee у Trustee

Наразі  усі вихідні транзакції Біткоїна в Trustee можуть бути прискорені. Однак перед відправкою Біткоїна краще перевірити цю надбудову. Для цього перейдіть у Налаштування у вкладці Bitcoin (4 крапки в правому верхньому куті) і перевірте, чи “Редагування непідтверджених транзакцій” активне, тобто увімкнено відповідний “повзунок”. Також рекомендуємо активувати “Використання непідтверджених транзакцій” – це дозволить використовувати вхідні Біткоїни, які ще не підтверджені мережею, а також відправляти чергу вихідних біткоїн-транзакцій одну за одною.

 

Як змінити комісію мережі для біткоін-транзакції

  1. Поверніться до історії транзакцій (вкладка Bitcoin);
  2. Оберіть транзакцію зі статусом «Обробляється» та натисніть кнопку “Прискорити”
  3. У вкладці, що відкрилась, у кнопці Шестірня ви можете встановити актуальну ціну за байт вручну, або вибрати із запропонованих варіантів (раніше ми вже згадували, що актуальну ціну можна перевірити на сайті blockchair).
  4. Натисніть “Відправити”. Буде створено нову транзакцію, яка замінить у мемпулі попередню.
  5. Тепер у деталях нової транзакції буде два хеші, один старий — неактивний, а інший актуальний — зі збільшеною комісією. Це ще раз підтверджує факт надійності протоколу Біткоїну та відсутність “подвійних витрат” зі збільшенням комісії.

Зверніть увагу, що блокчейн – це ланцюжок даних і кожна транзакція посилається на попередню, тому якщо у вас є кілька “біткоін-транзакцій, що зависли”, то прискорювати потрібно останню відправлену. При цьому комісію потрібно встановити з урахуванням прискорення всіх транзакцій, що зависли, тобто актуальну ціну за байт помножити на кількість транзакцій.

Також ми рекомендуємо використовувати Segwit адреси для отримання та відправлення Біткоїна, тому що вони легші та вийдуть дешевше, ніж транзакції з Legacy адрес. Детально різницю між цими типами адрес ми описували у статті “Від Legacy до Segwit”.

Share

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *