Meetup #05 - MEV - Leonardo Papais

ERC55 Meetups · 23 Feb 2024 · 1:53:43

A Portuguese-language meetup talk tests the Twitter narrative that MEV is too complex, secretive and dependent on extreme gas optimisation, drawing on the speaker's own experiment building a bot. It explains MEV-Boost and proposer-builder separation, in which validators auction block construction to specialised builders, and shows why competition among searchers pushes profit toward builders and proposers. It then walks through sandwich, arbitrage and liquidation transactions and the code of a backrunning arbitrage bot that listens to MEV-Share events. The speaker concludes that MEV is learnable and that protocols can treat it as a feature rather than a bug.

Speakers

Topics

From ERC55 Meetups, hosted by ERC55.

Transcript

bom gravando pessoal boa noite Boa noite a todos Obrigado pela presença quem está assistindo online aí acredito vai ser uma ótima Call bom primeiro obviamente agradecer o papis por aceitar esse convite por papis é muito bravo da nossa galera a gente já tava em em Papo né para para fazer essa Call desde sei lá dois meses atrás mas acabou que não rolou em dezembro a gente não fez um um meetup mas estamos aqui agora sobre o [Música] mev mev é muito Brasileiro né mev Eh só dois dois tópicos que eu queria falar um pouquinho antes de passar a

bola pro papais primeiro é sobre o discord que a gente tá começando a movimentar um pouquinho a gente falou sobre esse esse meetup lá mas bem pouca coisa mas eh caso queira entrar no discord acredito que vai ser muito bom nossa principal fonte de comunicação assim direta e pegarei o link daqui a pouquinho só vou abrir aqui eu moto no no chat beleza e outra como tinha falado antes de começar a gravar a gente tá montando o planejamento desse ano do d55 né dos meetups então se você primeiro tiver alguma sugestão de tema

que queira ver por aqui eh a gente tem um canal discord só de sugestões de temas então bota lá a gente vai ficar super agradecido e segundo se você quiser fazer um meetup Se tiver interesse tiver algum tema que você acha relevante tiver alguma proposta Eh manda mensagem lá no discord também com um Call papers e a gente conversa show sem sem atrasar muito Valeu papis Obrigado de novo vai ser muito bom e passa a bola para ti mano qualquer coisa só falar boa bem galera Valeu aí por por comparecerem Valeu Tiaguinho pela pela

intro e como prometido trouxe aqui uns slides com muito design para vocês e e antes de de começar a falar sem parar aqui quer vocês a trocarem uma ideia né porque o que eu o que eu trouxe aqui foi que eu tô trazendo aqui né é o resultado de um experimento que eu fiz há um tempo atrás em que basicamente eu fiz um eu eu eu meio que desafiei aqui sozinho né uma narrativa de de MV que eu via muito rolando no

Twitter e e E aí eu que aí eu tô trazendo aqui basicamente os resultados dessa desse desse experimento que eu fiz né e não sei se vocês veem isso no Twitter mas eu vejo muito muita misinformation sobre MV e Eu sempre pensei assim pô esses caras ficam falando que MV é super complexo eu acho que eles só estão falando isso para para tipo deixar menos competição no setor né E aí eu falei ah vou vou ver se eu aprendo um pouco tenho uma experiência da hora de de um projetinho para fazer

talvez ganhe uns trocados e e aprendo o que que é verdade o que que é o que que é mentira nessa história toda que a gente ouve aí por cima de MV né que me vi uma parada que se fala muito sobre a prática Mas você vê poucas pessoas que de fato praticam né basicamente por que elas quem tá praticando fica quietinho ali né só lucrando ali então eu eh essa aqui é uma talks sobre a narrativa de dos operadores de MV eh que é basicamente gasl GAT skip e guess Bad

essas três esses três termos Então antes de começar de fato a coisa eu vou a essa conversa eu queria explicar um pouco né cada um desses termos que aparecem aí na na no título Então vamos começar falando sobre o que que é MV né para começar acho que a maioria de vocês já ouvi falar que antigamente pessoal chamava de Minor extractable value e depois que rolou o merge mudaram para maximal extractable value então seria um valor máximo extraível ali né da de um bloco ou de uma transação então MV seria uma métrica né só que a galera usa meio que

liberalmente né não fala sobre a métrica de tipo qual que é o MV de um bloco qual que é MV de uma transação eh e a galera usa mais para falar tipo de dessa prática dessa prática de trading algorítmico né então tipo não é Ah vou comprar PEP porque eu acho que vai bombar eh e ela é de alta frequência né então é rapidinho você compra e vende normalmente você mantém seu título ali né se seu seu tesouro ali em em tipo um token só normalmente eth eh mas pode ser outros também né não não tem não tem regra e costumam ser transações atômicas né Eh

de risco zero ou de risco baixo Mas você consegue e mexendo nesses nesses parametro zinhos para para encontrar a estratégia que lhe convém né então o ponto é não tem regra então Gu Light get skip guas Bad né tipo que que é gasl gaslight é aquela história de você ficar undermining outra pessoa ali né você ficar fazendo ela se desacreditar de de si e ficar tipo jogando ela para baixo ou falando que as coisas são muito difíceis Gate keep é quando você fica retendo informações né você não libera a a

informação de modo sei lá open source mas é de modo de modo público né e guas bed é só um memezinho besta para rimar com as outras palavras que começam com g que que a gente usa para falar sobre redução de de consumo de gas nas transações né então a narrativa de dos operadores de MV né dos Bots de MV que a gente vê por aí é fazendo Gas lighting com você falando Ah MV é muito complexo que para você ganhar dinheiro que MV você tem que meu fazer um bote super rápido ou que MV é prejudicial pro sistema PR pro ecossistema né

Eh gatek falando muito pouco sobre as práticas de Fato né e as técnicas de MV e e e guess Bad é essa história que meu para você fazer um bote de MV que seja competitivo você tem que meu fazer um guest golfing absurdo e ficar usando assembly e se você não fizer uma otimização alguém vai chegar n depois ali vai fazer aquela otimização eh que você não fez e vai roubar eh você não vai ganhar mais nada com isso né e e o que eu a minha teoria que aqui é que as coisas não são bem assim não que tipo pô se você sabe Solid JavaScript

você consegue codar um bote de MV assim eh não tô falando que é exatamente fácil tá Não não é uma parada trivial não é você fazer uma Sei lá uma land page né você tem que entender com o que que você tá mexendo ali Às vezes você vai ter que fazer uma conha para para alcançar um certo número ali ter que encontrar alguma equação inha Eh mas você pode fazer outros métodos também e uma uma outra uma outra opinião minha é que tipo o MV ele não é necessariamente negativo pro ecossistema e que existem sim estratégias de MV

negativas existe aquele MV que é neutro né e tem o MV que é positivo também cara eh por exemplo todo mundo fala de de sandwich Tech né e sandwich Tech é é uma estratégia de MV que garante que alguém que tá fazendo um Swap lá num amm tenha o preço que ela conseguir vai ser o pior preço que ela aceitou porque ele basicamente explora essa configuração de tipo qual é o pior preço que você aceita antes da sua transação reverter mas existem mvs que são positivos cara tipo

eh tá agora saiu ó acho que essa semana né aquele oval que que é uma plataforma é é um Oracle é um sistema de Oracle que você usa para que você usa MV para aumentar a taxa de de updates do Oracle então no nos orac tradicionais rola um update se o preço mudar mais do que acho que 0% normalmente ou um certo del T ali né um delta t máximo e pô se com uma mudança de 0.1% de preço de um token já rolar alguma oportunidade de rebalancear uma

Pool de de amm ou algo assim e que já pague a o update da do do valor no Oracle pô por que você não leilou o direito de executar essa transação eh para qualquer pessoa que que que use parte dos lucros desse MV para para pagar o Gas né que ela vai gastar Outro ponto meu que tipo para mim foi bem na hora que que eu percebi isso clicou bastante é que esse lance de você ter que fazer um bote de baixíssima latência super rápido eh Nem sempre é verdade e tipo na mnet quando tá fazendo MV eh na na layer um no etherum Pô você

tem 12 segundos ali entre um bloco e outro então você tem tempo mais do que suficiente assim faz uns requests lá mesmo e provavelmente você vai conseguir Executar tudo que você quer antes de você enviar sua transação e vai cair tudo no mesmo Bloco Eh então essa essa é meu Range sobre o gasl da que dessa narrativa que a gente vê no Twitter sobre MV outro lance é o gatek Né falando Pô você tem que você vai ter que descobrir sozinho tudo que tem sobre MV para você conseguir fazer algo a respeito e meu

Block é pública né então você consegue pegar os os as transações de MV e mesmo que você não tenha um código código fonte explicado lá nsan você já tem eh você consegue inspecionar a transação para ver o que ela faz interagindo com outros com outros códigos né com com os contratos que ela que ela tá aplicando MV ali eh e o outro ponto é que se você descobre um jeito novo de fazer alguma estratégia se ela for boa mesmo todo mundo vai perceber e todo mundo vai

