Сколько подтверждений в блокчейне требуется криптовалютной транзакции?
Если спросить три разных кошелька, сколько подтверждений нужно для перевода, можно получить три разных ответа. Это не значит, что кто-то из них ошибается. Количество подтверждений имеет разный смысл в разных сетях, а получающая сторона часто устанавливает собственные требования.
Разберёмся, как всё устроено в самых популярных сетях и кто в итоге определяет нужное число.
Единого числа нет
Подтверждение — это просто блок, добавленный после блока, в который включена ваша транзакция. Чем больше блоков появится после него, тем меньше вероятность отката. Необходимое количество зависит от того, как сеть достигает консенсуса. Некоторые сети, например Биткоин, полагаются на вероятность: риск снижается по мере добавления блоков. В других сетях есть финализация — момент, после которого блок на практике уже нельзя откатить.
Поэтому на практике обычно важно не «сколько блоков?», а «достигла ли транзакция уровня уверенности, которого ожидает получающая сторона?». Ответ зависит от сети.
Биткоин: шесть подтверждений — привычное правило, а не обязательное требование
В Биткоине нет встроенной финализации, поэтому пользователи ориентируются на количество подтверждений. Часто принято ждать около 6 подтверждений. Поскольку целевой интервал между блоками составляет примерно 10 минут, ожидание занимает около часа. Это не правило протокола: иногда небольшие платежи принимают и с меньшим числом подтверждений.
Логика в том, что каждый новый блок затрудняет замену цепочки, содержащей вашу транзакцию, конкурирующей версией. Транзакция с нулём подтверждений ещё не включена в блок, поэтому её не следует считать окончательной.
Эфириум, BNB Smart Chain и TRON: ожидание финализации
Эфириум создаёт блок каждые 12 секунд, поэтому первое подтверждение обычно появляется быстро. После перехода на Proof-of-Stake в сети также появилась финализация: валидаторы голосуют за контрольные точки один раз за эпоху, а блок финализируется примерно после двух эпох — около 13 минут. Многие приложения по-прежнему ждут заданное количество подтверждений, а не полной финализации.
В BNB Smart Chain используется механизм голосования с быстрой финализацией (BEP-126), и BNB Chain сообщала, что теперь финализация обычно наступает за секунды. Прежняя привычка ждать около 15 подтверждений появилась до внедрения этого механизма. TRON создаёт блок примерно каждые 3 секунды. Согласно документации для разработчиков, блок считается закреплённым, когда на него опираются не менее 19 из 27 суперпредставителей; обычно на это уходит около минуты. До этого момента транзакция теоретически может быть удалена в результате реорганизации цепочки.
Solana: три статуса вместо подсчёта
В Solana подтверждения не считают. Статус транзакции отображается как «обработана», «подтверждена» или «финализирована». «Обработана» означает, что узел обработал транзакцию; «подтверждена» — что супермногие валидаторов проголосовали за её блок; «финализирована» — что блок также находится достаточно глубоко в цепочке и считается необратимым. Каждый этап обычно занимает секунды, а финализация длится дольше всего.
В обозревателе, например Solscan, эти статусы заменяют числа подтверждений, которые отображаются в других сетях.
Кто определяет, сколько подтверждений нужно?
На практике необходимое количество устанавливает получающий кошелёк, платформа или продавец. Более высокий порог означает, что ради безопасности приходится ждать дольше, поэтому он часто растёт вместе с суммой перевода. Таким образом, перевод может быть действительным в блокчейне, но всё ещё отображаться как ожидающий на стороне получателя, пока не будет достигнут нужный порог.
Чтобы узнать статус перевода, вставьте его хеш транзакции в обозреватель сети, которой вы пользовались. Указанное там число подтверждений или статус — это те же данные, которые проверяет получающая сторона.
Напоминание от WEEX: сначала проверьте требования
WEEX напоминает пользователям: перед отправкой проверьте, сколько подтверждений ожидает получающий кошелёк или платформа, и заранее учтите время ожидания, вместо того чтобы отправлять средства повторно. Найдите хеш в соответствующем обозревателе, чтобы проверить ход обработки, и считайте транзакцию с нулём подтверждений незавершённой, прежде чем передавать товары или средства. Остерегайтесь тех, кто просит принять платёж до его подтверждения, и никогда не сообщайте фразу для восстановления или приватный ключ.
Заключение
Универсального числа подтверждений не существует. Пользователи Биткоина обычно ждут около 6 подтверждений, у Эфириума, BNB Smart Chain и TRON есть собственные способы финализации, а Solana использует статусы вместо подсчёта. Важно то, в какой момент получающая сторона считает перевод завершённым, а обозреватель показывает, насколько близок этот момент.
Часто задаваемые вопросы
1. Сколько подтверждений нужно для транзакции в Биткоине?
Часто принято ждать около 6 подтверждений. При целевом интервале между блоками в 10 минут это занимает примерно час. Это привычная практика, а не правило протокола; получающая сторона может требовать больше или меньше подтверждений.
2. Сколько подтверждений нужно для транзакции в Эфириуме?
Фиксированного числа нет. Первое подтверждение обычно появляется через несколько секунд, а блок финализируется примерно после двух эпох — около 13 минут. Вместо этого многие приложения ждут заданное количество подтверждений.
3. Нужно ли BNB Smart Chain и TRON одинаковое число подтверждений?
Нет. В BNB Smart Chain используется механизм голосования с быстрой финализацией, а в TRON блок закрепляется, когда на него опираются не менее 19 из 27 суперпредставителей; обычно это занимает около минуты.
4. Использует ли Solana подтверждения?
Не в виде числа. Solana присваивает транзакции статус «обработана», «подтверждена» или «финализирована»; последний означает наивысший уровень уверенности.
5. Может ли платформа требовать больше подтверждений, чем сама сеть?
Да. Каждый кошелёк или платформа самостоятельно определяет, сколько подтверждений нужно, прежде чем средства станут доступными. Поэтому транзакция может быть действительной в блокчейне, но всё ещё ожидать обработки на стороне получателя.