Що таке підтвердження транзакції в блокчейні

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

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

Для Bitcoin блок з’являється в середньому раз на 10 хвилин, а давня практика — вважати транзакцію надійною після 6 підтверджень, хоча для невеликих сум часто достатньо менше. В Ethereum після переходу на Proof of Stake є поняття фіналізації: блок стає незворотним приблизно через дві епохи — це порядку 13 хвилин. У Solana є рівні processed, confirmed і finalized, а TON досягає фінальності за секунди.

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

Ще одна пастка — довіра одному вузлу. Якщо ваш RPC-провайдер повертає хибні дані чи відстає, система може зарахувати транзакцію, якої немає в основному ланцюгу. Надійні платіжні системи перевіряють платіж через кілька незалежних джерел. Корисно також окремо обробляти випадок, коли транзакція зникла з ланцюга після реорганізації: статус платежу має повернутися в очікування, а не лишитися «оплачено».

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

Як працювати з підтвердженнями

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

Часті запитання

Чому мій платіж видно в експлорері, але він не зарахований?

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

Скільки підтверджень потрібно для Bitcoin?

Поширена конвенція — 6 підтверджень для великих сум. Для невеликих платежів сервіси часто приймають менше, оцінюючи ризик.

Чи можна прискорити підтвердження?

Відправник може підвищити комісію (у Bitcoin — через RBF чи CPFP, в Ethereum — замінивши транзакцію). Отримувач на швидкість мережі не впливає.

Де це знадобиться

Пов’язані терміни

Почніть приймати оплату вже сьогодні

Обліковий запис і перший проєкт за хвилину, без абонентської плати.

Створити обліковий запис