May 13, 2022

Flashbots: RPC и Sponsored TX

Привет старички.

С вами @danoneo и сегодня я расскажу вам пару фишек с флешботами, которые открывают новые возможности в мире чириптовалют.


1. Введение

Что такое флешботы?

Это организация, которая занимается ресерчем и созданием экосистемы для работы с MEV. С помощью MEV можно извлекать дополнительный профит в блоке за счёт манипуляций с порядком транзакций.

Вы наверняка сталкивались с таким если делали на DEX свапы с большим проскальзыванием, когда боты ловили вас в сендвич и забирали часть профита.

Пример сендвич-атаки на обмене LUNA

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

1. Есть майнеры (пулы), которые держат MEV-geth ноду вместо стандартной geth. В сети около 70% хешрейта приходится на MEV-geth, т.к. с ним майнеры получают в среднем на 0.3 ETH больше за блок.

2. Есть серчеры — это люди, которые находят выгодные связки транзакций (бандлы), и отправляют их майнерам через flashbots-relay. Серчер делится наградой с майнерами, в этом заключается их партнерство.

Подробную инфу по работе с флешботами и сценариями их использования можно глянуть здесь: https://docs.flashbots.net/.

2. Flashbots RPC

Очень простая фишка, которой могут воспользоваться абсолютно все, вне зависимости от познаний в написании кода.

С её помощью можно:

1. Защититься от сендвич-атак

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

2. Перестать жечь газ на фейлящихся транзакциях

Майнеры Flashbots-relay симулируют каждый бандл/транзакцию перед включением в блок, и если транзакция зафейлится — они не включают ее в блок, а значит вы не палите газ.

Всё что надо сделать — поменять RPC в настройках сети в метамаске.

Важно: транзакции с gaslimit<42000 не будут приняты флешбот-майнерами, и будут отправлены в стандартный мемпул. Также имейте ввиду, что флешботы подписывают ~2/3 блоков в сети, так что учитывайте, что есть риск не попасть в нужный блок. По этой причине не рекомендуется использовать этот RPC на нфт минтах и в других FCFS ситуациях.

Подробная инструкция по настройке RPC здесь:
https://docs.flashbots.net/flashbots-protect/rpc/quick-start


3. Sponsored TX

Этой фишкой смогут воспользоваться только кодеры. Учите код :)

С помощью Sponsored TX можно:

1. Спасти активы со скомпрометированного кошелька

На похищенные кошельки обычно ставится свипер, который моментально похищает весь ваш эфир, при этом остальные активы часто остаются нетронутыми, чтобы жертва скормила злодею побольше эфира в попытках спасти остальное.

Единственный выход в такой ситуации - отправить бандл, состоящий из нескольких транзакций. Это будет выглядеть примерно так:

Tx1 = Спонсор отправляет эфир на взломанный кошелек
Tx2 = Взломанный кошелек выводит токены/нфт на основной кошелек
Tx3 = Взломанный кошелек возвращает остатки эфира Спонсору

В этом случае свипер не сможет похитить эфир, т.к.:

1. Транзакции не попадают в паблик мемпул, а отправляются в приватный релей.
2. В случае фейла при симуляции одной из транз - весь бандл будет отменен.

Посмотреть как это делается можно здесь:
https://github.com/flashbots/searcher-sponsored-tx

Потренироваться можете на этом приватнике:

37fb7f5923cda40128a56db4c36c0f060e7e8722b79416e7f4a4130a4452de97

Только не уводите все токены, оставьте другим попробовать :)

2. Безопасно минтить с ВЛ кошельков, купленных на ОТС

Помните - крипто мир жесток, и на каждом углу вас хотят обмануть.

Нередки случаи когда, казалось бы, трастовые люди предлагают купить у них кошелек с вайтлистом - а затем просто крадут оттуда всё, что было заведено для минта (такое случается даже внутри лучших приваток).

Обезопасить себя от таких моментов нам поможет старый добрый Sponsored TX.

Принцип такой же, как и в примере выше:

Tx1 = Спонсор отправляет эфир на купленный кошелек
Tx2 = Купленный кошелек минтит NFT
Tx3 = Купленный кошелек выводит NFT на основной кошелек
Tx4 = Купленный кошелек возвращает остатки эфира Спонсору

Такой метод подходит для спокойных минтов, где у вайтлиста много времени и нету газвара. На недавнем сейле Otherside такой бандл обошелся бы очень дорого.


На этом всё!

Подписывайтесь на мой канал: https://t.me/danoneo_systems

P.S. Если возникнут вопросы, или нужна будет помощь со спасением активов - feel free to DM me.