Как работают криптотранзакции: от нажатия кнопки до подтверждения
Вы нажимаете «Отправить» в кошельке, и через несколько минут получатель имеет средства. Снаружи всё просто. Но под капотом происходит сложный процесс с участием криптографии, пиринговых сетей и экономических стимулов — и всё это без единого координирующего центра.
Давайте проследим транзакцию от момента её создания до момента окончательной записи.
Шаг 1: Создание транзакции
Когда вы отправляете криптовалюту, ваш кошелёк формирует цифровое сообщение. В Bitcoin оно выглядит примерно так:
FROM: Ваш адрес (1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa)
TO: Адрес получателя (3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5)
AMOUNT: 0.05 BTC
FEE: 0.00012 BTC
Это структура данных, а не текстовое сообщение. Она включает:
- Вход(ы): Ссылки на предыдущие транзакции, доказывающие, что у вас есть средства
- Выход(ы): Адрес(а) назначения и суммы
- Комиссия: Разница между входами и выходами — оплата майнеру/валидатору
В Ethereum транзакции выглядят иначе из-за модели аккаунтов:
FROM: 0xВашАдрес
TO: 0xАдресПолучателяИлиКонтракта
VALUE: 0.5 ETH
GAS LIMIT: 21,000
GAS PRICE: 15 gwei
DATA: (пусто для простых переводов или данные вызова контракта)
NONCE: 42 (последовательный счётчик вашего аккаунта)
UTXO и модель аккаунтов
Bitcoin использует модель UTXO (Unspent Transaction Output — неизрасходованный выход транзакции). Представьте это как наличные: у вас есть конкретные купюры (UTXO), которые вы тратите. Если у вас есть «купюра в 10 BTC» и вы хотите отправить 3 BTC, транзакция использует всю купюру в 10 BTC и создаёт два выхода — 3 BTC получателю и 7 BTC обратно вам как сдачу.
Ethereum использует модель аккаунтов — больше похоже на банковский счёт с балансом. Вы просто вычитаете из своего баланса и добавляете к балансу получателя.
| Свойство | UTXO (Bitcoin) | Аккаунт (Ethereum) |
|---|---|---|
| Конфиденциальность | Лучше (новый адрес для каждой транзакции) | Хуже (один адрес, полная история) |
| Параллельная обработка | Легче (независимые UTXO) | Сложнее (последовательные nonce) |
| Смарт-контракты | Ограниченные | Полная поддержка |
| Ментальная модель | Как наличные купюры | Как банковский счёт |
Шаг 2: Подписание
Перед трансляцией транзакция должна быть подписана вашим приватным ключом. Это криптографическое доказательство того, что вы авторизовали перевод.
Вот как цифровые подписи работают на высоком уровне:
- Ваш кошелёк берёт данные транзакции и ваш приватный ключ
- Математический алгоритм (ECDSA для Bitcoin, также ECDSA или EdDSA для других сетей) создаёт подпись
- Эту подпись может проверить любой, используя ваш публичный ключ
- Но никто не может воссоздать подпись без вашего приватного ключа
Подпись доказывает три вещи:
- Аутентификацию: Вы (владелец ключа) авторизовали эту транзакцию
- Целостность: Данные транзакции не были изменены после подписания
- Неотрекаемость: Вы не можете отрицать, что подписали её
Знаете ли вы? Ваш приватный ключ никогда не покидает кошелёк при подписании. Кошелёк выполняет вычисление локально. Именно поэтому аппаратные кошельки безопасны — они подписывают транзакции на выделенном чипе и выдают только подпись, никогда не раскрывая ключ.
Шаг 3: Трансляция
Подписанная транзакция рассылается по пиринговой сети. Ваш кошелёк подключается к одной или нескольким нодам и отправляет транзакцию. Эти ноды проверяют её и пересылают своим соседям, те — своим, и так далее. За секунды ваша транзакция достигает большей части сети.
Проверки при валидации
Каждая нода, получающая вашу транзакцию, выполняет базовые проверки перед пересылкой:
- Валидна ли подпись?
- Достаточно ли у отправителя баланса/UTXO?
- Адекватна ли комиссия? (Ниже минимального порога большинство нод отбросят транзакцию)
- Верен ли формат?
- Верен ли nonce? (Ethereum — предотвращает повторные атаки)
- Не конфликтует ли она с другой транзакцией, уже находящейся в мемпуле?
Если любая проверка не пройдена, нода отклоняет транзакцию. Она не пересылается. Ваш кошелёк обычно покажет ошибку.
Шаг 4: Мемпул
После прохождения валидации ваша транзакция попадает в мемпул (memory pool, пул памяти) — зал ожидания для неподтверждённых транзакций. Каждая нода поддерживает собственный мемпул, и они примерно синхронизированы, но не идентичны.
Представьте мемпул как терминал аэропорта:
- Транзакции — это пассажиры, ожидающие своего рейса (блока)
- Транзакции с более высокой комиссией получают приоритетную посадку — их берут первыми
- Во время перегрузки транзакции с низкими комиссиями могут ждать часами или днями
- Если транзакция ждёт слишком долго, она удаляется из мемпула (обычно через 14 дней в Bitcoin)
Динамика рынка комиссий
Майнеры и валидаторы экономически мотивированы включать транзакции с наибольшей оплатой. В загруженные периоды:
| Состояние сети | Комиссия Bitcoin | Газ Ethereum | Время ожидания |
|---|---|---|---|
| Низкая загрузка | $0,10–$1 | 5–10 gwei | Следующий блок |
| Нормальная | $1–$5 | 15–30 gwei | 1–3 блока |
| Высокая загрузка | $10–$50+ | 100–500+ gwei | 30+ минут |
| Экстремальная (NFT-минты и т.д.) | $50–$200 | 1000+ gwei | Часы |
Вы можете отслеживать загрузку мемпула в реальном времени:
- Bitcoin: mempool.space
- Ethereum: etherscan.io/gastracker
Replace-by-Fee (RBF)
Если ваша транзакция Bitcoin застряла из-за слишком низкой комиссии, вы можете использовать RBF — повторно отправить ту же транзакцию с более высокой комиссией. Новая версия заменяет старую. Большинство современных кошельков это поддерживают.
В Ethereum вы можете сделать то же самое, отправив новую транзакцию с тем же nonce, но более высокой ценой газа.
Шаг 5: Включение в блок
Майнер (PoW) или валидатор (PoS) отбирает транзакции из мемпула, формирует их в блок и предлагает его сети.
В Bitcoin (Proof of Work):
- Майнер собирает транзакции с высокими комиссиями (до лимита ~4 МБ веса блока)
- Формирует блок-кандидат с заголовком, содержащим хеш предыдущего блока
- Многократно хеширует заголовок блока с разными значениями nonce
- Находит хеш ниже целевой сложности
- Рассылает выигравший блок по сети
Это происходит примерно каждые 10 минут. Каждый блок содержит ~2 000–3 000 транзакций.
В Ethereum (Proof of Stake):
- Протокол выбирает валидатора для предложения следующего блока
- Валидатор отбирает транзакции из мемпула (до лимита 30 млн газа)
- Предлагает блок сети
- Другие валидаторы подтверждают (голосуют) за валидность блока
- После достаточного числа подтверждений блок добавляется в цепочку
Это происходит каждые 12 секунд. Каждый блок содержит ~150–200 транзакций.
MEV: скрытая экономика транзакций
Maximal Extractable Value (MEV) — максимально извлекаемая стоимость — это прибыль, которую валидаторы могут получить путём переупорядочивания, вставки или цензурирования транзакций внутри блока. Примеры:
- Арбитраж: Валидатор видит крупную сделку, которая сдвинет цену на DEX, и размещает свои сделки до и после неё (сэндвич-атака)
- Ликвидации: Гонка за ликвидацию недостаточно обеспеченных DeFi-позиций ради вознаграждений
- Бэкраннинг: Размещение транзакции сразу после крупной сделки для извлечения арбитража
MEV — сложная тема с положительными (эффективность рынка) и отрицательными (издержки для обычных пользователей) последствиями. Инструменты вроде Flashbots стараются сделать извлечение MEV более справедливым и прозрачным.
Шаг 6: Подтверждение
Как только ваша транзакция включена в блок, она имеет 1 подтверждение. Каждый последующий блок, добавленный к цепочке, даёт ей дополнительное подтверждение.
Почему важны множественные подтверждения
Одно подтверждение означает, что поверх вашего блока построен ещё один. Но что, если два майнера найдут блоки одновременно? Это создаёт временный форк. Сеть следует за самой длинной цепочкой, а более короткая ветвь (и её транзакции) отбрасывается.
С каждым дополнительным подтверждением вероятность отмены экспоненциально снижается:
| Подтверждения | Bitcoin | Ethereum | Практическое значение |
|---|---|---|---|
| 0 | Не подтверждено | Не подтверждено | Транзакция может не пройти |
| 1 | ~10 мин | ~12 сек | Для небольших сумм допустимо |
| 3 | ~30 мин | ~36 сек | Большинство сервисов принимают |
| 6 | ~60 мин | ~72 сек | Отраслевой стандарт для Bitcoin |
| 12 | ~120 мин | ~2,4 мин | Очень высокая безопасность |
| 30+ | ~5 часов | ~6 мин | Биржи для крупных депозитов |
После 6 подтверждений Bitcoin вероятность отмены составляет менее 0,0002%. На практике это необратимо.
Ethereum с PoS обеспечивает финальность — после 2 эпох (~12,8 минут) транзакции математически финализированы и не могут быть отменены без уничтожения как минимум 1/3 всего застейканного ETH.
Сравнение скорости транзакций
| Блокчейн | Время блока | Типичное подтверждение | Финальность |
|---|---|---|---|
| Bitcoin | ~10 мин | 60 мин (6 блоков) | Вероятностная |
| Ethereum | 12 сек | 12,8 мин (2 эпохи) | Экономическая финальность |
| Solana | ~400 мс | ~5 сек | ~13 сек |
| Polygon | ~2 сек | ~5 мин | Через Ethereum |
| Bitcoin Lightning | Мгновенно | Мгновенно | На уровне канала |
| Arbitrum | ~250 мс | ~1 мин | Через Ethereum (7 дней для fraud proof) |
Комиссии за транзакции: подробнее
Комиссии Bitcoin
Комиссии Bitcoin основаны на размере транзакции в байтах, а не на отправляемой сумме. Отправка 0,001 BTC стоит столько же, сколько отправка 1 000 BTC, если размер транзакции одинаков.
Что влияет на размер транзакции:
- Количество входов (используемых UTXO)
- Количество выходов (адресов назначения)
- Тип подписи (SegWit-транзакции меньше по размеру)
Типичная транзакция с 1 входом и 2 выходами в формате SegWit составляет около 140 vbytes.
Комиссии Ethereum
Комиссии Ethereum основаны на вычислительной сложности. Простые переводы ETH стоят меньше, чем обмен токенов, который стоит меньше, чем сложные DeFi-операции.
Стоимость = Использованный газ x (Базовая комиссия + Приоритетные чаевые)
Если вы установите слишком низкий лимит газа, транзакция не пройдёт — и вы всё равно заплатите за газ, потреблённый до момента ошибки. Установите слишком высокий — неиспользованный газ будет возвращён.
Советы по минимизации комиссий
- Выбирайте время. Сети обычно дешевле всего в выходные и в непиковые часы (раннее утро UTC).
- Используйте L2. Arbitrum, Base и другие L2 предлагают комиссии в 10–100 раз ниже, чем Ethereum mainnet.
- Группируйте транзакции. Некоторые кошельки позволяют объединить несколько отправок в одну транзакцию.
- Используйте SegWit-адреса (Bitcoin). Они меньше и дешевле. Если ваш адрес начинается с bc1, вы уже используете SegWit.
- Устанавливайте адекватные комиссии. Не переплачивайте в спокойные периоды. Проверяйте mempool.space или etherscan.io/gastracker перед отправкой.
Что может пойти не так
Отправка на неверный адрес
Криптотранзакции необратимы. Если вы отправили на неверный адрес, средства потеряны, если получатель добровольно их не вернёт. Всегда перепроверяйте адреса. Многие кошельки поддерживают адресные книги и QR-коды для снижения ошибок.
Неверная сеть
Распространённая ошибка. Отправка ETH в сети Ethereum на адрес, ожидающий ETH в сети Arbitrum, может привести к потере средств. Отправка USDT как ERC-20-токена на TRC-20-адрес приведёт к потере средств. Всегда проверяйте сеть перед отправкой.
Зависшие транзакции
Если вы установили слишком низкую комиссию, транзакция может застрять в мемпуле. Решения:
- Bitcoin: Используйте RBF (Replace-by-Fee) для увеличения комиссии или ждите
- Ethereum: Отправьте новую транзакцию с тем же nonce и более высокой ценой газа
- Подождите: В более спокойные периоды сеть может обработать транзакции с низкой комиссией
Неудавшиеся транзакции (Ethereum)
В Ethereum транзакция может не пройти, если:
- Лимит газа слишком низкий (нехватка газа)
- Откат смарт-контракта (условие в контракте не выполнено)
- Слишком высокое проскальзывание при торговле на DEX
Неудавшиеся транзакции всё равно потребляют газ. Вы платите за вычисления, даже если ничего не произошло. Это неприятно, но необходимо для предотвращения спама.
Ключевые выводы
- Криптотранзакция — это подписанное сообщение, которое рассылается по пиринговой сети, проверяется нодами и включается в блок
- Мемпул — это зал ожидания, где транзакции конкурируют по размеру комиссий за включение в блок
- Множественные подтверждения обеспечивают экспоненциально возрастающую безопасность от отмены
- Комиссии основаны на размере данных (Bitcoin) или вычислительной сложности (Ethereum), а не на сумме перевода
- Транзакции необратимы — всегда проверяйте адрес и сеть перед отправкой
- Решения второго уровня и грамотное управление комиссиями могут значительно снизить расходы
FAQ
В: Можно ли отменить криптотранзакцию? О: Если она ещё в мемпуле (не подтверждена), вы можете попробовать заменить её транзакцией с более высокой комиссией на свой собственный адрес (фактически отменив её). После подтверждения в блоке она становится окончательной.
В: Почему моя транзакция так долго идёт? О: Скорее всего, комиссия слишком низкая для текущей загрузки сети. Проверьте состояние мемпула и рассмотрите использование RBF (Bitcoin) или замещающей транзакции (Ethereum) с более высокой комиссией.
В: Нужно ли быть онлайн, чтобы кошелёк получал криптовалюту? О: Нет. Транзакции записываются в блокчейн независимо от того, запущен ваш кошелёк или нет. Когда вы в следующий раз откроете кошелёк, он синхронизируется с блокчейном и покажет полученные средства.
В: Что такое хеш транзакции (TXID)? О: Уникальный идентификатор вашей транзакции — как номер для отслеживания. Вы можете найти его в блок-эксплорере (mempool.space, etherscan.io), чтобы увидеть статус, количество подтверждений, уплаченную комиссию и все детали.
В: Может ли кто-то увидеть, сколько криптовалюты у меня есть? О: Если они знают ваш адрес — да, транзакции блокчейна публичны. Поэтому пользователи, заботящиеся о конфиденциальности, генерируют новый адрес для каждой транзакции (Bitcoin поддерживает это нативно). Для более сильной приватности такие сети, как Monero, скрывают детали транзакций по умолчанию.