Перейти к содержанию

RPC для приватных транзакций

RPC для приватных транзакций направляет подписанную транзакцию или пакет ограниченному кругу провайдеров, ретрансляторов или построителей блоков до распространения по публичному мемпулу; он меняет первоначальное раскрытие данных, но не гарантии корректности исполнения, включения, цены или финальности.

Обновлено

Только в образовательных целях; не является инвестиционным советом или инвестиционной рекомендацией. Инвестиции могут привести к убыткам.

Краткий ответ

RPC для приватных транзакций отправляет подписанную транзакцию или упорядоченный пакет по ограниченному служебному маршруту до ее распространения по публичному мемпулу. Маршрут может включать RPC-провайдера, ретранслятор, выбранных построителей блоков и, при раскрытии подсказок, поисковиков. Поэтому «приватный» описывает первоначальное распространение, а не шифрование, анонимность или невидимость для посредников.

Сервис может снизить риск копирования, опережения или сэндвич-атаки после появления транзакции в публичном мемпуле, но не гарантирует включение, успех исполнения в EVM, наилучшее исполнение, возврат MEV или финальность. Подтверждение провайдера или возвращенный хеш доказывают только получение запроса этим интерфейсом. Распространение среди построителей, выбор полезной нагрузки, включение в блок, status квитанции, каноничность и финальность — отдельные состояния.

Не считайте все приватные методы взаимозаменяемыми. Одиночная транзакция eth_sendPrivateTransaction, прежний формат eth_sendBundle и mev_sendBundle могут различаться целевыми блоками, упорядоченным содержимым, допустимыми откатами, заменой или отменой, выбором построителей, подсказками конфиденциальности и правилами возврата. Результат определяется точной сетью, конечной точкой, версией API и подписанной нагрузкой.

Как это работает

Сначала кошелек создает и подписывает обычную транзакцию сети с идентификатором сети, nonce, адресом назначения, суммой, calldata, лимитом газа и пределами комиссий EIP-1559. Приватная маршрутизация меняет место отправки подписанных байтов, но не отменяет порядок nonce, проверки баланса и разрешений, исполнение контракта, правила базовой комиссии или консенсусную проверку. Повторная отправка тех же подписанных байтов сохраняет хеш, а замена с тем же nonce, но измененными комиссиями или calldata имеет другой хеш.

Провайдер может смоделировать нагрузку на указанном состоянии и передать ее одному или нескольким построителям. Моделирование условно: до построения блока могут измениться балансы, хранилище, значения оракулов, конкурирующие транзакции и базовая комиссия. Построитель может пропустить корректную транзакцию, если она пришла поздно, платит недостаточно, уступила более ценному блоку или не дошла до построителя, выбранного предлагающим блок валидатором.

Пакеты добавляют правила упорядоченного исполнения. Обязательный откат может сделать пакет неприемлемым, а явно разрешенный откат способен израсходовать газ и оставить в силе более ранние успешные изменения состояния. Это не автоматический откат всего пакета. Подсказки конфиденциальности могут раскрыть хеш, адрес контракта, селектор функции, calldata или журналы; быстрый режим или широкая рассылка построителям увеличивает охват и обычно расширяет круг доверия и раскрытия.

Для nonce и тайм-аутов нужна явная машина состояний. Приватная ожидающая транзакция может отсутствовать в обычном представлении pending публичного RPC и блокировать последующие nonce. Отмена у провайдера прекращает только будущую отправку по контролируемым им маршрутам; она не отзывает уже переданную, публично опубликованную или включенную копию. Замена с тем же nonce либо публичный резервный маршрут конкурирует со всеми уцелевшими версиями и вновь раскрывает поток заявок.

Используйте следующий процесс:

  1. Зафиксируйте идентификатор сети, провайдера и версию API; выберите метод одиночной приватной транзакции или пакета и документируйте журналирование, распределение среди построителей и поисковиков, подсказки, откаты, возвраты и публичный резервный маршрут.
  2. Декодируйте точное неподписанное намерение и подписанную нагрузку: отправителя, nonce, адрес назначения, сумму, calldata, разрешения, лимит газа, пределы комиссий, срок, минимальный результат, диапазон целевых блоков и каждый элемент пакета по порядку.
  3. Смоделируйте на определенном блоке и состоянии; проверьте успех и откат, изменение состояния, проскальзывание, изменения балансов, разрешенные ошибки, суммарный газ и худший экономически допустимый результат.
  4. Отправьте через нужную конечную точку и сохраните хеш транзакции или пакета, идентификатор запроса, идентификатор аутентификации, время, целевой или максимальный блок, построителей, подсказки и исходную нагрузку.
  5. Отслеживайте подтверждение провайдера, моделирование, рассылку построителям, приватный nonce и истечение отдельно от канонической квитанции; перед повторной отправкой обновляйте предположения о целевом блоке и комиссиях.
  6. К сроку явно выберите ожидание, отмену, замену с тем же nonce или раскрытие через публичный резервный маршрут; не считайте, что отмена отзывает копии, и не отправляйте конфликтующие версии без отслеживания гонки.
  7. Сверьте в правильной сети status квитанции, журналы, балансы, результат, эффективную цену газа и возврат, затем дождитесь требуемого состояния safe или finalized и расследуйте реорганизацию, утечку либо необъяснимые отличия исполнения.

