Як ефективно скасувати криптовалютну транзакцію?

18.04.2024
14 хв
17039
3
Як ефективно скасувати криптовалютну транзакцію? Головний колаж статті.

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

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

Чи можна скасувати криптовалютну транзакцію?

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

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

Також транзакція може «зависнути» в мережі з таких причин:

  • недостатня комісія для здійснення операції;
  • перевантажена мережа;
  • спроба використовувати нещодавно переведені цифрові активи;
  • технічні проблеми.

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

Що робити, щоб скасувати транзакцію в блокчейні?

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

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

Скасувати транзакцію можна такими способами:

  • скористатися вбудованими механізмами;
  • надіслати нову транзакцію з такими самими даними, але вказати більшу комісію, щоб «проштовхнути» операцію;
  • звернутися до адміністратора мережі (якщо приватний блокчейн) або фахівців.

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

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

Розглянемо, як скасовувати транзакції в різних ситуаціях.

Скасування транзакції в MetaMask

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

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

Дані: MetaMask.

Існує також альтернативний спосіб скасування непідтвердженої операції — для цього потрібно відправити «порожню» транзакцію на свою адресу. Цей процес набагато складніший.

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

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

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

Скасування транзакції в мережі біткоїна

Щоб почати процес скасування транзакції в мережі біткоїна, насамперед потрібно перевірити статус операції. Це можна зробити в оглядачі блоків на кшталт Blockchain.com, ввівши в рядок пошуку ідентифікатор транзакції (TxID).

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

Користувач може вибрати відповідну для себе стратегію:

  • протокол Replace-By-Fee (RBF) — передбачає можливість заміни початкової транзакції новою шляхом підвищення розміру комісії за переказ. Однак не всі гаманці підтримують RBF, тому для початку варто перевірити параметри;
  • Double Spend — у цьому випадку є шанс скасувати транзакцію, спробувавши перевести на свою адресу аналогічну кількість BTC. У найкращому разі майнери візьмуть в обробку останню транзакцію. Але варто пам’ятати, що більшість нод і криптогаманців мають вбудований захист від подібних операцій.

Скасування транзакції в Ethereum

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

Також можна перезаписати транзакцію, використовуючи nonce. У цьому випадку користувач ініціює нову операцію на свою адресу, поставивши номер ідентифікатора попередньої транзакції.

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

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

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

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

Висновки

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

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

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

Найчастіші запитання

Для скасування завислої транзакції в Ethereum є кілька способів. Найдоступніші варіанти — підвищити комісію або ж перезаписати операцію за допомогою nonce.
Поки транзакція не була підтверджена і включена в блок, її можна анулювати. Як правило, розробники створюють вбудовану функцію скасування.
Транзакція в статусі Pending означає, що ініційована операція перебуває в очікуванні підтвердження.
Для скасування транзакції команда Trust Wallet радить скористатися варіантом анулювання операції через nonce.

Як вам стаття?

3
0

статті на цю ж тему

Що таке паралелізація і як вона...
avatar Ilya Surgan
25.04.2024
Що таке аппчейни і як вони...
avatar Ilya Surgan
17.04.2024
Кросчейн-мости: як працюють і які...
avatar Vlad Shevchenko
16.04.2024