copiar e vai fazer Vai descompilar seu código então euv meu na real é uma oportunidade muito grande para você meio que gamificar o seu aprendizado ali né você aprende uma parada você fala pô ISO eu fizer desse jeito aqui aí se você acertar você vai Talvez ganhar uma graninha ali e aí depois já vai passar o bonde vai passar e você vai ter que encontrar algo novo eentão Então você não vai ser um Range extractor que faz uma parada e fica rodando lá para sempre ganhando dinheiro infinito e você vai se aposentar nas barramas Não é bem assim e uma meu a pior de todas para mim é que quando a galera fala que você tem que

fazer um código Super otimizado para você eh conseguir competir no nesse landscape né cara Pensa bem se você vai fazer um um código bem otimizado do ponto de vista de de gas né de fazer muito Gas golfing para você ser competitivo cara pensa pensa num exemplo simples clássico aí de de uma arbitragem em que você tem sei lá uma p no uniswap e uma p no Curve que tem os mesmos os mesmos tokens aí alguém vai lá faz uma compra grandona no Swap aí de repente os esses preços ficam muito diferentes né aí você pode comprar

eh o token que tá barato de um lado e vender ele no lado que tá caro e aí você vai ter um lucro ali eh com risco zero bem eh Não tem muita lógica nesse código né você tá fazendo um um Swap numa num num amm e depois fazendo outro sop no outro amm 90 e sei lá 5% do do Gas que essa transação vai gastar não é de lógicas que estão dentro do seu contrato são lógicas que estão dentro da da do método de Swap do Unis Swap são lgas são tipo é o Gas gasto pelo método de Exchange do

do Curve e o que você tá fazendo ali eh entre um e outro entre uma chamada e outra vai gastar pouco Gas E tipo não tem muito onde errar eh Então cara Acho meio furada essa essa narrativa e se você chegar no ponto em que eh Putz alguém só tá fechando um uma certa arbitragem porque você porque eles têm o o bote mais otimizado do que o seu você você já tá trabalhando Numa Margem ali de lucrar pouquíssimo com

cada transação Então não é muito importante na maioria dos casos eh ser super otimizado para Gas boa então agora que eu expliquei a o título do do da conversa a gente pode ir pro conversa de Fato né Eh então eu o que eu planejei aqui é falar um pouco sobre o MV Boost do da flashbots e o que que é o a tal da do PBS né o proposer builder separation eh do ponto de vista dos validadores do ponto de vista dos

usuários e do ponto de vista dos operadores de bot de MV né falar um pouco sobre as dinâmicas de competição que esses Bots têm eh e falar de algumas estratégias das vou falar das três estratégias mais comuns aí de que tem de de MV tem bem mais do que isso mas essas são as que tem mais volume eu diria eh e vou falar sobre umas coisas mais relativamente novas né tal dos Order Flow options MV e uniswap eu vou tentar passar aqui eh e eu tinha planejado uma são de programação de um bote

simples só que cara é tanto utilitário que precisa assim que achei que ia demorar muito então eu decidi pegar um bote meu eh que eu que eu fiz e mostrar para vocês quais são como que é a anatomia dele ali para para vocês terem ideia do do nível de complexidade que que é a parada e que não que não tem nenhuma magia negra ali envolvida boa e legal MV Boost né o MV Boost ele é um programa que a flashbots criou né um produto que não tem nada a ver e assim

não não faz parte do protocolo não tá no Yellow paper não tá em lugar nenhum é só um programa que você roda junto com o o seu nó de execução para tentar o lucro eh do seu validador né então assumindo aqui que você tipo fez o staking lá de pelo menos 32 e e tá rodando um validador eh o que você uma das coisas que você espera quando você roda Esse validador é que de vez em quando Meu você seja remunerado por isso né E então se você esse produto ele da da

flashbot ele promete ajudar você a ter uma remuneração maior da operação do seu validador e no final das contas ou melhor tipo eh na na alma dele ele é uma implementação de proposer builder separation Mas que que é né o essa parada dentro do do do protocolo do do do eum depois do merge a Existem os Slots né e nos Slots vão os blocos e cada slot tem um proposer né então a é sorteado quem vai propor aquele aquele

bloco naquele slot e quando no dentro do do protocolo do th do do etherum eh esse a pessoa a o o validador que vai propor esse bloco ele é responsável por inspecionar a mpol ver as transações lá montar um bloco que lhe convém e propor esse bloco depois que esse bloco for aceito pela pelos outros validadores eh ele vai receber um uma remuneração pela pela proposição do bloco só que e essa remuneração Ela

depende muito de como você monta um bloco né quais transações Você coloca ali eh qual é a ordem das transações e tudo isso impacta na na lucratividade do do seu validador e o ponto principal é não existe uma uma fórmula matemática que é óbvia eh e Certeira que você consegue escolher qual que é o o bloco mais lucrativo que você consegue fazer dado um conjunto de transações e tem várias heurísticas e várias táticas que você pode implementar eh mas isso é um assunto super complexo

[Música] e e para você conseguir executar todas as combinações possíveis né que você que você queira você tem que ter uma super máquina lá né então quando você é um proposer você tipo segundo o protocolo Você também é um builder só que a ideia do PBS é você separar essas responsabilidades Quem que é o cara que é o proposer ele pode propor qualquer bloco então Em vez dele eh tentar encontrar por si o melhor bloco ele meio ele leiloa a essa execução desse bloco para outra

pessoa então ele abre um leilão para pros tal dos Block Builders que vão dar Bids né que vão dar lances para para enviar para ele qual vai ser o bloco que ele vai que ele vai propor pra rede então no final das contas ele terceiriza a o PBS é a terceirização por parte do validador que tá propondo o novo bloco da construção do bloco que ele vai propor é isso o PBS pro validador é isso eh então esses atores especializados que são os Block Builders aí eles rodam um

cluster gigante com mon Monte de servidor super potente que vai encontrar melhor combinação possível às vezes vai fiar até as próprias umas umas próprias transações ali para fazer tudo ficar mais lucrativo e e e assim ele vai maximizar o wield do do validador dele eh então você joga a mercado ali e resolve um problema aí Abrindo mão de de uma de uma taxinha que você deixa para esse Block builder e e você assume que você é mais você vai ganhar mais

dinheiro Abrindo mão dessa taxinha mas tendo a otimização então que o Block builder fez do que você montar por si mesmo mas por que que o Block builder conseguiria conseguiria montar um bloco mais lucrativo do que o seu bem além de algoritmos que para encontrar a melhor ordenação possível para para ess pras transações de um bloco ele também pode ter acesso a um Order Flow privado né tipo uma privada que os os usuários dele que conhecem ele enviam as transações para ele eh que não tão na mpol pública que o seu proposer tem acesso então no final

das contas você pode ganhar mais grana desse jeito mas por que que um usuário em vez de enviar transação para uma mol pública eh do protocolo de eum ele teria ele confiaria num Block Builder que que que pô Quem é esse cara né Ele não conhece bem existe sim um aspecto de confiança mas eh esses Block Builders eles propõem umas features que não TM eh essas garantias criptográficas Mas eles nunca quebraram essas promessas né então é uma relação

de confiança e e que você abre mão de ou melhor você aumenta um risco para você em troca de talvez o cara não não exercer mas se eles se ele mantiver todas as promessas dele você ganha umas features por exemplo não ter não não ter a sua transação pendente pública ou seja eh ninguém pode ver a sua transação antes dela ser incluindo no bloco e sei lá fazer o tal do sanduí ataque ou eh no caso tem um tem uma outra feature legal também que eles não incluem as

transações que falham então se você enviar uma transação que ia reverter não inclui então você não gasta Gas com uma transação que você fez alguma coisa errada eh então pô isso é da hora por exemplo se você tá usando um amm tipo uniswap da vida e e você vá lá no seu metamask e muda o RPC que você vai enviar sua transação em vez de enviar lá pro infura sei lá que que você usa você envia pro RPC do flashbots você seta sua sua slip para zero e pronto meu você ou sua transação não vai ser incluída ou você vai pegar exatamente o preço que você esperava o

bfit e Então essas Essas são as features dasp da perspectiva do usuário que o MV Boost expõe na Perspectiva do searcher né Primeiro vamos vamos falar que da perspectiva do Boost searchers e usuários normais são a mesma coisa né eles só estão enviando transações só que a MV Boost além de aceitar uma transação normal ele também aceita uma uma primitiva que eles inventaram chamado bundle e o bundle é literalmente um Array de transações é um conjunto de transações ordenado E ess e esse Array

eh quando você envia para m Boost os Block quando você envia pro seu Block builder eh eles o o Block builder eh promete juradinho né porque não tem eh garantia criptográfica nenhuma mas ele promete para você que um eh esse esse bundle vai ser privado dois que a ordem vai ser respeitada e eles vão ser contigos então não vai entrar uma transação entre dentro da entre as suas transações uma transação de uma terceira

pessoa né Eh e se alguma das transações falharem nenhum dos nenhuma das transações que você enviou nesse conjunto vão ser incluídas eh Pô então isso é o paraíso do do bot de MV né porque se ele quer fazer um sanduí ataque com a sua transação ele vai montar duas transações e botar a sua no meio eh só que se a transação de baixo que a transação que mede se deu se deu lucro ou se deu prejuízo eh falhar avisando que deu prejuízo ele não inclui nem a última nem a do meio nem a de cima então abaixa muito o risco do do bote né

