Транзакция — подписанное сообщение, которое изменяет состояние блокчейна: переводит ценность, вызывает функцию смарт-контракта или иным образом модифицирует учёт. Транзакции формируются в кошельке, подписываются приватным ключом и рассылаются узлам сети; после включения в блок становятся частью неизменяемой истории (блокчейн).
Базовые моменты
- Подпись и авторство. Право инициировать перевод доказывается цифровой подписью владельца приватного ключа (см. также публичный ключ).
- Комиссия. Отправитель платит сеть за обработку (приоритет включения зависит от цены и условий комиссии, см. комиссии).
- Необратимость. После подтверждения откат транзакции невозможен без реорганизации цепи; сервисы учитывают риск двойной траты до наступления финальности.
Структура (обобщённо)
| Поле | Что означает | Где встречается |
|---|---|---|
| Входы (inputs) | Ссылки на тратимые UTXO + подписи/скрипты. | UTXO-сети (напр., Bitcoin). |
| Выходы (outputs) | Новые «монеты» с суммой и условием траты (адрес). | UTXO-сети. |
| from / to | Отправитель/получатель, иногда несколько адресов. | Аккаунт-модель. |
| amount / value | Сумма перевода. | Везде. |
| fee / gas | Цена работы сети; в EVM — gasLimit × gasPrice/maxFee. | Везде. |
| nonce | Порядковый номер транзакции адреса. | Аккаунт-модель. |
| data/call | Поле для вызова контракта/передачи данных. | Смарт-контракты. |
| подписи | Доказательство владения ключом. | Везде. |
Жизненный цикл транзакции
- Формирование и подпись. Кошелёк собирает поля транзакции и подписывает их приватным ключом (локально; ключ не покидает устройство).
- Рассылка (broadcast). Подписанный объект попадает в мемпул узлов и распространяется по сети.
- Отбор и включение в блок. Валидатор/майнер выбирает транзакции (обычно по комиссии/приоритету), формирует блок и публикует его.
- Подтверждения. Чем глубже блок в цепи, тем меньше риск отката. В PoW ориентируются на число подтверждений; в PoS — на чекпойнты/финальность эпох.
- Финальность. По достижении протокольных критериев считается практически необратимой.
Модели: UTXO vs аккаунты
| Критерий | UTXO (напр., Bitcoin) | Аккаунт-модель (напр., Ethereum) |
|---|---|---|
| Представление | Набор входов/выходов. | Пара from → to, баланс и nonce. |
| Комиссия | Разница входов и выходов. | Явное поле gas/fee. |
| Параллелизм | Выше (независимые UTXO). | Ограничен порядком nonce. |
| Контракты | Ограниченные скрипты. | Полные смарт-контракты. |
Комиссии и приоритет
- Спрос → цена. При высокой нагрузке мемпулы переполнены — требуется повышать цену за байт/газ для быстрого включения.
- Стратегии. В UTXO-сетях — выбор входов влияет на размер (байты) и стоимость; в EVM-сетях — управление maxFee/maxPriorityFee или gasPrice.
- Ресендинг/замена. В аккаунт-модели можно «ускорить» неподтверждённую транзакцию, отправив новую с тем же nonce и большей комиссией; сеть примет только одну.
Риски и типовые проблемы
- Неверный адрес/сеть. Переводы в неправильную сеть или на некорректный адрес почти всегда невозвратимы. Проверяйте первые/последние символы и целевую сеть.
- Застрявшие транзакции. Низкая комиссия → долгая жизнь в мемпуле. Помогает замена/ускорение (аккаунт-модель) или повтор с корректной комиссией.
- Двойная трата (до финальности). Не принимайте ценные платежи без достаточных подтверждений/финальности.
- Фишинг и «слепые подписи». Взаимодействуя со смарт-контрактами, читайте понятные calldata/подсказки кошелька; избегайте широких allowance.
Практика / чек-лист пользователя
1. Проверяйте реквизиты на «доверенном экране». Для крупных сумм — подтверждение на дисплее аппаратного устройства; делайте тест-переводы.
2. Управляйте комиссиями. Учитывайте текущую нагрузку сети; держите запас нативной монеты для оплаты газа.
3. Следите за nonce (EVM). Серии отправок делайте по порядку; при необходимости заменяйте «застрявшую» транзакцию той же nonce с повышенной комиссией.
4. Адреса-«сдача»/coin control (UTXO). Контролируйте выбор входов, не смешивайте чувствительные UTXO; планируйте консолидации при низких комиссиях.
5. Разделяйте кошельки. «Рабочий» для dApp и отдельный — для хранения (см. кошелёк, Self-custody).
6. Храните ключи/сид офлайн. Seed-фраза и приватные ключи должны быть вне сети; для крупных сумм — холодный режим.
Частые вопросы (FAQ)
Можно ли «отменить» транзакцию? Если она уже подтверждена — нет. До подтверждения в аккаунт-модели можно вытеснить её новой транзакцией с тем же nonce и более высокой комиссией.
Почему комиссия «скакнула»? Сети работают по рынку: при росте спроса на место в блоке растёт плата. Настройте динамическую стратегию комиссий.
Где посмотреть статус? В обозревателях блокчейна по хешу транзакции (tx hash). Там видны подтверждения, блок, размер комиссии и т. п.
Чем «перевод» отличается от «вызова контракта»? Перевод меняет балансы напрямую. Вызов контракта может выполнять произвольную логику: своп, депозит, чек-ин и др. Такие транзакции сложнее и дороже.
Почему моя EVM-tx «не проходит», хотя комиссия нормальная? Возможны ошибки исполнения (revert), неверный nonce, недостаточный gasLimit или конфликтующая незавершённая tx с тем же nonce.