Title: Arbitraggio Defi Post by: JGreg96 on June 19, 2022, 10:11:39 PM Apro questo thread principalmente per 2 motivi:
Partiamo con la documentazione che ho trovato nell' internet: Cos' è l' arbitraggio Triangular Arbitrage (https://medium.com/coinmonks/triangular-arbitrage-with-crypto-dexs-part-one-add36b136bf1) Arbitrage on Dex (https://www.computing.psu.ac.th/profile/backend/upload/992321922.79911.pdf) Modello economico di UniswapV2 e relativi contratti e funzioni UniswapV2 (https://docs.uniswap.org/protocol/V2/introduction) Price Impact (https://ethereum.stackexchange.com/questions/102063/understand-price-impact-and-liquidity-in-pancakeswap) Documentazione un po più avanzata Dex Arbitrage Solidity (https://jamesbachini.com/dex-arbitrage/) Cyclic Arbitrage (https://arxiv.org/pdf/2105.02784.pdf) Graph on Arbitrage (https://medium.com/coinmonks/triangular-arbitrage-with-crypto-dexs-part-two-f6e6ff66fb87) Per avere un sistema di arbitraggio funzionante quindi, è necessario sviluppare 2 blocchi principali
La parte interessante dell' arbitraggio in Defi è che il secondo strumento può essere sviluppato interamente come uno smart contract con tutti i benefici che ne conseguono. Inutile dire che l' arbitraggio manuale è un' opzione poco perseguibile quindi per entrambi gli strumenti si dovrà ricorrere a linguaggi di programmazione (personalmente ho utilizzato python con web3py e solidity), inoltre è possibile dividere le classi di arbitraggio in 2 categorie in base al numero di coin scambiate:
Infine è necessario precisare che il resto della trattazione assume come "unico" Dex di riferimento i derivati di UniswapV2. Nulla vieta di estendere anche ad altri Dex non uniswaplike ma i meccanismi potrebbero essere diversi. Ricerca di opportunità di arbitraggio Ci sono diversi metodi per eseguire questa operazione, personalmente ne ho testati 2. Il primo consiste nell' identificare gli address dei pair corrispondenti ai token di interesse e successivamente sfruttare la function balanceOf dei token ERC20 inserendo l' address del pair (o pool). Quindi nel codice avremo una costruzione del tipo: Code: Contract=web3.eth.Contract(address="tokenA",abi="L' abi ERC20") //Inizializzo il contratto del tokenA L' altro metodo invece sfrutta la function getReserves del contratto del pair. Questa function non ha input e ritorna l' ammontare dei token e l' ultimo blocco di aggiornamento della pair. Attenzione: questa function ritorna le riserve R0 e R1 dei token0 e token1 del pair che sono hardcoded nel contratto del pair. Serve dunque mappare correttamente (token0,token1) con (tokenA,tokenB) per avere le riserve corrette RA e RB. Nel codice: Code: //Inizializzo il contratto Indipendentemente dal procedimento scelto alla fine avremo le riserve (o balance) della pool e quindi è necessario calcolare il prezzo. Purtroppo entrambi i metodi ritorano un intero ma i token ERC20 possono avere decimali diversi quindi prima di calcolare il prezzo è necessario scalare le riserve: Code: Contract=web3.eth.Contract(address="tokenA",abi="L' abi ERC20") //Inizializzo il contratto del tokenA Iterando per diversi Pair (ovvero per diversi dex) con gli stessi tokenA/tokenB è possibile avere i diversi prezzi ovvero valutare l' opportunità. Adesso, per semplicità concentriamoci sull' arbitraggio a 2 vie in cui ricapitolando, è possibile costruirsi un insieme di prezzi semplicemente vedendo le riserve delle pool tokenA-tokenB sui vari dex. In questo insieme estraiamo banalmente il massimo e il minimo e assumiamo di partire dal tokenA e che i prezzi siano calcolati secondo RB_/RA_. In questo modo è abbastanza chiaro che il primo swap dovrà essere fatto sul dex con prezzo massimo (in quanto è quello che dà più tokenB) mentre lo swap di chiusura sarà fatto su quello con prezzo minimo (a parità di tokenB è quello che mi dà più tokenA) In questo modo si riesce ad identificare un percorso da seguire in cui valutare se è possibile fare l' arbitraggio o meno. Opportunità di arbitraggio a 2 vie Dalla documentazione di uniswap è chiaro che tutti i dex in questione hanno il modello x*y=k. Questo significa che, identificate come Lx e Ly le riserve rispettivamente dei token x e y. in uno swap, la quantità Lx*Ly deve rimanere costante e uguale a k. Questo significa che è possibile calcolare la quantità Y di token y che si ricevono assumendo di swappare una quantità X di token x. Infatti la nuova liquidità sarà Lx+X -> Ly_new=k/(Lx+X) -> Y=Ly-Ly_new in definitiva è possibile esprimere Y come Y=X*Ly/(Lx+X) Tramite questa formula è possibile proseguire con lo swap di ritorno (ovvero X'=Y*Lx'/(Ly'+Y)) e l' arbitraggio sarà profittevole solo se P=X'-X-fee>0 Questo è il primo traguardo: quindi ora vi basta impostare un ammontare X -> ottenere le liquidità -> prendere massimo e minimo -> calcolare il profitto e vedere se è maggiore di 0. In caso di esito positivo farete eseguire gli swap dallo smart contract. Per chi è un po più perfezionista, è possibile calcolare l' ammontare di X che massimizza il profitto P=X'-X-fee: Infatti P è una frazione nella forma (-aX^2+bX+c)/(aX+c/fee) dove a,b,c sono quantità che dipendono dalle liquidità delle 2 pool e dalle fee. E' dunque possibile calcolare la derivata di P rispetto ad X -> porla uguale a 0 ed ottenere dunque il valore di X che massimizza la funzione P. Opportunità di arbitraggio a 3 vie Per quanto riguarda l' arbitraggio a 3 vie il procedimento è molto più complesso in quanto la discriminante max min non può essere usata nello stesso modo quindi sono necessarie altre tecniche che però non ho ancora personalmente sperimentato Esecuzione degli swap Come accennato precedentemente una volta trovato un percorso profittevole, è necessario eseguire le operazioni e quindi mandare le transazioni. L' idea di base è incorporare tutte le transazioni in una utilizzando uno smart contract. Per farlo è necessario importare l' interfaccia del router di UniswapV2 e creare una function nel contratto che esegua le operazioni. Questa parte è spiegata molto bene (per l' arbitraggio a 2 vie) in questo link presente anche nella documentazione. In caso di arbitraggio a 3 vie basta aggiungere il terzo swap. Miglioramenti Il procedimento sopra vuole dare delle linee guida su come approcciare la creazione di un sistema di arbitraggio automatizzato ma chiaramente ha ampi margini di miglioramento. Per definizione, l' arbitraggio è profittevole solo ai primi (o al primo) che eseguono gli swap, quindi la velocità è tutto: è necessario ridurre i tempi di raccolta delle info, del processamento e del relativo input. In Defi la velocità è misurata in blocchi convalidati infatti generalmente, in situazione di equilibrio, non c' è un percorso profittevole -> serve dunque una transazione che sbilancia il mercato che sarà convalidatà la blocco B1 quindi più si è vicini al blocco B1 (incluso) e più è probabile che l' arbitraggio abbia successo.
Parere personale Da quello che ho visto, ce ne sono parecchi di bot di arbitraggio che operano tra i vari dex. Utilizzano metodi anche a volte diversi, per esempio alcuni utilizzano aggregatori tipo 1inch con i chitoken, altri invece non fanno un arbitraggio in senso stretto ma appena vedono in pending una transazione "grossa" rispetto la liquidità della pool, si muovono sia prima che dopo la transazione (nello stesso blocco). Quindi è un mondo molto competitivo dove però i margini possono essere anche molto molto alti. Title: Re: Arbitraggio Defi Post by: JGreg96 on August 26, 2023, 06:37:45 PM Sembra che l' interesse per questo tipo di operatività sia aumentato notevolmente con quello che ora viene chiamato MEV Bot (https://www.blocknative.com/blog/mev-and-creating-a-basic-arbitrage-bot-on-ethereum-mainnet).
Personalmente ho trascorso parecchio tempo cercando di includere i miglioramenti che avevo descritto nei vari punti. Ci sono riuscito ma nel frattempo la competizione aumentava e le strade percorribili erano sempre meno. è stata secondo me un esperienza enormemente formativa perchè mi ha permesso di imparare diversi linguaggi di programmazione (python, javascript, solidity,...) applicandoli direttamente in un contesto blockchain. Il livello di profondità tecnica che si raggiunge (per essere competitivi) è decisamente molto alto e consente di scoprire sfaccettature sempre più sottili che fanno poi la differenza. Appena riuscirò a ritagliarmi una finestra vorrei completare la "mini guida - esperienza" su quello che ho fatto e sviluppato. A grandi linee comunque:
Nota: di solito le guide che si trovano in giro non spiegano come cercare opportunità, ma spiegano come vedere se è profittevole e fare le transazioni. Se viene pensata per una coppia singola in un singolo DEX è teoricamente fattibile (non praticamente), ma enormemente limitante rispetto alle (quasi infinite) combinazioni/possibilità che ci sarebbero. Quindi sono praticamente inutili e andrebbero generalizzate/adattate. Title: Re: Arbitraggio Defi Post by: zifeiji on December 09, 2024, 04:45:42 PM Sembra che l' interesse per questo tipo di operatività sia aumentato notevolmente con quello che ora viene chiamato MEV Bot (https://www.blocknative.com/blog/mev-and-creating-a-basic-arbitrage-bot-on-ethereum-mainnet). Personalmente ho trascorso parecchio tempo cercando di includere i miglioramenti che avevo descritto nei vari punti. Ci sono riuscito ma nel frattempo la competizione aumentava e le strade percorribili erano sempre meno. è stata secondo me un esperienza enormemente formativa perchè mi ha permesso di imparare diversi linguaggi di programmazione (python, javascript, solidity,...) applicandoli direttamente in un contesto blockchain. Il livello di profondità tecnica che si raggiunge (per essere competitivi) è decisamente molto alto e consente di scoprire sfaccettature sempre più sottili che fanno poi la differenza. Appena riuscirò a ritagliarmi una finestra vorrei completare la "mini guida - esperienza" su quello che ho fatto e sviluppato. A grandi linee comunque:
Nota: di solito le guide che si trovano in giro non spiegano come cercare opportunità, ma spiegano come vedere se è profittevole e fare le transazioni. Se viene pensata per una coppia singola in un singolo DEX è teoricamente fattibile (non praticamente), ma enormemente limitante rispetto alle (quasi infinite) combinazioni/possibilità che ci sarebbero. Quindi sono praticamente inutili e andrebbero generalizzate/adattate. Ora MEV Bot (https://mevbot.xyz/) è diventato molto facile da usare e può realizzare profitti direttamente sul sito web. Title: Re: Arbitraggio Defi Post by: pixel75 on January 03, 2025, 09:43:16 PM e secondo te dovrebbe essere trust?
Ora MEV Bot (https://mevbot.xyz/) è diventato molto facile da usare e può realizzare profitti direttamente sul sito web. Title: Re: Arbitraggio Defi Post by: hymperion on January 07, 2025, 03:27:51 PM I MEV bot sono scam, occhio
https://bitcointalk.org/index.php?topic=5490175.0 Title: Re: Arbitraggio Defi Post by: pixel75 on January 07, 2025, 03:50:00 PM I MEV bot sono scam, occhio https://bitcointalk.org/index.php?topic=5490175.0 eh infatti Title: Re: Arbitraggio Defi Post by: changaa on February 12, 2025, 04:14:10 PM I MEV bot sono scam, occhio https://bitcointalk.org/index.php?topic=5490175.0 grazie molte per averci segnalato queste mev che non conosco però non conviene forse fare un thread specifico nella sezione scam? Title: Re: Arbitraggio Defi Post by: fillippone on April 20, 2025, 03:22:12 PM I MEV bot sono scam, occhio https://bitcointalk.org/index.php?topic=5490175.0 grazie molte per averci segnalato queste mev che non conosco però non conviene forse fare un thread specifico nella sezione scam? In generale i MEV bt non sono scam. Dire che il MEV è scam perche ci sono dei MEV bot che sammano, è come dire che il mining è scam, perchè ci sono dei mining (cloud mining) che scammano. Chi è nella posizione di trarre profitto dal MEV si guarda bene dal condividere questa possibilità con altri. Così come chi fa mining profittevole, non vuole coinvolgervi. Title: Re: Arbitraggio Defi Post by: fluffaloo on May 28, 2025, 08:59:55 AM In generale i MEV bt non sono scam. Dire che il MEV è scam perche ci sono dei MEV bot che sammano, è come dire che il mining è scam, perchè ci sono dei mining (cloud mining) che scammano. Chi è nella posizione di trarre profitto dal MEV si guarda bene dal condividere questa possibilità con altri. Così come chi fa mining profittevole, non vuole coinvolgervi. MEV, non sapevo di questa cosa. Sono come delle AI che fanno cose con il trading? Non capisco. Dove trovo qualcosa da leggere a riguardo, grazie a chi mi da informazioni Title: Re: Arbitraggio Defi Post by: changaa on May 28, 2025, 01:55:48 PM I MEV bot sono scam, occhio https://bitcointalk.org/index.php?topic=5490175.0 grazie molte per averci segnalato queste mev che non conosco però non conviene forse fare un thread specifico nella sezione scam? In generale i MEV bt non sono scam. Dire che il MEV è scam perche ci sono dei MEV bot che sammano, è come dire che il mining è scam, perchè ci sono dei mining (cloud mining) che scammano. Chi è nella posizione di trarre profitto dal MEV si guarda bene dal condividere questa possibilità con altri. Così come chi fa mining profittevole, non vuole coinvolgervi. Giusto, hai ragione. Chi ha fatto un MEV che fa soldi, che motivo avrebbe di condividerlo? Solo i MEV che non fanno soldi vengono condivisi o venduti. Title: Re: Arbitraggio Defi Post by: fillippone on May 29, 2025, 10:15:53 PM Giusto, hai ragione. Chi ha fatto un MEV che fa soldi, che motivo avrebbe di condividerlo? Solo i MEV che non fanno soldi vengono condivisi o venduti. Tra l'altro non credo sia possibile avere un MEV, senza avere un nodo validatore, ovvero questo genere di attacco non sono effettuabili da chiunque, ma bisogna disporre di un "potere" di riorganizzazione delle transazioni. Ecco comunque una spiegazione di cosa siano questi fantomatici MEV: Quote Il concetto di MEV si basa sostanzialmente sulla possibilità che offre la blockchain di Ethereum, di gestire l’ordinamento di transazione in un blocco. Questo, in un contesto così dinamico come quello delle operazioni DeFi, offre possibilità di guadagno, o meglio dire di “estrazione” molto interessanti e potenzialmente ad alto rendimento. Fonte (https://www.criptovaluta.it/115382/trappola-sandwich-attack-mev-defi-ethereum)La parola MEV indica il “Maximum Extractable Value”, ovvero quelle tecniche volte a massimizzare il guadagno di individuo che partecipa alla creazione o proposta di blocchi sulla blockchain, scegliendo di includere, omettere, o riordinare determinate transazioni in un blocco. Esistono infatti alcuni metodi, che permettono di ottenere un vantaggio sugli altri individui che operano in DeFi, sfruttando l’ordinamento delle tx in un blocco su Ethereum. Title: Re: Arbitraggio Defi Post by: fluffaloo on May 30, 2025, 07:47:43 AM Giusto, hai ragione. Chi ha fatto un MEV che fa soldi, che motivo avrebbe di condividerlo? Solo i MEV che non fanno soldi vengono condivisi o venduti. Tra l'altro non credo sia possibile avere un MEV, senza avere un nodo validatore, ovvero questo genere di attacco non sono effettuabili da chiunque, ma bisogna disporre di un "potere" di riorganizzazione delle transazioni. Ecco comunque una spiegazione di cosa siano questi fantomatici MEV: Quote Il concetto di MEV si basa sostanzialmente sulla possibilità che offre la blockchain di Ethereum, di gestire l?ordinamento di transazione in un blocco. Questo, in un contesto così dinamico come quello delle operazioni DeFi, offre possibilità di guadagno, o meglio dire di ?estrazione? molto interessanti e potenzialmente ad alto rendimento. Fonte (https://www.criptovaluta.it/115382/trappola-sandwich-attack-mev-defi-ethereum)La parola MEV indica il ?Maximum Extractable Value?, ovvero quelle tecniche volte a massimizzare il guadagno di individuo che partecipa alla creazione o proposta di blocchi sulla blockchain, scegliendo di includere, omettere, o riordinare determinate transazioni in un blocco. Esistono infatti alcuni metodi, che permettono di ottenere un vantaggio sugli altri individui che operano in DeFi, sfruttando l?ordinamento delle tx in un blocco su Ethereum. Quindi sono dei bot? Non ho capito perdonami. |