MEV, MEV-Boost e Recompensas MEV

Na seção anterior, você aprendeu sobre como os operadores de nó ganham taxas de prioridade. As taxas de prioridade são um grande impulso para a renda de um operador de nó, mas não são a única forma de recompensa líquida disponível para você na camada de Execução. Existe uma forma suplementar de recompensas disponível, conhecida como recompensas MEV.

NOTA

Como um lembrete rápido, aqui está um resumo dos diferentes tipos de recompensas e em qual camada elas são fornecidas:

  • Camada de Consenso (bloqueadas até os saques): atestações, propostas de bloco, comitês de sincronização, relatórios de slashing
  • Camada de Execução (líquidas): taxas de prioridade e MEV de propostas de bloco

O que é MEV

Quando seu validador cria um bloco, ele geralmente faz isso com um algoritmo muito simples: mantém o controle de uma lista de transações pendentes, agrupa o máximo delas no bloco que está construindo (priorizando para que as com as gorjetas mais altas venham primeiro) e envia esse bloco para a chain.

No entanto, os usuários da rede Ethereum descobriram um efeito colateral interessante de poder ver o pool publicamente disponível de transações pendentes (conhecido como mempool). Ter esse conhecimento permite que eles empreguem algoritmos inteligentes e sofisticados para modificar a ordenação dessas transações e, em alguns casos, introduzir novas transações entre elas. Essas duas técnicas combinadas podem ser usadas para extrair ETH adicional de uma proposta de bloco.

Esse ETH extra é conhecido como Valor Máximo Extraível, ou MEV para abreviar.

Em geral, existem dois "sabores" de MEV:

  • MEV que vem de fontes "benignas", como ser o primeiro a arbitrar entre exchanges após uma grande compra ou venda
  • MEV que vem às custas dos usuários Ethereum, ao fazer front-running de suas transações e lucrar com a slippage resultante do usuário (veja Ataques Sanduíche para mais informações sobre esta técnica)

Construtores de Blocos e Relays

Encontrar oportunidades MEV não é uma coisa fácil; buscadores de oportunidades de última geração, conhecidos como searchers, requerem computadores imensamente poderosos e empregam algoritmos de IA complexos para identificar e extrair MEV rapidamente. Os searchers então pegam essas oportunidades e as fornecem aos block builders - entidades que agregam esses pacotes de oportunidades para formar um bloco Ethereum completo (que podem ser os próprios searchers ou outras partes).

Os requisitos de hardware e software para executar um searcher lucrativo impedem a maioria dos operadores de nó de usá-los (ou pelo menos de usá-los competitivamente), impedindo-os assim de encontrar suas próprias oportunidades MEV para capitalizar. Felizmente, simplesmente encontrar oportunidades MEV é apenas metade da equação.

A cada Epoch (6,4 minutos, ou 32 slots), a Beacon Chain seleciona aleatoriamente um validador de toda a lista de validadores ativos para propor um bloco que se encaixará em um dos slots daquele Epoch. Esta lista pode ser vista para o próximo Epoch próximo, o que significa que todos podem ver quais validadores são atribuídos a cada slot com alguns minutos de antecedência.

Algumas entidades inteligentes aproveitaram esse conhecimento antecipado para essencialmente construir uma espécie de "mercado". Neste mercado, os validadores podem se registrar quando têm propostas de bloco próximas e os construtores de blocos podem enviar lances para blocos que gostariam que os validadores propusessem. Esses lances sempre dão as taxas de prioridade de cada transação no bloco ao proponente, e também oferecem uma gorjeta suplementar ao proponente que vem do MEV que o construtor conseguiu extrair para si mesmo.

Os validadores podem então examinar esses lances, determinar qual oferece mais lucro e propor esse bloco em vez de construir o seu próprio.

Este "mercado" onde os construtores de blocos interagem com validadores é conhecido como relay. Diferentes relays têm regras diferentes (como quais dos "sabores" de MEV mencionados eles permitem dos construtores de blocos, e se eles cumprem ou não certas regulamentações de sanções governamentais), mas no final todos servem à mesma função de mercado.

Rocket Pool atualmente oferece aos seus operadores de nó acesso a múltiplos relays diferentes:

NomeRegulaçãoTipos de MEV
FlashbotsCumpre Sanções OFAC*Todos tipos
bloXroute Max ProfitCumpre Sanções OFAC*Todos tipos
bloXroute RegulatedCumpre Sanções OFAC*Todos tipos
Ultra SoundNão reguladoTodos tipos
Ultra Sound FilteredCumpre Sanções OFAC*Todos tipos
AESTUSNão reguladoTodos tipos
Titan GlobalNão reguladoTodos tipos
Titan RegionalCumpre Sanções OFAC*Todos tipos
BTCS OFAC+Cumpre Sanções OFAC*Todos tipos
NOTA

*Relays que cumprem sanções OFAC seguem a lista negra de endereços que o Escritório de Controle de Ativos Estrangeiros (OFAC) dos Estados Unidos mantém. Nós encorajamos fortemente que você leia mais sobre as sanções OFAC, censura de rede, e tome uma decisão cuidadosamente informada sobre se você acredita que deve cumprir essas sanções e quais relays você está confortável em usar.

Mais informações podem ser encontradas em artigos como estes:

Se você está interessado em explorar a participação de mercado relativa e as gorjetas médias por bloco de cada um dos relays, dê uma olhada em https://www.mevboost.org/. Este site captura muitas métricas sobre os vários relays MEV para que você possa entender melhor a popularidade e retornos dos relays.

MEV-Boost

Existem muitos relays por aí, e ter seu nó registrando e mantendo contato automaticamente com cada um deles pode ser uma tarefa onerosa. Felizmente, os engenheiros da Flashbots produziram e mantêm um programa explicitamente projetado para lidar com esse gerenciamento de relay conhecido como MEV-Boost.

MEV-Boost é um programa simples: você diz a ele quais relays você quer usar e diz ao seu cliente de Consenso como alcançá-lo, e ele cuida de todo o registro, lances, assinatura cega e gerenciamento de propostas em conjunto com seu cliente de Consenso. Ele permite que você participe passivamente deste mercado construtor-proponente e, assim, ganhe recompensas extras com zero esforço da sua parte.

MEV-Boost é código aberto e foi auditado.

Abaixo está uma boa representação visual de como todo o ecossistema MEV funciona, e onde MEV-Boost se encaixa:

Imagem cortesia da Flashbots

O Smartnode do Rocket Pool vem com MEV-Boost diretamente incluído por padrão, permitindo que nossos operadores de nó em Modo Docker e Modo Híbrido aproveitem perfeitamente. Usuários do Modo Nativo precisarão configurá-lo manualmente.

Rocket Pool e MEV

Como os validadores Rocket Pool são parcialmente financiados pelos stakers de rETH, o protocolo exige que as recompensas MEV (assim como as taxas de prioridade) sejam compartilhadas com os stakers de rETH (menos a comissão do operador do nó, é claro). Os operadores de nó não têm permissão para embolsar toda a recompensa MEV para si mesmos ao propor com um validador Rocket Pool.

Para esse fim, MEV-Boost é um componente crítico da rede Rocket Pool por várias razões:

  • Ele fornece acesso fácil à rede de relays MEV
  • Ele garante que o operador do nó não esteja construindo seus próprios blocos; isso é importante para garantir que um operador de nó não esteja executando seu próprio searcher e roubando MEV sem compartilhá-lo com os stakers de rETH
  • Ele aumenta os retornos gerais para os stakers de rETH, o que mantém o protocolo competitivo com outros provedores de staking mais centralizados

O segundo ponto aqui é importante: Rocket Pool como protocolo acabará confiando em um design de Trusted Block Builder (ou mais precisamente, um Trusted Relay) para garantir que os stakers de rETH sempre recebam sua parte justa das recompensas MEV e taxas de prioridade.

Cada um dos relays listados acima atualmente atua nessa função.

Estamos adotando uma abordagem de três fases para a transição para o design Trusted Block Builder:

Fase 1: Opt-In!

Na fase 1, MEV-Boost é fornecido a todos os operadores de nó como uma configuração opt-in. Os operadores de nó são encorajados a usá-lo porque melhora os retornos do rETH e, portanto, mantém o protocolo competitivo, mas não são obrigados a usá-lo. Os operadores de nó podem optar por usar um ou mais dos relays confiáveis listados acima, mas não podem usar um relay customizado (não confiável).