Eh dessa maneira o MV Boost ele ele faz sentido para todos os participantes né pro usuário pro searcher e pro validador e já que ele consegue atrair esse Order Flow Order Flow privado e isso acaba atraindo validadores para usar MV Boost no na operação deles da hora gente ti uma pergunta aí gostaria legal de é isso que falar o Rob tá com a mão levantada então ah não vi é pode pode me interromper po agora oi ô uma dúvida que eu tive o searcher ele é equivalente ao

proposer só que é é uma categoria Por que que tem não o o searcher é é o é o bot é o é o bot do do operador de MV ele é o cara que que tá inspecionando a mpol ali e tentando extrair ganhar grana com alguma arbitragem com alguma liquidação tá ligado isso mas o Band que ele ele não está propondo falando ó é o seguinte achei aqui uma ordenação legal E aí ele manda pro builder não é mais ou menos esse papel que ele Ah não é é assim tipo quando a gente fala de proposer é o proposer é o cara que tá propondo um bloco inteiro e esse bloco ele é composto de

bundles e de transações individuais tanto de tanto que da mpol Pública normal quanto da da Main Pool privada que você enviou lá pro flashbots da vida pro piver build ou outros Block Builders eh então o proposer é o cara que conversa desculpa o Block builder é o o cara que conversa com o proposer e o e o papel do proposer é publicar um novo bloco com headers do bloco e tudo mais paraa rede de outros nós de de etherum tá ligado ah beleza Tá bom então não necessariamente Pode ser que ele assuma o mesmo papel se ele for um searcher que propõe um Band que ocupa um bloco

inteiro ele poderia tá atuando como proposer mas não necessariamente ele pode ser um searcher que envia pro propos ele pega mais outros searchers ali ele vê o que faz mais sentido e aí ele é a ordem é searcher Block builder proposer rede Beleza então o proposer eh ele é o cara que foi escolhido aleatoriamente pela rede né então a cada duas epox a cada duas epox que são tipo uns 15 minutos mais ou menos rola um R Rand lá na na na rede e e fala assim Ah beleza o próximo o próximo bloco vai ser proposto pelo pelo do

Joãozinho pela Alice o depois pelo Bob depois pelo Charlie E aí ele fala dos n blocos pra frente e e esses vão ser os propos E aí a Alice Fala Putz eu não tenho nem hardware e nem acesso ao wf privado do Flash Bots eu vou leiloar esse meu direito de p o próximo bloco para os Block Builders aí os Block Builders eles têm acesso aos bundles enviados pelos searchers para encontrar um bloco mais lucrativo do que o bloco mais Óbvio tem Ah tava entendi eu tava invertendo é o builder então aqui beleza boa alguém mais ninguém mais tem

nenhuma pergunta aqui eu tô minimizado aqui de vocês aí eu não vejo as mãozinhas Então se quiser só abrir o áudio e me interromper pode interromper legal então eu vou Pensei aqui falar um pouco sobre as dinâmicas de de da competição entre os searchers né que são os botes que ficam eh procurando jeitos de ganhar eh de ter lucro em cima da de uma certa ordenação de um certo trade algorítmico eh na na rede então quando um searcher ele implementa uma estratégia que é só

dele ele inventou ali pô ele não tá competindo com ninguém então ele nem precisa nem pagar muito Gas ele paga o mínimo de gas ali que a transação dele vai ser incluída lá no final do bloco não vai ter problema nenhum ele vai ter o lucro dele e ele vai sair super feliz da hora e é é isso não vai durar muito porque se ele tiver ganhando bastante dinheiro tem uma galera lá com a lupa no no e Scan olhando cada transação e vão perceber que me pô que que é que estratégia é esse desse cara aí Eh aí eles vão lá vão decomp seu contrato vão ver as chamadas externas

que você faz aí vão entender pô o cara tá arbitrando o openc com o Blur sei lá aluma coisa assim eh ah pô tá dando grana vamos copiar aí vai lá acorda uma estratégia parecida e e começa a ter uma competição naquela estratégia né E quando você tem dois ou mais searchers eles conseguem competir de dois jeitos um e o principal é o quanto de lucro ou melhor Ah deixa eu explicar uma coisa que que eu pulei se você tem dois Bots tentando emplacar

a o mesmo MV em cima da da mesma oportunidade provavelmente ninguém vai deixar dinheiro na mesa né ninguém vai falar assim pô eu vou pegar metade dessa oportunidade e deixar a metade para para um estranho que rola é você Coda para extrair todo o valor possível [Música] e então só um deles vai conseguir pegar o lucro daquela transação específica e quando quando isso acontece Como que o Como que o Block builder

escolhe qual das transações que estão competindo pela mesma oportunidade vai ser incl eh vão ser inclusas no bloco bem ele vê quem tá pagando mais para ele na forma de de tips normalmente né Eh [Música] eh então tipo na forma de gas né você paga o a base fee e a tip lá né e ou você faz um transfer direto pro pro endereço do Block builder eh então se você tem uma transação lá que dava um lucro de 100$ que deveria dar para você um lucro de $1 mas quando você vê a sua transação

não a sua transação não foi incluída porque um competidor chegou lá e falou assim pô desses $1 eu vou ficar com 70 e vou dar 30 pro pro pro Block builder Aí você olha e fala assim Putz esse cara tá competindo comigo e se eu não fizer nada aqui eu vou não vou ganhar mais nenhum dinheiro bem É melhor eu diminuir minha margem de lucro em vez de ficar com 100 para mim agora eu pago 50 pro pro Block builder e fico com 50 para mim aí o cara lá do outro lado vai falar assim nossa agora ele tá pagando 50% eu vou pagar 70 aí rapidamente isso converge para pros

dois estarem pagando sei lá 99 100% da 9999% do lucro até que chega o cara e fala assim ah eu odeio esse meu competidor tá roubando todo o meu lucro eu prefiro que nem eu nem ele tenhamos lucro nenhum vou botar 100% e esse cara eh que sofra e E aí pronto acabou o lucro pro searcher e o lucro tá indo todo para quem pro Block builder que tá encaminhando a maior parte do lucro pro proposer que é o cara que tá rodando o nó lá eh participando da rede então é uma corrida pro pro zero lucro quando você tem uma estratégia eh competitiva Assim entre estranhos né Tem

um uma história muito legal que o o Bert Miller que é um cara fodão lá do do flashbots conta que quando lançaram o Swap V3 eh poucas pessoas sabiam fazer eh sanduí ataque no V3 e arbitragem no V3 e Então tinha S lá tipo três ou quatro players que tavam competindo pelas mesmas pelas mesmas oportunidades e aí quando chegava quando chegava um novo Player ali emplacando novo novos bundles e aumentando a tip que eles davam pro pro pro minerador os

caras entravam no discord do flashbots colava o endereço do cara e falava assim você tá maluco Abaixa essa tipe aí deixa todo mundo em 60 70% sei lá quanto e que aí todo mundo ganha dinheiro isso é tipo um um um um exemplo de de exceção à regra Mas chegou uma hora que a quantidade de pessoas fazend essa estratégia ficou tão grande que eventualmente eles não conseguiram mais coagir todo mundo a manter o mesmo preço e aí agora a essa esse pagamento aí tá tá bem alto então a maior parte dos lucros de MV no final das contas vai pro proposer mesmo eh então e principalmente também porque

uma estratégia que é exclusiva sua ela vai ser rapidamente descoberta e copiada e a competição eh vai fazer com que esses lucros cheguem para parto de zero e você vai ter tipo Talvez um Sprint ali de semanas ou alguns meses que você vai ganhar uma grana mas depois essa estratégia vai decaindo E é isso que tem acontecido no nesse mercado boa eh e uma outra coisa que eu queria dizer aqui também é que sim ainda surgem alfas técnicos né tipo estratégias eh novas eh talvez usando certas propriedades do

sistema que não são muito populares e tal mas a o maior diferenciador atualmente é o nível de risco que cada vote escolhe ter para sua estratégia então falando lá do do Jared from Subway né que Putz o cara tava fazendo literalmente tanto Sandu ataque que ele era um dos top eh pagadores de gas da rede durante um tempo na na época que tava explodindo o PEP o o odak lá né esse cara Ganhou muito muita grana bem muitos tokens né Por quê

Porque o que ele o que o Jared from Subway faz não é uma parada técnica super fodona que ninguém mais faz não é isso eh Ele toma muito mais risco de inventário dos tokens dele como assim tipo Se você vai comprar uma memin lá imagina vai comprar PEP Aí você envia um e no uniswap e vai receber sei lá quanto sei lá 1000 PS e E aí você bota uma slipa de lá aí ele pode fazer uma uma um sandu ataque com

você para se você tá enviando e e comprando PEP para você fazer o o preço ficar pior pro usuário você tem que eh fazer um front One enviando eth também e depois do back Run você vende o PEP para ficar com mais e do que antes só que o caminho contrário quando você tá tentando vender PEP para receber e de novo para você fazer pro pro pro bot fazer um sandu ataque ele tem que eh ter o PEP em

