Подтвержденная транзакция означает то, что она включена в блок и, следовательно, – в цепочку блоков. Она проверена и зарегистрирована, платеж обработан, его нельзя изменить или отменить. Чтобы стать законной, операция должна получить определенное количество подтверждений. Каждое новое подтверждение в геометрической прогрессии снижает риск отмены самой транзакции.
Содержание
Посмотрим, как происходит транзакционный перевод биткоина.
- При совершении переводов или платежей вся информация записывается в блоки, которые соединяются в неразрывную цепочку – блокчейн.
- Каждый блок "весит" около 1 Мб и состоит из двух частей. В заголовке "зашит" хеш данного блока и того, который был перед ним, здесь же содержатся хеш-коды всех помещенных в блок сделок. Затем идет "тело" – перечень всех операций, в т.ч. размер награды за найденный блок.
- Чтобы была возможность проверить сделку, ее нужно правильно валидировать в блокчейн. Для этого она подтверждается майнерами.
Подтверждается транзакция (т.е. включается в blockchain) после того, как майнерами будет вычислено 6 блоков, которые докажут ее валидность. Лишь после этого получатель средств сможет увидеть увеличение своего баланса. Если верификации нет, то сделка считается неподтвержденной, и деньги возвращаются отправителю.
Такая система придумана для того, чтобы избежать двойной траты одних и тех же криптомонет. Процесс происходит на стороне майнера, при этом используются серьезные вычислительные мощности. Количество подтверждений 6ыло утверждено после исследований, доказавших, что при таких условиях для подделки операции мошенникам потребуется сконцентрировать в своих руках не менее 10% от общей мощности сети, а это практически невозможно.
Что значит, что транзакция требует подтверждения
Всякий раз, когда пользователь инициирует биткойн-транзакцию, она криптографически подписывается и отправляется в сеть, ожидая, пока майнер проверит ее и добавит в блокчейн. Биткойн-подтверждения – это блоки, которые майнеры добавляют в цепочку.
Когда транзакция отправляется в сеть из кошелька, она не выполняется незамедлительно. Сначала она попадает в мемпул, где считается ожидающей. Майнеры входят в пул и выбирают транзакции для включения в следующий блок блокчейна. Каждый из них использует собственные критерии (обычно стремясь к максимальной прибыли). Транзакция, включенная в блок, удаляется из мемпула и считается подтвержденной.
Однако операция на данном этапе имеет только одно подтверждение. Лучше подождать, пока она получит от двух до шести, прежде чем ее можно будет считать необратимой. При одном подтверждении, есть шанс, пусть и небольшой, что блок, в который она включена, будет перезаписан и станет блоком-сиротой. В этом редком случае она возвращается в мемпул и снова находится в состоянии ожидания. Небезопасно принимать транзакцию с нулевым подтверждением в качестве оплаты, так как она может быть заменена другой, которая тратит тот же биткойн.
Как устроен процесс подтверждения транзакций в Bitcoin
Мемпул – механизм узла криптовалюты, своего рода виртуальный зал ожидания, в котором временно находятся пользовательские транзакции, пока они не будут обработаны майнерами и интегрированы в блокчейн. Динамичная промежуточная область обеспечивает упорядочивание, приоритизацию комиссий и общее построение блоков. В Биткойне функции мемпула регулируются BIP-35 (BIP – документ, который стандартизирует различные процедуры или функции).
Каждая биткойн-транзакция находится там до тех пор, пока не будет готова к подтверждению, но единого всеобъемлющего мемпула не существует. У каждого узла он свой. Это связано с тем, что не все они одновременно получают одни и те же транзакции. У всех узлов разная емкость хранения (по умолчанию мемпум обычно не превышает 300 МБ).
Как правило, транзакции плавно перемещаются по мере их проверки и добавления в блок, но иногда он может перегружаться. Эти периоды прослеживаются по большому объему операций или по резкому снижению торгового хэша, что относится к сложности майнинга.
Когда он перегружен, пользователи могут заплатить комиссию выше, чтобы вывести свои транзакции в начало очереди для быстрого подтверждения. С другой стороны, операции с низкой стоимостью остаются в мемпуле неподтвержденными до тех пор, пока не пройдет перегрузка. Точно так же комиссия ниже, когда транзакционный трафик в сети небольшой.
Кто непосредственно подтверждает транзакции
Каждую транзакцию подтверждают майнеры. Она вставляется в блок, который необходимо проверить перед добавлением в цепочку. Его добыча – это решение головоломки. Майнер должен найти число, называемое одноразовым номером («число, используемое один раз»). Оно обрабатывается с помощью хеш-функции вместе с другими данными, присутствующими в проверяемом блоке, должно возвращать хеш, который начинается с определённого количества нулей. Он называется «хеш заголовка блока». Требуемое количество нулей определяет степень сложности проверки блока.
Например, 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d –хеш для блока #429818. Этот блок содержит 2012 транзакций с участием чуть более 1000 биткойнов, а также заголовок предыдущего блока. Если пользователь изменит сумму одной транзакции на 0,0001 биткойна, полученный хеш станет неузнаваем, и сеть отклонит это как мошенничество.
Для нахождения допустимого одноразового номера не существует определенной техники. Единственный способ – многочисленные случайные попытки. По этой причине майнеры используют специальное оборудование, которое измеряет их мощность в «хешах в секунду» (H/s). Отсюда и концепция «конкуренции», поскольку вознаграждение за проделанную работу получает только тот, кто первым найдет действительный одноразовый номер.
Но перед тем, как получить вознаграждение, майнер сообщает решение другим узлам в сети. Они проводят проверку, чтобы подтвердить, что одноразовый номер действителен. Если он правильный, блок «присоединяется» к предыдущей цепочке. Первый, кто находит правильное решение, получает вознаграждение в биткойнах («доказательство работы» или «PoW»). Если одноразовый номер недействителен, «соревнование» возобновляется, и все майнеры возвращаются к поиску.
Сколько нужно ждать, прежде чем операция пройдет
Время нахождения в мемпуле зависит от продолжительности добычи следующего блока и количества «ожидающих». Биткойн-майны блокируются примерно каждые 10 минут. Теоретически это означает, что транзакция получит первое подтверждение в течение 10 минут после отправки запроса. Как правило, если она находится в мемпуле более 48 часов, то удаляется, а средства возвращаются транзакционисту.
В целом на среднее время подтверждения влияют такие факторы как:
- общая сетевая активность;
- скорость хеширования;
- комиссия за транзакцию.
Если сеть Биткойн перегружена, то в мемпуле наблюдается отставание. Пользователям приходится платить высокую комиссию, чтобы транзакции проходили быстрее. Как, например, происходило в апреле 2021 года, когда средняя комиссия составляла $58.
Излишне говорить, что чем выше количество транзакций, тем больше времени требуется для обработки каждой из них. Это связано с тем, что количество майнеров ограничено и только определенное число операций может быть обработано в биткойн-блоке размером 1 Мб. На хешрейт также влияет рабочая среда, нестабильность сети и другие факторы.
Комиссия определяет, какая транзакция получит приоритет в блоке размером 1 Мб. Если мемпул заполнится, узлы устанавливают ее минимальный порог. Любые транзакции в мемпуле, которые ниже этого порога, удаляются. Пользователю придется повторно проводить операцию с более высокой комиссией.
Сколько подтверждений нужно (количество)
Количество подтверждений, необходимых для обработки криптотранзакции, зависит от биржи, а иногда и от суммы перевода. Некоторые системы обрабатывают ее после одного подтверждения, большинству требуется три, но может потребоваться и до шести.
- Платежи с 0 подтверждениями могут быть отменены.
- 1 подтверждения достаточно для платежей менее $ 1000.
- 3 подтверждения – для выплат $1,000 – $10,000. Большинство бирж требуют 3 подтверждения для депозита.
- 6 – для крупных платежей от $ 10 000 до $ 1 000 000. 6 потверждений – стандарт для большинства транзакций, которые считаются безопасными.
- 60 – для крупных платежей, превышающих $ 1 000 000.
Пользователь Биткойн не может отменить транзакцию после подтверждения.
Можно ли как-то ускорить процесс
Если транзакция застряла в мемпуле, можно инициировать действие редактирования существующей транзакции (RBF). Механизм RBF позволяет повторно отправить ее. Помимо увеличения комиссии можно совершать переводы в непиковые периоды. В обозревателе blockchain.com диаграмма размера мемпула показывает, когда количество неподтвержденных транзакций минимально.
- BTC Nitro помогает ускорить транзакции в биткойнах, сокращая время, необходимое для подтверждения. BTC Nitro ретранслирует ее через несколько биткойн-узлов по всему миру, повторно ставя в очередь и напоминая майнерам, что она готова к обработке.
- BitAccelerate — это бесплатный ускоритель, который позволяет быстрее получать подтверждения. Нужно ввести идентификатор биткойн-транзакции (TXID) и выбрать «Ускорить». Она будет передана через десять биткойн-узлов, использующих их сервис. Система сообщит, когда она подтверждена или потребуется повторная трансляция.
Пока «застрявшая» транзакция не подтверждена, ее можно повторно отправлять каждые шесть часов.
Отзывы и обсуждения