Esta fase terminou em novembro de 2022.

Fase 2: Opt-Out

Na fase 2, MEV-Boost é habilitado por padrão para todos os operadores de nó. Os operadores de nó podem optar por usar um ou mais dos relays confiáveis listados acima, mas não podem usar um relay customizado (não confiável). Os operadores de nó que escolherem desativar o MEV-boost devem fazê-lo explicitamente antes de iniciar o Smartnode.

Esta é a fase atual.

Fase 3: Obrigatório

Na fase 3, MEV-Boost não é mais opcional; será obrigatório para todos os operadores de nó. Os operadores de nó devem optar por usar um ou mais dos relays confiáveis listados acima, mas não podem usar um relay customizado (não confiável).

Atualmente não há data agendada para esta fase.

Configurando MEV-Boost no Smartnode

Para aprender como configurar MEV-Boost, selecione qual modo você está usando abaixo.

Docker Mode
Hybrid Mode
Native Mode

Configurar MEV-Boost é fácil com a TUI de configuração do Smartnode. Comece executando rocketpool service config e navegue até a opção MEV-Boost:

Marque a caixa rotulada Enable MEV-Boost para habilitá-lo.

Uma vez habilitado, a tela ficará assim (a partir do Smartnode v1.17.2):

Abaixo está uma descrição de cada opção e como usá-las.

  • A caixa MEV-Boost Mode permite alternar entre uma instância MEV-Boost que o Rocket Pool gerencia, e uma externa que você gerencia por conta própria. Isso é destinado a usuários avançados que já têm MEV-Boost configurado e simplesmente querem usá-lo em vez de ter o Rocket Pool executando uma segunda cópia. Usuários regulares do Modo Docker devem apenas deixar isso definido como Locally Managed.

  • A caixa Selection Mode permite alternar entre Profile Mode e Relay Mode.

  • Profile Mode é o padrão. Ele permite que você selecione quais relays habilitar com base em seus "perfis". O perfil de um relay é composto pelas seguintes escolhas:

  • Se é regulado (cumpre listas de sanções governamentais como a lista OFAC e lista negra de certos endereços) ou não regulado (não censura quaisquer transações com base em quaisquer listas negras)

  • Se permite todos os tipos de MEV ou proíbe explicitamente pacotes que envolvem ataques sanduíche ou front-running de usuários Ethereum

  • Você pode selecionar múltiplos perfis.

  • Cada perfil que você seleciona tem um conjunto de relays que aderem a ele que estão listados na caixa de descrição; habilitar esse perfil habilitará todos esses relays.

  • Usuários avançados podem mudar isso para Relay Mode, que permite selecionar explicitamente quais relays gostariam de usar.

  • A caixa Port não é importante para usuários do modo Docker.

  • A caixa Expose API Port não é importante para usuários do modo Docker.

  • A caixa Container Tag é útil para atualizar manualmente a versão do MEV-Boost que o Smartnode executa se a Flashbots lançar uma nova versão de alta prioridade que você queira usar antes que uma atualização do Smartnode com ela seja lançada.

  • A caixa Additional Flags é usada se você quiser adicionar flags de configuração ou parâmetros suplementares diretamente ao contêiner MEV-Boost. Normalmente, não será útil.

Depois de habilitar o MEV-Boost e habilitar os relays que você deseja, simplesmente salve e saia. O Smartnode reiniciará os contêineres relevantes para você e configurará tudo automaticamente.

Veja abaixo as instruções sobre como verificar se está funcionando conforme esperado.

Verificando os Logs do MEV-Boost

Para verificar os logs do MEV-Boost, execute o seguinte comando (para usuários do Modo Docker e usuários Híbridos com um contêiner gerenciado localmente):

rocketpool service logs mev-boost

A saída mostrará quais relays você habilitou, seu status de conexão e começará a ouvir o tráfego do seu Beacon Node:

mev-boost_1      | time="2022-09-28T22:02:06Z" level=info msg="mev-boost v1.3.1" module=cli
mev-boost_1      | time="2022-09-28T22:02:06Z" level=info msg="Using genesis fork version: 0x00000000" module=cli
mev-boost_1      | time="2022-09-28T22:02:06Z" level=info msg="using 4 relays" module=cli relays="[{0xac6e77dfe25ecd6110b8e780608cce0dab71fdd5ebea22a16c0205200f2f8e2e3ad3b71d3499c54ad14d6c21b41a37ae https://0xac6e77dfe25ecd6110b8e780608cce0dab71fdd5ebea22a16c0205200f2f8e2e3ad3b71d3499c54ad14d6c21b41a37ae@boost-relay.flashbots.net?id=rocketpool} {0xb0b07cd0abef743db4260b0ed50619cf6ad4d82064cb4fbec9d3ec530f7c5e6793d9f286c4e082c0244ffb9f2658fe88 https://0xb0b07cd0abef743db4260b0ed50619cf6ad4d82064cb4fbec9d3ec530f7c5e6793d9f286c4e082c0244ffb9f2658fe88@bloxroute.regulated.blxrbdn.com?id=rocketpool} {0x9000009807ed12c1f08bf4e81c6da3ba8e3fc3d953898ce0102433094e5f22f21102ec057841fcb81978ed1ea0fa8246 https://0x9000009807ed12c1f08bf4e81c6da3ba8e3fc3d953898ce0102433094e5f22f21102ec057841fcb81978ed1ea0fa8246@builder-relay-mainnet.blocknative.com?id=rocketpool} {0xb3ee7afcf27f1f1259ac1787876318c6584ee353097a50ed84f51a1f21a323b3736f271a895c7ce918c038e4265918be https://0xb3ee7afcf27f1f1259ac1787876318c6584ee353097a50ed84f51a1f21a323b3736f271a895c7ce918c038e4265918be@relay.edennetwork.io?id=rocketpool}]"
mev-boost_1      | time="2022-09-28T22:02:06Z" level=info msg="Checking relay" module=service relay="https://0xac6e77dfe25ecd6110b8e780608cce0dab71fdd5ebea22a16c0205200f2f8e2e3ad3b71d3499c54ad14d6c21b41a37ae@boost-relay.flashbots.net?id=rocketpool"
mev-boost_1      | time="2022-09-28T22:02:06Z" level=info msg="Checking relay" module=service relay="https://0xb0b07cd0abef743db4260b0ed50619cf6ad4d82064cb4fbec9d3ec530f7c5e6793d9f286c4e082c0244ffb9f2658fe88@bloxroute.regulated.blxrbdn.com?id=rocketpool"
mev-boost_1      | time="2022-09-28T22:02:07Z" level=info msg="Checking relay" module=service relay="https://0x9000009807ed12c1f08bf4e81c6da3ba8e3fc3d953898ce0102433094e5f22f21102ec057841fcb81978ed1ea0fa8246@builder-relay-mainnet.blocknative.com?id=rocketpool"
mev-boost_1      | time="2022-09-28T22:02:07Z" level=info msg="Checking relay" module=service relay="https://0xb3ee7afcf27f1f1259ac1787876318c6584ee353097a50ed84f51a1f21a323b3736f271a895c7ce918c038e4265918be@relay.edennetwork.io?id=rocketpool"
mev-boost_1      | time="2022-09-28T22:02:07Z" level=info msg="listening on 0.0.0.0:18550" module=cli

Isso indica que está sendo executado corretamente.

Se você já tiver validadores em funcionamento, verá mensagens como esta a cada poucos minutos nos logs:

mev-boost_1      | time="2022-09-28T21:40:48Z" level=info msg="http: GET /eth/v1/builder/status 200" duration=0.147305645 method=GET module=service path=/eth/v1/builder/status status=200
mev-boost_1      | time="2022-09-28T21:40:48Z" level=info msg="http: POST /eth/v1/builder/validators 200" duration=0.052895118 method=POST module=service path=/eth/v1/builder/validators status=200

Isso indica que seu Beacon node conseguiu se conectar corretamente a ele e registrar seus validadores, indicando que seu nó agora está se envolvendo ativamente com os relays MEV e está pronto para receber blocos de construtores de blocos!

Próximos Passos

Agora que o MEV-Boost foi configurado, você está pronto para criar um novo validador de megapool e começar a validar na rede Ethereum! Leia a próxima seção para passar por este processo.