mãos para fazer o front Run Então antes da oportunidade de existir ele tem que ter o os os cheat tokens da Vida em mãos então ele ele tá exposto ao risco do do PEP cair o preço desse w up cair o preço e de vários outros tokens que a gente nunca ouviu falar caiu o preço e por mais que ele tenha lucrado os porcento zinhos dele lá fazendo sandwiche atque o preço do Token pode cair e ele sai no prejuízo no final das contas então só para ficar esperto aí que uma coisa é volume de transação e outra coisa é lucro de da da operação né

Eh bem era isso aí falei muit de coisa não não expliquei muito bem o que era sish atque né Eh mas eu separei uns Ops eu separei uns uns linkzin pra gente dar uma olhada na em alguns exemplos do que que são essas três estratégias mais famosas de de MV né e a mais controversa de todas é o sandwich ataque eh eh ch atque é uma é uma estratégia de MV considerada eh prejudicial por

ecossistema e e e talvez aqui que dê mais lucro Inclusive tem esse site aqui cara que é muito bom igeny e eles já fazem vários diagram minhas que ajudam você a entender tudo que tá acontecendo né e Então olha só aqui é uma análise de um sanduiche que o Jared from Subway fez num num certo usuário num pobre coitado aqui que tava comprando esse token chamado kibishi aqui bem tá comprando mem coin tem que levar na cabeça mesmo brincadeira

eh então aqui você tem três transações o front Run e é depois você tem a transação da vítima depois você tem o back Run e o que que tá acontecendo aqui né Eh o Jared Ele usou ou melhor vamos explicar do começo aqui né Esse pobre coitado ele queria comprar essa mem coin aqui sei lá se é mem coin nunca nunca vi esse treco antes e o que ele fez foi enviar essa mem coin aqui pro unisoft V2 essa quantidade em

troca ele recebeu um zth se você olhar na transação dele eu não sei se vai vai aparecer aqui de um jeito fácil mas vamos tentar ô tem berl não iria o iria o Scan eh e se você olhar a transação desse cara quando ele enviou isso não vai ficar muito Óbvio aqui mas quando ele enviou essa transação o que que deve ter acontecido ele deve ter selecionado assim ah quero vender todos os meus kbch aqui sei lá 631 eh kib x e vou receber se aí no unof

deve ter aparecido assim e e você vai receber de volta 0,7 eth e aí embaixo tá pequenininho escrito assim ah slip 2% eh quantidade mínima que você pode receber nessa transação 0 ví 6664 aí o cara foi lá e enviou para mpol pública mesmo então aí chegou o espertão do do Jared e falou bem pera aí eh se eu enviar uma transação antes da dele se eu puser uma transação antes da dele já que ela não tá dentro de um

bloco ainda ela tá pendente eu consigo pagar um pouquinho mais de gas né e emplacar uma transação antes dele fazendo a compra de de uma certa quantidade de de de que que é Ah não ó ele enviou kibs uma certa quantidade de kibs e recebeu uma certa quantidade de eth que fez com que o preço ficasse pior pro pobre coitado aqui que em vez de receber 0,7 por exemplo ele recebeu 0,66 e e o Jared ele recebeu aqui um tanto aqui de de eth né

eh e aí ele coloca a trans ação do pobre coitado no meio da no meio do sanduíche e depois que ele que o pobre coitado vendeu os cheat token dele por e o jered desfaz o que ele fez ele envia um restio de eth e recebe de volta kib chi então nota aqui que ele começou eh com 93.93 e acabou com 93.9 e teve um Lucinho

aqui e essa é a história toda aqui do do sandwich Attack você compra antes vende depois é uma mini estratégia de Pump and DP abusando o as configurações de slip que o que o pobre coitado desinformado lá usou no Unis Swap aqui ó tá vendo Então é basicamente isso eh um um sandwich atack simples né Eh e se você olhar a a transação em si do do front Run tem essa ferramenta aqui que chama Falcon da blockx e é bem

da hora ele também tem o o o grafo o grafo Zinho mostrando o fluxo de tokens de entre as wallets Mas o que eu mais gosto nele é esse invocation Flow aqui que mostra a as calls da transação então no contrato do Jared from Subway eh pô Olha só ele enviou uma certa quantidade de TH e ele fez duas chamadas ele basicamente fez um transfer from pra p do unap V2 com uma certa quantidade de de tokens aqui e invocou o método de

Swap do do V2 e é isso isso é o código do da parte do front Run do código do J from Subway que meu é o top MV searcher do do mercado então pô não tem nada de complexo aqui né Eh tem uma certa complexidade de você decidir qual que é esse número que vai aqui eh qual é esse número que vai aqui no amount out e Mas é uma matematic fazinha que já tá open source em vários lugares e você consegue mesmo se não tiesse Open sorce você consegue só fazer um esqueminha de busca binária e decidir qual que é o

valor que vai maximizar seus Lucas nesse caso e o backround é muito parecido então não não vou nem abrir eh eh e s deix atque é isso tá ligado você ficou monitorando a mpol viu uma transação que tem eh que tava interagindo com o un Swap nesse caso e que tinha um um GAP grande e suficiente entre o preço atual da Pool e o mínimo esperado pelo usuário e operou a pool mandando uma transação na frente da da sua vítima para aumentar os preços para piorar os preços pro usuário para você comprar barato um token e depois vender ele caro

as custas do dinheiro do do pobre coitado então pô Sand ataque é isso arbitragem que talvez seja o segundo maior volume eh de todos de MV eh é uma estratégia bem simples também porque o que você tá fazendo no final das contas ó aqui tem um fluxo Zinho Então esse cara aqui onde que começa esse fluxo começa aqui no é a ordem não é muito boa aqui porque as por causa dos como a implementação do V3 é em como se

fosse um flash L um flash Swap você a ordem do dos eventos fica meio estranha o que esse cara fez aqui foi ele tinha wth ele fez o unwrap dth ou melhor ele fez o wap do do eth dele PR wth ele enviou pro unisoft V3 eh recebeu uma certa quantidade de da que ele enviou pro sush Swap e voltou uma quantidade maior do wth por quê Porque o preço nessa Pool tava diferente do preço dessa e ele só comprou barato e vendeu caro no atomicamente numa transação

só e se você olhar a o invocation flow aqui dessa transação desse cara o que a gente vê é o cara Preparando o terreno aqui para fazer umas contas porque isso aqui foi uma Blind arbitragem já já eu eu explico o que que é eh mas aqui ele ele viu quanto de token tem no sushi Swap quanto de qual que era o preço que tava no uniswap V3 para calcular exatamente quantos tokens ele vai comprar de um lugar e vender no outro daí ele chama o Swap na full do uniswap V3 e aqui é são lógicas do próprio unisoft

V3 que chama um certo callback dentro do próprio contrato desse dessa arbitragem eh e ele usa todos os tokens que ele recebeu para transformar para I de novo e pagar o primeiro sof que ele fez então a maior parte aqui da complexidade do da arbitragem e do do consumo de gas não tá no código do desse desse bot tá lá dentro do Swap do unap tá dentro do do Swap do sushi Swap Então nem tem muito espaço aqui para você fazer Gas golfing e ser super

competitivo no Gas tá ligado E é isso que eu quero comunicar aqui eh e também se vocês não conhecem essas ferramentas aqui elas são muito legais dá para fazer muita engenheiria reversa com esse stack aqui para mim é absurdo ele mostra você consegue mostrar até a quantidade de GS cada parte usou ó então pô só tudo dele aqui foi 200 200.000 guas e esse Swap no unap foi 130 e Pô esse withdraw aqui deth mais 10.000 então não tem muito muito muito room for improvement aqui para você fazer Gas golfing e a

título de curiosidade tem essa terceira estratégia aqui famosa de de liquidação que se desse caso é uma liquidação que rolou na no Av então uma pessoa deu um certo colateral e fez um certo borrow mas o preço do colateral dela deve ter caído E aí ela o colateral dela foi vendido pro fundo não ficar com com débito com ma débito né Eh aqui é um pouco mais complexo essa árvore de de transações mas eh o que rolou aqui cara é basicamente esse Bote ele fica escaneando o o ave para ver quais são a a o os usuários que que tão pertos de

perto de serem liquidados e quando esse usuário pode ser liquidado esse bot ele basicamente pega o eth que ele tem guardado Faz um faz um um Swap pro para pagar na no mesmo token da da posição desse do usuário que vai perder o colateral dele recebe o colateral dele e vem di no sop depois e Então essa esse spec tá um pouco maior mas a maior parte da da da complexidade aqui também não é implementada pelo

código pelo pelo pelo bot tá ligado ó de novo é dentro do uniswap dentro do Av eh dentro do uniswap de novo aqui depois então é bem Straight forward esses esses esses códigos eh aproveitar aqui ó vou vou mostrar para vocês se vocês não conhecem o ean fi Olha só como ele mostra aqui o volume de o volume de de lucro que os os Bots de MV tiveram que que é isso aqui no último mês nos últimos 7 dias

