Транзакция Bitcoin — это передача цифровой ценности между участниками сети с помощью криптографически защищённого механизма. В отличие от банковской системы, в которой посредники фиксируют и подтверждают переводы, в блокчейне роль «реестра» исполняет распределённая база данных, доступная всем участникам. Каждая транзакция содержит данные о входах (inputs), выходах (outputs), размере комиссии и цифровых подписях, обеспечивающих безопасность.
Суть транзакции заключается в том, что владелец монет (точнее — UTXO, непотраченных выходов предыдущих транзакций) использует закрытый ключ, чтобы подписать передачу этих монет другому пользователю. Получатель в этом случае указывает адрес (публичный ключ в виде hash160), на который «падают» монеты.
Каждая транзакция Bitcoin представляет собой набор структурированных данных, оформленных в определённом формате. Основные компоненты включают:
Version — версия протокола.
Inputs — ссылки на предыдущие UTXO, которые тратятся.
Outputs — адреса и суммы, на которые переводятся средства.
Locktime — параметр, определяющий, с какого момента транзакция может быть включена в блок.
ScriptSig и ScriptPubKey — скрипты, подтверждающие право распоряжения средствами.
Особенность Bitcoin в том, что транзакция тратит полностью UTXO — «монету», оставшуюся после предыдущей операции. Если сумма больше, чем требуется, сдача возвращается обратно на адрес отправителя как новый UTXO.
Рассмотрим пример упрощённой транзакции:
Input: Тратится UTXO с адреса A, в размере 0.5 BTC.
Output 1: Перевод 0.3 BTC на адрес B.
Output 2 (сдача): 0.199 BTC возвращается на адрес A.
Комиссия: 0.001 BTC остаётся майнерам.
Эта транзакция попадает в сеть, подписанная приватным ключом отправителя.
Когда транзакция создаётся и подписывается, она отправляется в сеть и попадает в mempool (memory pool) — специальную «память» узлов, где хранятся транзакции, ожидающие подтверждения. Узлы проверяют её на корректность:
Подлинность цифровой подписи.
Доступность UTXO (не потрачен ли уже).
Правильность скриптов.
Размер комиссии.
Если транзакция проходит проверки, она остаётся в mempool BTC до тех пор, пока не будет включена майнером в блок.
Подтверждение (confirmation) — это включение транзакции в блок. Когда майнер находит новый блок и добавляет его к цепочке, он включает в него несколько транзакций из mempool, включая ту, о которой идёт речь. Эта транзакция получает одно подтверждение.
С каждым новым блоком поверх текущего подтверждение увеличивается. Для небольших сумм достаточно 1–3 подтверждений. Для крупных переводов или при операциях с биржами требуется 6 и более.
Чем выше комиссия — тем выше шанс, что майнер включит транзакцию в следующий блок.
Чтобы понять, как работает система в целом, рассмотрим детальный процесс прохождения транзакции:
Пользователь формирует транзакцию в своём кошельке, указывая адрес получателя, сумму и комиссию. Затем он подписывает её своим приватным ключом.
Транзакция рассылается по P2P-сети, попадая в mempool других узлов. Каждая нода проверяет её корректность и добавляет к своим необработанным транзакциям.
Узлы убеждаются, что входы действительны, UTXO не потрачены, подписи верны, и комиссия приемлемая.
Майнеры выбирают транзакции с наиболее высокими комиссиями и включают их в создаваемые блоки. Остальные продолжают «висеть» в mempool.
После нахождения блока транзакция получает 1 подтверждение. С каждым последующим блоком — ещё по одному.
Майнеры получают награду не только за нахождение блока (в виде вновь созданных BTC), но и за комиссии транзакций. Это создаёт стимул выбирать наиболее выгодные операции. Пользователь может задать комиссию вручную:
Низкая комиссия → долгое ожидание в mempool.
Высокая комиссия → быстрое включение в блок.
В периоды высокой загрузки сети размер комиссий может резко возрасти.
Этап | Описание | Время обработки |
---|---|---|
1. Создание | Подпись, сбор входов и выходов | Мгновенно |
2. Рассылка | Отправка в mempool других узлов | Несколько секунд |
3. Проверка | Проверка корректности, UTXO и комиссий | До 10 секунд |
4. Включение в блок | Добавление в новый блок | 10 минут в среднем |
5. Подтверждения | Рост количества подтверждений с каждым новым блоком | Каждые 10 минут |
Одна из целей подтверждений — предотвращение двойной траты. Злоумышленник может попытаться отправить те же монеты дважды (в разные транзакции). Но только одна из них будет включена в блок, а другая — отвергнута.
Если вы отправляете средства с низкой комиссией, вторая транзакция может попытаться «перекупить» первую. Это редкость, но риск существует до получения первого подтверждения.
Сетевой консенсус и правило «самой длинной цепи» позволяют выбрать только одну версию истории транзакций.
Транзакции в блокчейне необратимы, но при использовании функции Replace-by-Fee (RBF) можно повторно отправить ту же транзакцию с более высокой комиссией, если старая «застряла». Это позволяет «ускорить» подтверждение.
Если транзакция ещё не включена в блок, можно попытаться её отменить путём перезаписи — но это работает не во всех кошельках и требует опыта.
После первого подтверждения отменить операцию невозможно.
Проверить статус можно через публичные блок-эксплореры, например:
blockchain.com
blockstream.info
mempool.space
Нужно указать хеш транзакции (TXID), после чего откроется страница с её данными: входы, выходы, комиссия, количество подтверждений.
Обновления протокола, такие как SegWit и Taproot, меняют структуру транзакций:
SegWit выносит подписи из основной части, уменьшая размер и повышая пропускную способность.
Taproot позволяет создавать более гибкие скрипты, увеличивая конфиденциальность.
Эти улучшения влияют на эффективность подтверждения транзакций и снижают комиссии.
Понимание того, как работает транзакция Bitcoin, позволяет не только безопасно и эффективно использовать криптовалюту, но и минимизировать риски, связанные с комиссией, задержками или ошибками. Система Bitcoin строится на математической надёжности, децентрализации и прозрачности, а её транзакционный механизм — это основа, на которой держится вся сеть. От создания и подписи до подтверждения и хранения в блокчейне — каждая операция проходит проверенные этапы, формируя единое поле цифрового доверия.