Только в образовательных целях; не является инвестиционным советом или инвестиционной рекомендацией. Инвестиции могут привести к убыткам.
Краткий ответ
Замена транзакции Ethereum — локальная политика пула транзакций, по которой узел может предпочесть новую подписанную транзакцию другому кандидату от того же отправителя с тем же nonce. Это не глобальный переключатель Replace-by-Fee на уровне консенсуса. Принятие узлом нового хеша не удаляет старую подписанную транзакцию из других узлов, частных ретрансляторов или входных данных сборщиков блоков. Только включение в каноническую цепь определяет, какой кандидат израсходует nonce счета.
Функция кошелька «Ускорить» обычно сохраняет исходные адрес назначения, сумму и calldata, повышая поля комиссии. Публичная функция «Отменить» обычно создает перевод самому себе с нулевой суммой, тем же отправителем и nonce. Это конкурирующая транзакция, а не откат: если первой включат исходную, ее перевод или вызов контракта не отменится. У частных каналов могут быть собственные API отмены; например, Flashbots Protect описывает аутентификационную отмену, которая не попадает в блокчейн. Ее нельзя обобщать на публичную замену транзакций Ethereum.
Как это работает
- Зафиксируйте точную цепочку кандидатов: идентификатор сети, клиент и версию, головной блок и базовую комиссию, канал отправки, отправителя, канонический nonce счета, исходные подписанные байты, хеш и тип транзакции. Сверьте несколько релевантных публичных или частных представлений: метка кошелька и один ответ RPC не являются глобальным состоянием.
- Точно классифицируйте исходную транзакцию: отклонена, локально ожидает, стоит в очереди из-за разрыва nonce, удалена или вытеснена, отправлена приватно, включена успешно, включена с
status = 0, удалена реорганизацией либо финализирована. После канонического расходования nonce замена уже невозможна, хотя реорганизация может снова открыть гонку. - Определите новый замысел. Ускорение должно воспроизводить все смысловые поля; публичная попытка отмены обычно использует того же отправителя и nonce с
to = sender,value = 0и пустым calldata. Перед подписью сравните идентификатор сети, тип, назначение, сумму, calldata, список доступа, лимит газа, хеши blob и авторизации. - Прочитайте фактическую политику целевого узла. У старых транзакций и типа 1 есть
gasPrice; у типа 2 —maxFeePerGasиmaxPriorityFeePerGas; у типа 3 также естьmaxFeePerBlobGasи обязательные сопутствующие данные. Текущие значения Gethtxpool.pricebump = 10иblobpool.pricebump = 100— примеры конфигурации Geth, а не общеэфириумные константы. - Отдельно рассчитайте повышение, право на включение и финансирование. Для типа 2 эффективная цена равна
min(maxFeePerGas, baseFeePerGas + maxPriorityFeePerGas). Кандидату все равно нужны корректная кодировка, достаточный внутренний газ и баланс на сумму плюс максимальную комиссию. Высокий лимит не исправляет неверные calldata и не гарантирует успешное исполнение EVM. - Отправляйте осознанно и сохраняйте каждый ответ. Публичная повторная трансляция раскрывает намерение и риск MEV; у частных ретрансляторов свои видимость, отмена, охват сборщиков и доступность. Отслеживайте старые и новые хеши по каждому каналу, не считая, что локальное принятие удалило конкурента, и не отправляйте вслепую третью транзакцию с суммой.
- Сверьте победителя с канонической цепью. Проверьте блок и хеш квитанции, индекс транзакции,
status, использованный газ, эффективную цену, журналы, nonce отправителя, балансы и состояние контракта на требуемом уровне финальности. Хеши проигравших отмечайте как замененные, удаленные либо еще наблюдаемые только по доказательствам; после реорганизации начинайте анализ заново.
Разобранные примеры
- Учебное повышение для обычного типа 2. Старый кандидат имеет
maxFeePerGas = 40 gweiиmaxPriorityFeePerGas = 2 gwei. При учебной конфигурации Geth с повышением10%арифметические пороги равны44 gweiи2.2 gwei. Кандидат44/2.1 gweiне достигает порога чаевых, а44/2.2 gweiдостигает обоих. При базовой комиссии32 gweiи расходе газа21,000эффективная цена равна34.2 gwei, комиссия —718,200 gwei = 0.0007182 ETH, сжигание —0.000672 ETH, чаевые —0.0000462 ETH. Реальное принятие зависит от реализации, версии и округления целых wei. - Чувствительность к базовой комиссии. Лимиты замены —
66/4.4 gwei. При базе60 gweiэффективная цена равнаmin(66, 60 + 4.4) = 64.4 gwei. При базе65 gweiона равна66 gwei, а эффективные чаевые — лишь1 gwei. При базе67 gweiвыполняется66 < 67, поэтому кандидат непригоден для блока, даже если прошел локальный тест повышения. - Гонка отмены. Исходная транзакция с nonce
20переводит продавцу5 ETH. Если она выигрывает с комиссией21,000 * 42 gwei = 0.000882 ETH, продавец получает5 ETH, а отмена становится транзакцией со слишком низким nonce. Если выигрывает нулевой перевод себе с комиссией21,000 * 45 gwei = 0.000945 ETH, он расходует nonce20и не позволяет исходной транзакции позже войти в ту же каноническую историю. Нажатие кнопки «Отменить» само по себе не определяет исход. - Граница blob-пула. Старый кандидат типа 3 имеет лимит комиссии исполнения
100 gwei, лимит чаевых3 gweiи лимит blob-комиссии20 gwei. В учебной конфигурации blob-пула Geth с повышением100%арифметические пороги равны200/6/40 gwei. Кандидат200/6/39 gweiне достигает blob-порога;200/6/40 gweiдостигает всех трех, но ему еще нужны корректные сопутствующие данные, nonce, баланс и прием в пул. Эти значения не являются правилами для обычных транзакций или других клиентов.
Риски
- Неверный идентификатор сети или сеть.
- Неверный отправитель или nonce счета.
- Устаревшие головной блок, базовая комиссия или канонический nonce.
- Попытка замены после включения или финализации исходной транзакции.
- Применение правил обычного txpool к ERC-4337
UserOperation. - Предположение об одинаковой политике у иного клиента, провайдера, версии или конфигурации.
- Недостижение порога из-за округления целых wei.
- Повышение лишь одного обязательного поля комиссии EIP-1559.
maxFeePerGasниже базовой комиссии блока-кандидата.- Игнорирование blob-лимита, сопутствующих данных или особого правила blob-пула.
- Недостаточный баланс на сумму и максимальные разрешенные комиссии.
- Недействительные подпись, тип, кодировка, внутренний газ или домен сети.
- Случайное изменение назначения, суммы, calldata, списка доступа или blob-хешей.
- Проигрыш публичной отмены в гонке включения.
- Сохранение старой транзакции у других узлов или сборщиков.
- Утечка, цензура, удаление или неудачная отмена частным ретранслятором.
- Раскрытие намерения публичной трансляцией для фронтраннинга, сэндвича или другого MEV.
- Блокировка последующих транзакций разрывом nonce или повторный перевод.
- Включение замены с откатом исполнения либо исчерпанием газа и расходованием nonce и комиссии.
- Ошибки реорганизации, финальности или цепочки квитанций, возрождающие либо неверно классифицирующие кандидатов.
Распространенные заблуждения
- Кандидат с большей комиссией глобально удаляет старую транзакцию.
- Любые транзакции с одинаковым числовым nonce заменяют друг друга, даже от разных отправителей.
- Кнопка отмены обращает уже включенную транзакцию.
- Принятие замены одним узлом доказывает ее включение сборщиками.
- Универсальное повышение 10% подходит каждому клиенту, blob-транзакции, частному ретранслятору и
UserOperation.
Похожие темы
Источники
- Transactions - Ethereum.org (дата обращения: 2026-08-13)
- EIP-1559: Fee market change for ETH 1.0 chain - Ethereum Improvement Proposals (дата обращения: 2026-08-13)
- txpool Namespace - go-ethereum (дата обращения: 2026-08-13)
- Command-line Options - go-ethereum (дата обращения: 2026-08-13)
- eth_sendRawTransaction - Ethereum Execution APIs (дата обращения: 2026-08-13)
- EIP-4844: Shard Blob Transactions - Ethereum Improvement Proposals (дата обращения: 2026-08-13)
- ERC-4337: Account Abstraction Using Alt Mempool - Ethereum Improvement Proposals (дата обращения: 2026-08-13)
- Cancellations - Flashbots Documentation (дата обращения: 2026-08-13)