eh majoritariamente Arbitragem e sanduíche e tem um pouquinho de liquidação mesmo com toda a volatilidade que a gente viu nos últimos dias e aí aqui ó ele ele vai escaneando a blockchain mostrando por bloco ó arbitragem sanduíche é bem bem da hora ele tem até um leaderboard aqui ó que ele mostra tipo os principais contratos que estão fazendo mais grana de novo nos últimos S dias se ele responder hoje o se ele carregar ainda hoje seria bom Ó tem uns Bots que até fecham uns bundles que que dão prejuízo

ó interessante né e a maioria da das transações são de lucro baixíssimo entre 0 e 10 ou entre 10 e ó e bem ele não tá querendo carregar aqui ó lá carregou só eu reclamei talvez todos os tipos que não estej carregando bem Ó então aqui em arbitragem cara uma semana 00.000 $1.000 40.000 .

mil provavelmente de operadores Diferentes né então beleza esse cara aqui ganhou mais grana mas pô Olha segundo terceiro quarto quinto sexto é é bastante é relativamente bem distribuído né a o lucro Entre esses players bem então já que a gente passou pelas estratégias principais eh vou falar um pouco sobre o os Order flows e depois a gente vai para pro Walkthrough no código do do projetinho que eu tinha feito então tipo se vocês não conhecem o uniswap x eh é um um produto que o que a

Unis Swap eh publicou acho que foi em junho julho Ach foi em Julho eh que é que eles lançaram ano passado e de intents né então basicamente é um limit Order que você publica numa api proprietária do uniswap não é dentro do protocolo det e você fala assim ó tô querendo trocar um eth por 2200 de usdc e fica lá pendente imagina que o preço do usdc tá tipo 2100 aí ninguém ninguém quer pagar mais caro do que eles poderiam pagar só indo

direto lá numa P qualquer de amm né E aí essa essa essa essa ordem fica meio pendente só que ele tem esse lance de leilão Holandês que o o quanto ele quer receber eh por esse um eth vai diminuindo então ele começa NO 2200 mas depois de um bloco vai para 2180 depois 2 160 até chegar numa hora que fica marginalmente eh lucrativo para alguém fechar essa trade E aí qualquer bote pode pegar essa essa Order submeter lá no no router deles e vai conseguir fechar essa

transação e Pô isso tem muita cara de MV Mas isso é o MV que parece do bem né parece um MV de de de valor positivo para pro ecossistema porque desse jeito imagina que se em vez de ser th fosse wbtc por exemplo o cara não preca nem ter eth na carteira para que esse Swap aconteça obviamente ele deveria ele vai precisar ter eth antes para fazer o approve da pro pro un poder mover os tokens dele mas depois disso ele não precisa ter e na carteira mais então

eh e El eles pretendem abrir essa essa plataforma até para swaps cross chain Então você falar assim ah eu quero vender um e por 22 usdc mas eu quero receber esses do 200 não na mainnet que eu tô que eu tenho meu eth mas sim sei lá no arbit então pô uma rede aí de de de bots que que consegue fechar execução no preço mega bom pro usuário eh e prova que meu se você desenhar um protocolo sabendo que o MV vai existir

já que tentaram bastante reduzir a quantidade de MV no na rede e não conseguiram eh você pode tomar ele como vantagem né e não tratar ele como feature né E não como bug legal e um outra coisa que uma outra ferramentinha lançada ano passado também pela flashbots que eu acho bem da hora é o MV share eh é um é um sistema que a flashbots criou também para fazer com que o lucro do MV eles eles ele não fique só distribuído entre o

bot e o e o minerador e bem se o MV é extraído das transações do usuário uma o MV deveria voltar pro usuário eh E é isso que o MV share faz como que ele funciona basicamente quando você manda a sua transação para uma mpol privada atualmente você manda ela completamente eh oculta né não aparece nada para ninguém até uma hora que algum alguém que que tem integrada MV Boost consegue

publicar um bloco com com ela dentro só que às vezes você pode deixar dinheiro na mesa desse jeito né porque se você fez uma um trade que desbalance eh um par de PS eh só vão descobrir quando o bloco já tiver fechado e esse lucro vai ser distribuído entre o minerador e o e o e um bot que encontrar essa oportunidade mas se você você pode você tem tem umas opçõe zinhas que você consegue usar lá na no RPC do do do flashbots que você concorda em publicar alguma parte da alguns dados da

sua transação Então eu acho que eu até Deixa eu ver se eu aqui eu fiz um negocinho best aqui e lê desse Order flow do MV share então basicamente ele conecta no client do do M share e e ele lê as transações que estão sendo publicadas lá então vou maximizar aqui meu terminal aqui ó aí tem um monte de transação que as pessoas figuraram para não não compartilhar nenhum dado da da transação E aí acaba aqui Oi aqui não tá

aparecendo é tá do do Pera aí eu vou vou parar de compartilhar Vou compartilhar eu faço Tent tá assim ah desktop pô beleza aqui então só abrindo aqui só voltando então os passos é script destin aqui que se conecta D volta um desculpa dá um passo para trás o que que você vai mostrar boa eh eu tô mostrando aqui o MV share que é um sistema criado

pela flashbots para compartilhar os lucros de MV com os usuários que geram a oportunidade que geram o MV né então Eh quando você configura o seu metamask para você enviar as transações em vez de PR mpol pública você envia pra mpol privada da flashbots do dem M Boost na verdade né Eh você por default não compartilha nenhum dado sobre sua transação só que se você não compartilha nenhum dado sobre sua transação é impossível você estra MV daquilo né praticamente

impossível então não tem como voltar nenhum MV para você a flashbots criou MV share que é basicamente uma ferramenta que permite que os usuários quando usam a mpol Privada do do do MV Boost eles eles possam optar por compartilhar parte dos dados das transações deles então vamos ver se apareceu então eu poderia usar o MV share sem ser programador até né Poderia só conectar meu metan exatamente no RPC deles e eu já poderia estar ganhando um cashback aí das transações isso você ganh cashback

deixa eu ver se aqui ó aqui tem um bom exemplo de uma pessoa que compartilhou só eh Quais qual evento é emitido a partir das transações dela mas ela não compartilhou Qual foi o Caldeira da transação dela qual função do contrato ela chamou é nem para qual contrato Ela enviou Ela só compartilhou o o endereço do do emissor do evento e qual foi o tópico zero do evento né O que é determinado só pela assinatura do do evento um outro exemplo aqui que é a pessoa com certeza muito mais agressiva que ela decidiu compartilhar todos os dados da

transação dela então a transação dela não é nem pública mais porque além dos logs eh dos eventos emitidos né pela pelo pela transação dela ela compartilhou Caldeira inteiro então dá para se aqui for um um um Swap da vida eh você consegue saber qual foi o token que ela trocou Qual foi a quantidade que ela trocou e se você maquinar o suficiente você consegue até dar um front Run nessa transação eh bem então isso mas front Run front Run é permitido no no no no MV Boost é é no MV Boost é permitido nesse MV share

não é permitido mas se você assumir um pouco de risco você consegue dar o front Run só fazendo na moda antiga né de enviar uma transação com mais Gas do que a transação dessa pessoa e ela vai ser incluída em cima Ah tá meio que vai passar suficiente então a única coisa que você não compartilha que você nunca compartilha aqui é a assinatura da transação para você não para não ficar muito fácil você dar o front nessa transação então então o ponto é que você usando essa esse n share aqui qualquer usuário mesmo usuários não te conseguem

configurar o nível de privacidade que querem E por que que você compararia esse nível de privacidade porque comparando por exemplo só os eventos que foram emitidos nessa transação Você já consegue saber bem pô isso aqui foi umap no unisoft V3 eu não sei se é realmente mas vamos pegar esse endereço aqui e jogar no e SC Scan Vamos ó unop V3 Então essa transação ó essa já faz um tempo que essa transação

foi publicada né talvez ela já esteja pública então no MV share a gente só conseguiu ver o quê uma pul do SAP V3 isso aqui é o tópico zero de um de um Swap provavelmente Agora se a gente pegar o a hash daquela transação ó ela nunca foi incluída num bloco então talvez ela fosse falhar ou alguma coisa triste eh e tem a opção de não compartilhar nada tem a maioria deles são assim ó tá vendo aqui tem ó hash aí tem um hash de uma transação mas não tem o não tem tem fun não tem nada só tem nul E aí nesse caso se você não compartilhou nada se

você não compartilhar nada você ainda ganha o cashback é que é É muito difícil você tipo um bote extrair alguma coisa disso né você não sabe nem se rolou um soap Se não rolou você só rola o cashback se se com a sua transação o cara consegue colocar ali ou reordenar e por isso extraí valor do bloco E aí ele te dá a parte do valor é só caso aconteça exatamente Ah tá ex exatamente então é o incentivo pro usuário compartilhar alguma coisa né e mas ao mesmo tempo tentando proteger um pouco da privacidade do do usuário eh legal então por que que eu mostrei

isso aqui porque quando eu fui fazer esse experimento de de criar um Bot de MV eu bem não vou fazer um Sand ataque ou uma arbitragem dessas clássicas porque tem muita competição e tinha acabado de de ser lançado o MV share né ele tava com ele tinha um volume bem baixo na época então eu falei bem vou tentar atacar esse long Tail aqui de de de estratégias para ver se consigo placar pelo menos umas transações e o MV ele é uma mudança de paradigma forte em elas são as estratégias mais comuns de MV porque na estratégia mais comum de