Примеры

  • Защита результата не равна наилучшему исполнению. Котировка обмена задает вход 100,000 USDC и минимум 98,800 USDC. Публичное исполнение дает 98,950 USDC: дефицит к номиналу равен 1,050 USDC, или 1.05%, но запас над минимумом — лишь 150 USDC. Приватный маршрут может уменьшить наблюдаемость, но не гарантирует лучший результат, чем другой публичный рынок или RFQ.
  • Предел включения EIP-1559. Транзакция использует 180,000 gas, базовая комиссия равна 30 gwei, предел приоритетной комиссии — 2 gwei, максимальная комиссия — 40 gwei. Эффективная цена равна min(40, 30 + 2) = 32 gwei, поэтому комиссия составляет 180,000 x 32 = 5,760,000 gwei = 0.005760 ETH. Если базовая комиссия блока-кандидата равна 42 gwei, максимум 40 gwei ее не покрывает, и приватный маршрут не сделает транзакцию допустимой для этого блока.
  • Гонка резервных версий с одним nonce. Приватная нагрузка A и публичная резервная B используют nonce 42. Отправок две, но каноничная сеть может израсходовать nonce 42 только один раз. Если A попадет в блок N + 2, B устареет; если первой попадет B, устареет A. Подтверждение отмены не является откатом, и каждую уцелевшую копию надо отслеживать.
  • Разрешенный откат не означает атомарного возврата. В упорядоченном пакете разрешение расходует 45,000 gas, затем обмен откатывается после 120,000 gas при эффективной цене 25 gwei. Без правила допустимого отката пакет исключается согласно заданной политике. Если откат обмена разрешен и пакет включен, разрешение может сохраниться, обмен получит status = 0, а газ обойдется в (45,000 + 120,000) x 25 gwei = 0.004125 ETH.

Риски

  • Кошелек использует неверную сеть, провайдера, конечную точку или версию API.
  • DNS, TLS, ключ API или RPC-интерфейс подвергается фишингу либо компрометации.
  • Провайдер сопоставляет IP, счет, время и подписанную нагрузку.
  • Ретранслятор записывает, раскрывает, копирует или повторно публикует полную транзакцию.
  • Подсказки раскрывают хеш, селектор, контракт, calldata или журналы.
  • Быстрый режим или широкая рассылка построителям расширяет круг доверия и раскрытия.
  • Построитель или поисковик цензурирует, копирует либо эксплуатирует приватный поток заявок.
  • Моделирование использует неверный блок или устаревает до построения.
  • Состояние контракта, балансы, цены или порядок меняются и вызывают откат.
  • Базовая, максимальная или приоритетная комиссия делает нагрузку непривлекательной либо недопустимой.
  • Разрыв nonce или невидимая приватная ожидающая транзакция блокирует последующие nonce.
  • Отмена или замена с тем же nonce проигрывает гонку по времени.
  • Скрытый публичный резервный маршрут возвращает риск MEV публичного мемпула.
  • Целевой или максимальный блок, отметка времени либо TTL сервиса поняты неверно.
  • Порядок пакета или правило допустимого отката оставляет нежелательное изменение состояния.
  • Охват построителей, ретрансляторов и предлагающих блок либо цензура препятствует включению.
  • Сбой провайдера, ограничение частоты или задержка приводит к пропуску окна.
  • Приватную маршрутизацию принимают за защиту от проскальзывания или наилучшее исполнение.
  • Квитанция, журналы, балансы, комиссии или возвраты сверены неверно.
  • Реорганизация, преждевременная финальность или особенности секвенсора L2 меняют вывод.

Распространенные заблуждения

  • Приватная означает зашифрованная, анонимная и никому не видимая. Провайдер и выбранные последующие участники могут видеть полную нагрузку или раскрытые подсказки.
  • Приватный RPC гарантирует отсутствие MEV и лучшую цену. Он меняет распространение; договорные ограничения, сравнение площадок и качество исполнения по-прежнему важны.
  • Успех RPC или хеш означает включение, успешное исполнение и финальность. Подтверждение, квитанция, статус EVM и финальность — разные состояния.
  • Отмена или замена с тем же nonce гарантирована. Копии и конкурирующие версии гоняются до включения одной из них или истечения всех.
  • Приватная транзакция автоматически является атомарным пакетом. Одиночные транзакции и разные форматы пакетов имеют разные правила порядка и отката.

Связанные темы

Источники

Навигация

Поиск по вики...