Почему глубина равна безопасности
Блоки биткоина сцеплены: каждый ссылается на предыдущий. Переписать историю означает пересобрать все блоки начиная с нужного и обогнать при этом остальную сеть.
На глубине одного блока это дорого. На глубине шести это стоит больше, чем почти любая транзакция, и в этом весь смысл числа. Шестёрка не прописана в протоколе нигде: это порог риска, ставший обычаем, потому что он делает стоимость отката абсурдной.
Сколько времени это занимает
Блоки приходят в среднем раз в десять минут, поэтому шесть подтверждений занимают около часа.
Слово «в среднем» тут работает всерьёз. Интервалы между блоками распределены случайно, так что промежутки в две минуты и в сорок случаются регулярно. Мерчант, обещающий клиенту ровно час, будет ошибаться в обе стороны достаточно часто, чтобы это заметили, и честная формулировка это диапазон.
Какие пороги ставить
Компромисс здесь простой: больше подтверждений означает меньше риска и дольше ожидание на кассе.
Одно подтверждение
для обычных розничных сумм. Откат одного блока требует ресурсов, которые делают затею бессмысленной ради мелкого заказа.
Три
для средних операций, особенно если товар отгружается сразу.
Шесть
для крупных сумм, пополнений на биржах и всего, что после выдачи не отыграть назад.
Большинство шлюзов позволяет задавать порог по диапазонам суммы вместо одного значения на всё, и пользоваться стоит именно этим: заказу на двадцать долларов и заказу на двадцать тысяч нужна разная осторожность.
Если перевод висит без подтверждений
Причина почти всегда одна: приложенная комиссия оказалась ниже текущего спроса, и майнеры разбирают более выгодные транзакции первыми.
Перевод лежит в мемпуле, общем пуле разосланных транзакций, ожидающих включения в блок. У него есть хэш, он виден в любом обозревателе, и при этом он ещё не произошёл ни в каком значимом смысле.
Выходов два. Replace-by-fee позволяет отправителю разослать ту же транзакцию заново с повышенной комиссией, если исходная была помечена как заменяемая. Child-pays-for-parent позволяет получателю потратить входящий выход с высокой комиссией, и тогда майнерам выгодно подтвердить обе транзакции вместе.
Если не применить ни то, ни другое, перевод со временем выпадет из мемпула, а средства так и останутся в кошельке отправителя.
Как обстоит дело в других сетях
Числа подтверждений между цепочками не переносятся, и выглядят они по-разному, потому что различается время блока.
Litecoin выпускает блок каждые 2,5 минуты, поэтому сопоставимая глубина набирается вчетверо быстрее. TRON подтверждает за три до десяти секунд. Ethereum занимает от одной до трёх минут и дольше при нагрузке. Solana рассчитывается меньше чем за секунду.
Вопрос под всем этим один и тот же везде: во сколько обойдётся отменить эту операцию и больше ли это, чем сама сумма платежа.