MV Você tem todos os dados sobre a transação você sabe tipo se se se a gente tá falando de fazer um back Run de arbitragem depois de uma transação de um usuário eh na na arbitragem clássica você vai saber exatamente Quanto que o usuário tá comprando antes da da sua transação eh você sabe tipo qual token ele tá trocando um qual token ele tá dando de de entrada e qual token vai ser de saída eh então você consegue simular a transação dele e calcular off chain a quantidade de token ótima para maximizar seu lucro e quando

eh e no MV share Já que você não tem a a transação do cara para você simular você tem que fazer tudo on chain Então muda bastante o jogo eu pensei Ah bom é um jeito de de de ter um espacinho nesse landscape competitivo aí então eu codei um um botzin que basicamente ficava ficava eh listening esses eventos emitidos pela pelo client do do MV share E aí toda vez que ele recebia um evento desse tipo que tem os logs do da da transação especificados ele via se era uma uma

transação de no uniswap no ou no fork de uniswap e otimamente tentava fazer a fechar uma arbitragem com todas as outras PS possíveis e se eh Se desse errado o MV Boost não [Música] não não inclui a transação do bloco então não tem não tem prejuízo pro meu bot mas se der certo D lucro então foi basicamente isso que eu fiz então só um overview aqui da anatomia de um Bot de back Run né ele tem uma parte

que é um listener do evento alvo e no nosso caso aí foi os eventos do MV Share ele tem um Smart Contract que você tem que deployar com a lógica customizada que vai Executar a as operações que você quer então no caso da arbitragem ele vai fazer pelo menos dois swaps né um numa Pool e outro no outro um comprando outro vendendo eh e aí depois voltando aqui pro seu pro seu script né você vai ter que construir o bundle com a transação alvo em cima e a sua seu back Run embaixo e enviar o o bundle pro pro Block builder Essas são

as três partes que são obrigatórias né Nossa Senhora Aparecida aqui é três e aqui é quatro e essa quarta parte aqui de alerta monitoramento é meio que opcional Mas você quer saber né quando que você consegui emplacar uma transação ou não Ou se você achava que ia emplacar uma transação não emplacou você quer saber tio Quem que fez E por quê para você tentar olhar lá na Transação da pessoa e fazer uma engenharia reversa e entender o que que porque que ela ganhou de você eh Então na hora de construir a transação que vai que você vai incluindo no seu back Run

eh você tem que normalmente né você simula a transação pública e identifica todas as pul que ela toca e o estado final de cada uma delas e aí você vai testando uma por uma para ver se tem alguma oportunidade de você comprar barato em uma e vender caro em outro lugar eh e se tiver você tem que calcular a quantidade de token que maximiza o lucro e usar esse valor para de fato enviar uma transação eh executando Exatamente isso eh Então vamos ver isso na prática né então já que eu mostrei aqui o fechar tudo aqui para F legal a nossa

exploração do código [Música] eh esse bote de arbitragem Blind então né que que eu fiz nesse nesse que que esse bote aqui então é uma parte a parte dele que é em typescript e o que ele faz basicamente é ficar esperando o um evento do MV share um desses aqui quando esse evento chega eu vejo se eh Se é um desses desses hints né um desses eventos que tem os logs ou não

então esse log aqui passaria esse aqui passaria e esse aqui não passaria Então se o hint ti não tem nenhuma informação eu só passo batido vejo se é um Swap que tá acontecendo nessa transação ou não basicamente olhando essa has de evento que é essa R de evento aqui eu sei de cabeça que é o o a HAS do Swap no unap V3 porque é d78 já olhei muito isso e depois que que eu sei que é um Swap no uniswap e e que tem informação suficiente para eu tentar

eh otimis gente criar algumas transações de back Run para esse carinha eh eu tenho que saber se Quais são as pools no uniswap e Forks que tem esse par de desse token que tá sendo trocado com wth porque eu sempre só faço com wth porque é mais fácil de você determinar se você teve lucro ou prejuízo porque você tá pagando Gas em eth né então se você denominar seu lucro em sei lá Curve por exemplo você tem que saber qual que é a taxa do Curve o preço do Curve para

você determinar se deu lucro ou não ô papaz oi então esse evento que você ouve do MV shares você não precisa ficar monitorando a m Pool ele meio que tá fazendo isur você exato Exatamente é exatamente ele tá ele tá monitorando a Main Pool privada do do flashbots Entendi então quem tá usando como RPC o flashbots e tá enviando e tá pendente essa mpol secundária aí é esse evento triga toda vez que chega alguma coisa lá isso só que se você não deu opting por e eh publicar mais informações a única coisa que a pessoa recebe é isso aqui

que não dá para fazer nada Ah boa por isso que você coloca o wif se tem evento continua se não ignora aí não dá fazer nada beleza ex é E aí basicamente aqui eu busco todas as PS do Unis Swap que tem esse par de tokens também e E aí eu eu eu monto nesse caso eh uma tentativa de enviar eth e receber a shitcoin num lugar e depois enviar shitcoin e receber a a o o wth em outro ou invertido porque eu não sei nem Qual que

é a direção do Swap que essa pessoa fez eu só sei quais são os tokens daquela Pool e que ele fez um Swap mas eu não sei se ele trocou shitcoin por wth ou wth pro shitcoin então eu faço todas combinações possíveis de todas as pools que tem esse par Em ambos as direções E aí eu monto a minha transação para ser enviado para assinar a transação né então tipo o tu aqui ó é o endereço do contrato do meu da do meu contrato do meu bot o from é o o meu endereço mesmo o nons eu eu busco aqui do do current Block eh e aí aqui eu fao

aqui eu monto a Caldeira Tintim por Tintim tá vendo ó function name E aí os parâmetros da minha função que são basicamente as duas PS que vão ser arbitradas a quantidade de tokens que eu vou comprar mas aqui eu mando zero Tá vendo porque aí eu eu delego pro próprio Smart Contract calcular qual vai ser essa mounting vou mostrar mais na parte do solidity e aqui eu tenho parametrizado quantos por cento do meu lucro eu vou pagar de propina pro pro minerador eh aqui o velho né a quantidade de TH

que eu vou mandar aqui não é nada quantidade de gas aí aqui eu seto tudo para zero porque e eu seto tudo para zero porque o o o jeito que eu pago o minerador o Block builder na verdade né Desculpa é por meio de um transfer no final da minha transação vou mostrar na parte do Solid também assinei a transação e esse aqui é o bandole que eu vou enviar pro pro Block builder então esses aqui são os Block Builders que eu envio ó flashbots rsnc Beer builder Builders o 69 Titan e assim por diante e o b aqui precisa não dá para ó

manda para todo mundo aí quem que você por que que vocês Ah eles não têm essa propriedade eh e aí aqui no B eu envio o a transação original né que é o esse esse valor aqui o hash da do evento e depois logo depois por isso ch uma back Run a a transação minha assinada fazendo o fazendo a arbitragem e pronto basicamente é isso aí eu mando o bundle pro MV share e rezo para dar

certo então a parte do typescript é mais ou menos isso ah Tem uma parte que eu não mostrei que tipo inclusive o que me fez desistir de de codar tudo do zero junto com vocês que é que você tem que ter a lista das PS do Unis Swap né então tipo eu AC para fazer esse bot eh Tomara que não Crash aqui hein mas eu usei o o subgraph do do Unis Swap e do sushi Swap e do P Swap se lá de vários Forks aí e para listar todos que tem o que tem todas que tem wth

ó essa aqui é do tipo V2 e aqui do tipo V3 e para eu poder saber quais são os pares que eu posso tentar eh Então essa a parte do typescript e acho que a parte mais interessante mesmo é a do é a do do solidity então eh a minha aqui eu começo só eh declarando umas interfaces né do unof V2 Unis V3 rc20 e vamos pra parte do

Execute aqui então essa é a minha função principal que eu recebo então lembra a uma pull outra pull quantidade de de de tokens que eu vou comprar porcentagem que eu vou pagar pro minerador pro Block builder desculpa e esse bitmap aqui deixa eu mostrar para vocês eu fiz uns facilitadores aqui como vocês podem ver nem é super otimizado para para gess e aqui eu vou dar um exemplo para vocês arbitragem V3 para V2 que tem o wth como token zer s e esse isso aqui é só um bit

mapz inho para encodar vários várias flags em uma só em em uma variável só por isso que que tem essa esse parâmetro Extra Cadê o Execute aqui boa então eu começo buscando Quais são os valores quanto de quanto que tá o preço em cada uma das puls que eu que que eu vou fazer Arbitragem e aqui como eu tô mandando zero eu tenho essa função de get optimal amounting lembra lá no começo que eu

falei que você tem que estudar o o código do do do do protocolo alvo que você vai usar do MV e entender tipo como ele funciona tal Isso aqui é uma IMP isso aqui tipo é uma equação que eu tive que eu que eu encontrei Tipo na mão fazendo a a conta para para saber qual que é a saber qual que é a quantidade ótima de tokens você compra de uma Pool e vende na outra para maximizar seu lucro isso acontece quando você equaliza o preço das duas e e mas agora o unap abriu um

um um um repositório com exemplo exatamente com essa equação aí então todo Alfa que eu tinha foi embora que ficou tudo público [Música] eh então foi trabalho to eh então a depois que você decide Qual é a quantidade ótima de tokens que você vai comprar nesse caso aqui ó V3 para V2 e esses outros zfs aqui é basicamente tipo implementações diferentes do unisoft né de V2 para V2 né comprar numa Pool de V2 e vender em outra Pool de V2 ou comprar numa Pool de V2 e vender numa Pool de V3 ou colocar o wth no primeiro token ou no segundo token só

detalhezinho de experimentação mas a lógica é tudo a mesma eh nesse meu nesse caso que eu quero mostrar para vocês você tá comprando um um shitcoin aí no na V3 e vendendo ele na V2 para acabar com mais wth do que você começou então aqui a única coisa que eu faço é chamar o Swap na no no V3 passando o quem que eu quero que seja o recebedor dos tokens né que que o que essa P vai enviar uns parametro inhos tipo ah é token zero pelo token um ou ao contrário né detalhes de implementação de como fazer um Swap no no Unis Swap

e e o de aqui para eu carregar dados de contexto dessa execução então com isso eu faço um Swap no unap V3 e não sei se você já fizeram isso antes mas quando você faz um Swap lá no no V3 é sempre um flash Swap né se você integra direto com a pool Então o jeito que ele faz Mas é ele te envia os tokens que você vai receber antes de você enviar os tokens que você que você deve enviar Mas aí obviamente no final ele chama esse callback eh e se você não enviar esse callback aqui E se você não enviar dentro dessa função ele reverte você não consegue

extrair os tokens né E aqui então eu tô no callback doap V3 ele já me enviou os tokens o shit Token aqui que eu tô que eu tô arbitrando e eu uso esse cheat Token para fazer o a o sop ao contrário no no unop V2 e envio isso pro pro un B3 de volta como pagamento então se eu receber mais do que eu do que eu tive que pagar eu vou

sair no lucro eh e depois que essa operação toda acontece depois que eu chamo Swap rolo callback eu tô aqui ainda né e a última parte do meu código é checar se eu fiz uma operação eh deu lucro e para eu checar se a minha operação deu lucro eu basicamente tenho que ver quanto de eth que eu recebi quanto de eth que eu gastei e eu tenho que deduzir o quanto de gas que eu gastei então eu determinei aqui nesse meu código que eu sempre mando um Gas limite de 1 milhão de

gas aqui e quando eu chamo no no meu código do do typescript aqui ó g limit Eu Sempre mando com 1 milhão foi o jeito mais preciso que eu encontrei de de calcular o quanto de gas eu tô gastando aí eu uso code aqui de gas left para saber exatamente quanto de gas eu eu gastei multiplico pelo Gas Price e mesmo assim não é super preciso porque no final de cada transação tem aquele tal do refund da do do Gas que você usa né dependendo se você seta um Storage para zero ou não e outras outras eh operações desse tipo né calculo quanto de aí desse jeito

calculei quanto de lucro a minha roll né A minha transação teve aí aqui eu uso o a porcentagem que eu usei de parâmetro lá no começo para decidir quanto que eu vou pagar para coinbase aqui de novo aqui Ou melhor aqui se o meu lucro for negativo já que eu usei um o int ele vai reverter não preciso nem fazer um if Profit menor do que zero revert né Eh porque aqui ele vai dar um underflow e e já vai reverter minha transação sozinho então se tiver lucro eu calculo quanto que eu quero pagar para coinbase para pro Block builder né no caso que esse endereço aqui esse endereço aqui é o do Block builder e transfiro a quantidade

de dth que eu quiser para lá e PL se você encontrar o a se você der sorte suficiente eventualmente alguma dessas transações vão ser executadas com sucesso e você vai ter uns lucinhosanto ali uns um dia maiores outros dias menores eh mas também nada para ficar muito rico pelo menos não com essa estratégia eh e a última coisa de código que eu queria mostrar para vocês é o o teste aqui do do foundry eu tinha fiz com teste tudo bonitinho para para ficar para garantir né que é

maior caro Deploy Então tem que ganti que vai tudo bonitinho e você não não ter mais preju deplo contrato do que todos os lucros das suas arbitragens Eh ó se liga eu tô fazendo um fork Ops Tô fazendo um fork eh A partir dessa transação um fork de produção e começa exatamente acho que depois dessa transação não tenho certeza vamos ver ó n Scan eu busquei um cara que já tava fazendo uma estratégia parecida [Música] e e implementei uma estratégia eu copiei a estratégia dele né E aí eu basicamente

fui aquele cara que copiou A Estratégia do outro aumentou um pouco a porcentagem e ficou lucrando um tempo enquanto ele não enquanto ele não aumentava dele até que eventualmente os dois convergiram para 100% e eventualmente eu desliguei meu bote nunca mais usei de novo eh então nessa transação aqui é a transação da arbitragem já é a transação da arbitragem já então não vai ter que ser a transação anterior a ela position Block 83

copiar esse bagulho aqui então esse cara aqui então o que aconteceu foi essa pessoa foi lá e comprou 1000 gastou 1000 usdc parece para comprar eth não esse unification não sei que lá fund 4500 shitcoins aqui por usdc eh só que isso deve ter desbalanceado alguma cool Então esse essa esse token aqui fund ele tá no unap V3 mas

aparentemente ele também tá no sa Swap nunca ouvi falar eh e ele provavelmente deve ter uma liquidez baixa então alguém foi lá comprou 000 no numa Pool E aí o preço Ficou muito diferente da outra e o que fez com que a surgisse essa oportunidade de arbitragem Então essa pessoa aqui que eu não sei quem é ela percebeu essa arbitragem fechou esse GAP e lucrou uma grana nem sei quanto de grana eles lucraram parece que ó uns 0 1

130 uma grana considerável e pagou uma certa taxa pro pra flashbots tá vendo e eh eu decidi copiar essa transação então eu fiz um Fort aqui da de produção exatamente nessa nesse lugar entre a transação do cara criou a oportunidade mas antes da arbitragem desse competidor ser incluída e enviei a minha transação lá então eu começo só fazendo funding da minha Wallet Deploy o meu contrato setando qual vai ser a pool que eu vou comprar qual vai ser a pool

que eu vou vender setei o gest price para um aqui não sei porque tão baixo e enviei a transação pro meu contrato de teste aqui né né de novo setando o gest limit para 1000 passando a as pools o amounting como zero para eu ter que calcular lá na na no smart Contract a quantidade ótima e enviando 50% do meu lucro pro Block builder e depois aqui eu só calculo a quantidade de eth que eu tenho a quantidade de wth que eu tenho antes depois tal tal tal e vejo se o o meu se eu tive lucro ou não Então essa

inclusive foi minha primeira oportunidade para usar founder foi bem legal porque tive pude aprender MV e found junto então super Recomendo vocês fazerem esses experimentos aí aqui ó tô rodando Então esse teste né local par local pá Aqui tá o o stack Trace de tudo que aconteceu nesse teste Deploy e dando funding na minha Wallet tal tal tal e a execução começa aqui a execução dessa minha arbitragem ia ter gastado 144.000 guas at esse cara aqui gastou 173.000 então tipo pô ele tava lucrando

rodando a estratégia dele eh com gastando mais Gas do que eu gastei num contrato que meu Ah não desculpa essa aqui é da aragem essa aqui já é da arbitragem né Eh gastando mais Gas do que o meu contrato eh só porque eu fiz algumas escolhas que nesse caso facilitaram que diminuíram o consumo de gas da da Minha estratégia e aqui de novo só aqui ó vendo Qual que é o preço em cada uma das pools cada uma das duas pools né executando o Swap o o callback do Swap aqui o Swap na outra Pool e assim por diante

e passou dando lucro Então é isso gente Tipo pô MV não é um bicho de sete cabeças não é Rocket Science eh é relativamente difícil porque tem bastante coisa para fazer e dá bastante mão de obra você codar cada estratégia mas e eu acho que não é a coisa mais complexa que você vão fazer na vida de vocês e mas mais importante do que isso uma coisa que eu queria uma opinião minha aí é que cara dá para você construir protocolos em Defy em crypto que abracem MV como uma feature né e não como um bug Porque pô imagina se você é

um usuário de Defy E aí você quer comprar um certo token lá e você tem que ficar cabreiro para ver se tipo se você vai ter um pagamento maior no Curve ou no un V 3 ou no Unisa V2 ou sabe onde for pô essa esse serviço de desses árbitros de deixar os preços Racionais eh ao ao longo da do da dos diferentes amms que tem aí é um serviço da hora né que que te poupa o trabalho de você tem que ficar se estressando para caçar o melhor preço ao longo de Defy inteiro né eh bem é isso

galera falei muito falei quase duas horas aí eh se vocês têm alguma pergunta querem interagir alguém com alguma pergunta Cara eu foi monstro p foi muito bom cara foi muito bom muito Fábio a Fábio eu sei que já mexia com com MV antes de ser cool né Eh Quando Você mexia Fábio era era era diferente se se você puder falar né não queria eh te pressionar nada mas você você mexeu com MV antes do merd é isso Beleza Antônio quer falar alguma

coisa enquanto isso E aí eu tenho uma pergunta primeiro parabéns a minha muito show aação peguei só um pedaço mas minha pergunta é como é Por que você perde dinheiro tipo assim eh você ah e assim fazendo dando mais detalhe tipo não é possível você forar o bloco atual eh e verificar se a sua transação vai ser profitable e reverter caso contrário tipo o flash Boss eles não só incluiria sua transação caso ela seja profitable ou ou você só perde dinheiro se alguém

front Run na sua estratégia Essa é minha pergunta Tá mas só para esclarecer aí quem que é você nesse caso você é um Trader que tá comprando umas mem coin ou você é um Bot de MV não você é o Bot de MV tipo por Quando que o bot perde dinheiro e por que que não é possível não perder dinheiro nunca não é possível não perder dinheiro nunca sim se você tem uma estratégia que ela é atômica né Então essa que eu mostrei aqui ela estratégia atômica que não tem como você perder dinheiro a não ser que você tenha um bug né obviamente no código mas a ideia aqui e o teste que eu mostrei era porque tipo eu tava desenvolvendo ali

queria ter certeza que tava dando lucro a prejuízo por isso que eu fiz o o teste somando os balances antes e depois mais para tipo Quality assurance do que porque a estratégia pode dar prejuízo se a estratégia der prejuízo a a transação vai reverter não vai ser incluído e é como se nada tivesse acontecido Ah entendi essa era pergunta Valeu nós é o Eu também não sei levantar a mão pode falar é dentro de reactions opa vocês estão me ouvindo ou não sim sim perfeito a Opa desculpa aí

galera Não sei levantar a mão aqui no tava procurando no stack overflow aí boomer é então cara tá cada vez pior isso aqui então velho eu mexi há muito tempo atrás várias coisas que você falou aí são novas não tinha mav Boost nada você tinha que ir na unha olhar o mpol E aí no começo tinha uma API até você tinha que pedir uma chave para eles e aí você submetia o bundle mas o que me desanimou na verdade foi o que você falou até bastante disso foi legal que você falou num slide Depois da sua experiência é que cara eu acho que a teoria dos jogos lá falha um pouco o searcher devia ser o herói de mav né porque o searcher é o cara que

identifica as oportunidades e tudo e que e que faz a coisa acontecer só que o jogo pros searchers é ruim né cara porque é isso se você vai gasta um tempo implementa uma estratégia lá e aí você começa a executar ela os outros vão ver os outros não gastaram o tempo o esforço que você gastou para implementar aquilo e aí começa um leilão né começa um leilão de quem bida mais pro pro Na época era o minerador né Hoje é pro pro pro proposer E aí o lucro vai para zero né o lucro pro searcher começa a ficar muito pequenininho assim e aí na época o que começou a acontecer é que assim os

indivíduos começaram a perder força e uns times que tinham mais infra sabe mais tempo os caras trabalhando Full Time e tudo começaram a levar mais parte do lucro assim eí a galera que ficou na época ficou numas oportunidades mais de nicho assim né uns por exemplo tem bem menos competição se você for fazer arbitragem entre sex e Dex porque aí para fazer isso você tem que ter Fundos numa sex né então você tem que est já posicionado lá e você também você assume o risco né mesmo que é risco pequeno mas você não você não consegue fazer fazer um um uma arbitragem atômica de na mesma transação comprar um e vender outro você tem que

tipo fazer eh disparos separados e rezar sim é então e aí tipo eu um amigo meu até fez isso por bastante tempo depois ele rodou coitado porque ele fazia isso na ftx lá no mas o o aí é isso eu achei que o jogo não compensava sabe para ficar olhando e ficar tipo indo atrás dessas dessas oportunidades assim e na época também tinha um problema esses times aí eles tinham muito recurso né então Os caras subiam por exemplo e muito tempo também né time Full Time então eles subiam um nó em cada continente tipo nas awss aí para ter um Main Pool diferente sabe o mpol localizado e ter um acesso Mais amplo e antes às vezes de uma transação

né eles juntavam todos esses Main pools e tinham acesso a mais informação e aí eu achei que isso foi matando o jogo sabe e foi mas eu sua experiência mostem isso você falou cara eu entrei comecei a bidar com o cara deente o foi zero eu desliguei o bote era o que acontecia com todo mundo na época assim principalmente com essas né que a gente falou que você não precisa de fundo você usa um flash long sei lá exatamente no final das contas acaba sendo um tradeoff entre quanto de risco você quer ter e quanto de volume você quer ter né Uhum não sei eu acho que eles tinham que mexer cara nisso sabia tentar eu não sei que não dá né tudo que cai no no che é público isso não tem jeito as pessoas

vão ver a estratégia sendo executada mas sei lá tentar mexer na teoria dos jogos aí de alguma forma criativa para valorizar o searcher que que identifica sabe o searcher que é searcher mesmo que acha assim as oportunidades né mas assim isso é uma opinião controversa né porque tipo Tem muita gente que vê com maus olhos o searcher Porque ele é o cara que tá lucrando lá com MV e só tipo é um um jogo de soma zero eh e há quem diga inclusive tipo eu não concordo 100% com com com esse argumento né mas já vi

pessoas comparando eh MV a tipo você roubar outra pessoa e aí a a narrativa é mais ou menos assim eh pô imagina que você vive numa cidade em que tem V vários pick pockets que estão vários trombadinhas que estão roubando o dinheiro das pessoas na rua eh já que a gente não consegue resolver esse problema de violência urbana A gente eh já que a gente não consegue devolver essa grana pro para quem foi roubado a gente vai pegar essa grana e tipo construir um parque na cidade tipo Hã Não você tem que pegar grana e devolver para quem foi a vítima E aí que entra a

mentalidade do MV share de que o o lucro do MV tem que voltar majoritariamente pro usuário e no MV share e ah Inclusive eu nem mostrei um negócio aqui que é mai da hora que é tipo eu acho que tá aberto aqui ainda é um exemplo bom de MV eu acho que é o segurança da balada cara porque ele tá lá e ele controla né quem entra e quem sai Então você chega lá você dá uma propina você passa na frente da geral exatamente mas é o nesse caso é o é o é o minerador Né não é o o searcher que tá que tá que tá sendo o bouncer né

É É verdade é verdade Olha só nesse bloco aqui esse essa primeira transação é do do cara que que comprou o mem coin lá que desbalance a pool aí essa segunda transação ela é a transação do do searcher que encontrou a oportunidade e rebalance as pools só que ele pagou uma uma certa parte do seu lucro pro minerador e olha a transação essa terceira transação aqui é uma transação do Block builder da flashbots enviando para quem Para esse cara que criou a oportunidade para começar Então olha só que da hora no MV Sher isso acontece o o cara o o searcher pagou

0021 para pro Block builder e o Block builder pagou 002 pro cara que originou MV então Ó o cashback aqui foi tipo gigante né 90 e poucos por Uhum é isso também não conhecia cara muito legal é tá tá começando ainda dá para dá para crescer bastante e eu deem uma olhada depois nesse que eu também não sei explicar muito bem mas é tipo essa gamificação aí do MV junto com Oracle que é uma das paradas que mais gera valor aí no de de miv e na blockchain

eh acaba melhorando né o o o nível de serviço pros usuários que vão ter um preço mais atualizado do do Token na onchain né é o é meio que um inovação do modelo de negócio da team link ali tipo em vez de você receber dinheiro direto para ficar atualizando preo on chain Você tem uma oportunidade de arbitragem por atualizar o preço Tipo isso exatamente interessante e uma outra última dúvida aqui minha é para eu usar o MV Boost o MV shares de novo como Lego eu posso só procurar lá no site do MV shares o o RPC

o RL lá e e mudando me met mess sim eh cara ó Dea ver eh flashbot Protect eu acho que aqui eh você consegue que [Música] aqui e não é aqui não eles até fizeram uma aqui acho que é para para programadores né Eh eles até fizeram uma uma um um boun no num ratom de de fazer um jeito user friendly de

você setar essas essas essas essas opções para você usar no metamask eh ficou legal não vou Ach consegui achar agora mas posso mandar depois bem gente se ninguém tem mais nenhuma pergunta queria agradecer o tempo de vocês obrigado por por estarem aí eh Fico à disposição e Parabéns aí pelo evento Tiaguinho Roby e pessoal da RC 55 que tem sido muito da hora e fiquei bem honrado de de ser uma pessoa de poder contribuir aí também que isso a gente que agradece ter você aqui

e cara uma última pergunta seu Twitter como a gente te acha assim para caso queira falar com você @ leopa aí ó lá deu para ler nem tá esperando muito bom muito bom cara jogar aqui eita nossa o zoom não gosta de um arroba vai ser sem ara boa Bel pap paz e e é isso show show demais então é isso pessoal boa noite até a próxima valeu

valeu aí tamo junto Valeu gente boa noite