MEV Liquidation Arbitrage pe Ethereum și Layer 2: Ghid de Specialist
Strategia de MEV liquidation arbitrage Ethereum DeFi nu mai e teritoriul searcher-ilor cu acces privilegiat la mempool de pe L1 — s-a mutat masiv pe Layer 2, unde economia execuției e fundamental diferită. Dacă ai construit deja modelul de LTV, health factor și cascadă de lichidări din lecția anterioară despre DeFi lending, acum inversezi perspectiva: nu mai ești borrower-ul care evită pragul, ci operatorul care extrage maximal extractable value smart contract din pozițiile altora, executând lichidarea înainte ca un rival să te front-runeze.
Această lecție tratează playbook-ul de specialist pentru layer 2 MEV Arbitrum Optimism: cum cuantifici exact profitul brut al unei lichidări, cum integrezi un flash loan arbitrage strategie ca să operezi fără capital propriu, de ce sandwich attack profit calculation e aproape neviabil pe rollup-uri cu sequencer FCFS, și ce înseamnă automated market maker slippage atunci când dezambalezi colateralul lichidat pe un AMM. Acoperim arhitectura de liquidation bot development, DeFi protocol risks extraction (revert-uri, gas wars, reorg pe L2) și partea pe care 95% dintre searcheri o ignoră: raportarea ANAF a unui profit care, contractual, nu are o „contraparte” clasică și e ușor de calificat greșit în Declarația Unică.
Lucrăm cantitativ, în lei, cu praguri și cote reale România 2026. Premisa: stăpânești deja EVM, Solidity la nivel de inline assembly, mecanica oracolelor și diferența dintre o lichidare integrală și una parțială. Mergem direct la modelul de profit, edge-case-uri și optimizare.
Anatomia economică a unei lichidări profitabile pe L2
Profitul unei lichidări nu e bonusul afișat de protocol. E un reziduu, după ce scazi toate fricțiunile. Formula de lucru pe care o folosesc searcher-ii serioși:
Profit net = (Colateral_sechestrat × Bonus_lichidare) − Slippage_dezambalare − Gas_L2 − Cost_DA_L1 − Cost_flash_loan − Cost_oportunitate_revert
Fiecare termen are o structură proprie pe care un specialist o modelează separat:
- Colateral_sechestrat = Datorie_repayată × Close_factor. Pe Aave v3, close factor-ul e 50% în zona „soft” (HF între 0,95 și 1) și 100% sub HF 0,95 — deci pe o poziție profund subacvatică poți închide integral datoria într-un singur tx.
- Bonus_lichidare — liquidation bonus per-activ, tipic 5–8,5% pe Aave v3 (ETH ~5%, active volatile/long-tail 7,5–10%). Pe Compound v3 (Comet) bonusul e exprimat ca discount factor pe colateral, nu ca penalitate pe datorie — calculezi diferit.
- Gas_L2 — pe Arbitrum/Optimism, execuția propriu-zisă e ieftină (cenți), dar termenul dominant e costul de a publica calldata pe L1 (data availability). Post-EIP-4844 (blob-uri), costul DA a scăzut cu un ordin de mărime, dar rămâne variabila care decide profitabilitatea lichidărilor mici.
Calcul numeric: lichidare ETH pe Arbitrum
O poziție cu colateral wstETH echivalent 180.000 lei și datorie USDC echivalent 150.000 lei cade la HF = 0,98. Liquidation threshold 82,5%, close factor 50%, liquidation bonus 5%.
- Datorie repayabilă = 150.000 × 50% = 75.000 lei.
- Colateral sechestrat = 75.000 × (1 + 0,05) = 78.750 lei primiți în wstETH.
- Bonus brut = 3.750 lei.
- Slippage la swap wstETH→USDC pe un pool cu lichiditate decentă, mărime 78.750 lei: la 0,3% → −236 lei.
- Gas L2 + DA pe Arbitrum, tx complex (flash loan + liquidationCall + swap), estimat −40…−90 lei în condiții normale, dar poate sări la 400+ lei într-o fereastră de congestie post-crash, exact când apar lichidările.
- Profit net realist: ~3.400 lei pe un tx care nu îți imobilizează capital propriu dacă folosești flash loan.
Marja arată generos. Capcana e că nu ești singur: zeci de boți văd aceeași poziție. Pe L2 cu sequencer first-come-first-served (FCFS), nu cel cu cel mai mare tip câștigă, ci cel care livrează tx-ul valid primul la sequencer. Asta schimbă complet strategia de optimizare.
De ce Arbitrum și Optimism schimbă regulile MEV
Pe Ethereum L1, MEV-ul e mediat de Flashbots/MEV-Boost: licitezi prin priority fee și bundle-uri private, builder-ul ordonează blocul. Pe rollup-urile actuale există un sequencer centralizat, iar acest detaliu rescrie întreaga teorie a jocului:
- Mempool privat / lipsa mempool-ului public. Arbitrum nu expune un mempool public — tx-urile merg direct la sequencer și sunt ordonate FCFS pe timpul de sosire. Nu poți observa tx-ul victimei și nu poți licita prin gas peste el. Front-running-ul clasic devine o cursă de latență de rețea, nu de fee.
- Sandwich attack profit calculation devine marginal. Fără mempool public observabil și cu ordonare temporală, sandwich-ul (intercalarea unui buy înainte și sell după swap-ul victimei) e structural greu pe Arbitrum. Optimism, cu sequencer-ul Bedrock, e similar. Profitul de sandwich migrează spre lichidări și arbitraj CEX-DEX, unde semnalul vine din afara lanțului.
- Reorg și finalitate. Sequencer-ul oferă soft-confirmation rapidă, dar finalitatea reală depinde de batch-ul postat pe L1. Pe optimistic rollups există o fereastră teoretică de reordonare la nivel de sequencer downtime/force-inclusion. Un searcher prudent nu tratează o lichidare ca finală până nu e inclusă în batch-ul L1.
Concluzia operațională: pe L2, edge-ul tău nu e capitalul sau dispoziția de a plăti tip, ci infrastructura — colocare lângă sequencer, conexiuni RPC dedicate, detecție sub-bloc a scăderii HF prin simulare locală a oracolului, și un contract care revertează ieftin dacă cineva te-a prins primul.
Flash loan ca primitivă de capital-zero
Un searcher matur nu lichidează din buzunar. Construiește un flash loan arbitrage strategie în care întregul ciclu — împrumut, repay datoria victimei, primește colateral, dezambalează, returnează flash loan-ul plus comision — rulează atomic într-un singur tx. Dacă orice pas eșuează (altcineva a lichidat primul, slippage prea mare), tot tx-ul revertează și nu pierzi decât gas-ul.
Structura contractului proprietar
- Sursa de flash loan. Aave v3 percepe 0,05% premium pe flash loan; un flash din pool-ul Balancer e gratuit (0%) dacă lichiditatea acoperă suma — preferat pentru lichidări mari unde 0,05% mănâncă marja. Pe 75.000 lei, 0,05% = 37,5 lei: nu omoară tranzacția, dar pe lichidări de 5.000 lei contează.
- Callback-ul. În
executeOperationapeleziliquidationCallpe protocolul țintă, primești colateralul, faci swap pe AMM-ul cu cea mai bună adâncime, apoi aprobi repay-ul flash loan-ului. Tot în assembly pentru a minimiza gas-ul. - Gard anti-revert costly. Verifici on-chain HF-ul victimei la începutul tx-ului; dacă a fost deja lichidat (HF urcat peste prag), faci un
revertimediat, înainte de a consuma gas pe restul logicii. Diferența între un revert la opcode 200 și unul la opcode 90.000 e bani reali la scară. - Protecție slippage.
minAmountOutcalculat din oracol, nu din pool-ul în care faci swap-ul — altfel devii tu însuți victima unui sandwich pe L1 bridge sau a unei depegări momentane.
Automated market maker slippage la dezambalare
Termenul cel mai prost modelat de începătorii „avansați” e automated market maker slippage. Colateralul sechestrat trebuie vândut, iar pe un pool xy=k slippage-ul crește neliniar cu mărimea. Pentru un swap de mărime ΔX într-un pool cu rezervă X:
Slippage ≈ ΔX / (X + ΔX) (aproximare de ordin întâi, ignorând fee-ul).
Dacă lichidezi colateral de 200.000 lei într-un pool cu rezervă efectivă de 4.000.000 lei pe partea relevantă, impactul de preț e ~5% — adică 10.000 lei evaporați, mai mult decât tot bonusul de lichidare de 5%. Specialistul fragmentează (split-routing pe Uniswap v3 + Curve), folosește pool-uri concentrate (v3) unde adâncimea la preț e mult mai mare, sau, pe lichidări mari, păstrează colateralul și îl dezambalează în tranșe ulterioare — acceptând risc de preț în schimbul reducerii impactului. Pe stETH/wstETH, Curve oferă cel mai adânc swap; pe long-tail, slippage-ul poate face lichidarea neprofitabilă chiar dacă bonusul e 10%.
Edge-case-uri și DeFi protocol risks extraction
Profitul teoretic e ușor. Supraviețuirea operațională e grea. Riscurile pe care un searcher le internalizează:
- Gas war / failed bid pe L2. Pe FCFS, dacă pierzi cursa de latență, tx-ul tău revertează (HF deja restabilit). 50 de reverturi pe zi × 60 lei = 3.000 lei/zi cost pur de a participa. Rata ta de win trebuie să acopere acest „rake”.
- Oracol stale / desincronizat. Lichidarea se declanșează pe prețul oracolului, dar tu vinzi pe prețul AMM-ului. Într-un crash rapid, oracolul (TWAP sau Chainlink cu heartbeat/deviation threshold) poate fi în urma spotului — colateralul „valorează” 78.750 lei pe oracol, dar AMM-ul îl cumpără la 72.000. Profitul evaporă. Modelează mereu basis-ul oracol-AMM.
- Sequencer downtime. Dacă sequencer-ul Arbitrum/Optimism pică (s-a întâmplat istoric), lichidările se opresc, dar prețurile pe L1/CEX continuă. La revenire, un val de lichidări iese simultan — oportunitate uriașă, dar și risc de bad debt necolectabil dacă protocolul nu poate executa la timp.
- Bad debt și socializare. Dacă lichidezi o poziție deja subacvatică (colateral < datorie), bonusul tău poate fi neacoperit — protocolul îți dă mai puțin decât promite, sau funcția revertează. Pe poziții cu HF prăbușit brusc (gap down), verifică dacă mai există suficient colateral pentru bonus.
- Decentralizarea sequencer-ului (2026). Tranziția anunțată spre sequencere descentralizate / shared sequencing (Espresso și similare) va reintroduce o piață de ordonare a tx-urilor pe L2 — adică va apărea o formă de MEV-Boost pe rollup. Cine își construiește azi infra de latență trebuie să planifice migrarea spre licitație de ordonare.
Modelul de profitabilitate la scară: rake, win-rate, breakeven
Un bot nu se evaluează pe o lichidare, ci pe distribuția lui. Modelul minim:
- Profit așteptat per oportunitate = P(win) × Profit_net_mediu − (1 − P(win)) × Gas_revert.
- Exemplu: P(win) = 35% (competiție serioasă pe Arbitrum), Profit_net_mediu = 3.400 lei, Gas_revert = 60 lei.
- E[profit] = 0,35 × 3.400 − 0,65 × 60 = 1.190 − 39 = 1.151 lei/oportunitate.
- La 4 oportunități mari/zi → ~4.600 lei/zi brut, dar volatil: lunile fără volatilitate aduc zero lichidări, iar capitalul de infra (RPC dedicat, server colocat) e cost fix continuu.
Breakeven-ul real se mută când crește competiția: dacă P(win) scade la 15%, E[profit] devine 0,15 × 3.400 − 0,85 × 60 = 510 − 51 = 459 lei — încă pozitiv, dar pe lichidări mici (profit net 300 lei) cu același gas, ecuația trece în negativ. Pragul: operezi doar oportunități unde Profit_net × P(win) > Gas_revert × (1 − P(win)), filtrat în pre-simulare locală.
ANAF: profitul MEV ca venit impozabil în România 2026
Aici e zona unde searcher-ii tehnici greșesc costisitor. Un profit din lichidare/MEV nu e „venit fără contraparte” și nu e scutibil pentru că „e doar arbitraj”. Pentru fisc, fiecare swap pe care îl execuți (colateral primit → stablecoin) e un transfer de criptomonede, eveniment impozabil.
- Cota. Câștigul din transferul de criptomonede realizat de la 1 ianuarie 2026 se impozitează cu 16% (majorat de la 10% prin Legea nr. 141/2025). Câștigul = preț vânzare − cost de achiziție − comisioane directe. La MEV, „costul de achiziție” al colateralului e valoarea datoriei pe care ai repayat-o (în lei la cursul momentului), iar „vânzarea” e dezambalarea pe AMM.
- Scutirea de minimis nu te ajută. Pragul de 200 lei/tranzacție se aplică doar dacă totalul câștigurilor anuale ≤ 600 lei. Un bot face mii de tranzacții; depășești instant — toate câștigurile devin impozabile, inclusiv cele sub 200 lei.
- CASS de 10%. Veniturile din investiții (crypto + dividende + dobânzi etc.) peste pragul de 6 salarii minime declanșează CASS pe baze fixe. La salariul minim de referință de 4.050 lei în 2026: bază 24.300 lei (CASS 2.430 lei) la 6–12 salarii, 48.600 lei (CASS 4.860 lei) la 12–24, și 97.200 lei (CASS 9.720 lei) peste 24 de salarii minime. Un searcher profitabil aterizează aproape sigur în plafonul maxim.
- DAC8. Din 2026, raportarea automată a platformelor către ANAF acoperă on-ramp/off-ramp-urile tale. Profitul „on-chain” pare invizibil, dar momentul în care convertești în lei printr-un CASP (Binance, Revolut) e raportat. Reconcilierea trebuie să fie impecabilă.
Calcul fiscal pe un an de operare
Presupunem profit net realizat 180.000 lei dintr-un an de lichidări (după gas și slippage, brut fiscal).
- Impozit pe venit: 180.000 × 16% = 28.800 lei.
- CASS (peste 24 salarii minime): bază 97.200 lei × 10% = 9.720 lei.
- Sarcină fiscală totală: 38.520 lei → randament net real ~141.480 lei.
Verifică plafoanele și cota exactă pe anaf.ro înainte de depunerea Declarației Unice; pachetele fiscale se pot ajusta, iar încadrarea câștigului din MEV ca „transfer de monedă virtuală” vs. „alte surse” are consecințe asupra bazei de CASS. Pentru un volum de mii de tranzacții/an, tratamentul corect FIFO și evidența în lei la cursul fiecărui eveniment nu sunt opționale — sunt singura ta apărare la un control.
Checklist de specialist înainte de a deploya botul
- Simulează local fiecare oportunitate (fork de stat, eth_call) și calculează Profit_net complet — bonus, slippage AMM real pe adâncimea curentă, gas L2+DA, premium flash loan — înainte de a trimite tx-ul.
- Filtrează pe pragul E[profit]: trimite doar dacă Profit_net × P(win) estimat > Gas_revert × (1 − P(win)). Nu participa la curse pe care le pierzi sistematic.
- Folosește flash loan 0% (Balancer) când acoperă suma, Aave 0,05% doar ca fallback; calculează premium-ul în marjă.
- Setează minAmountOut din oracol, nu din pool, și fragmentează swap-urile mari (v3 + Curve) ca să ții slippage-ul sub bonus.
- Programează revert ieftin precoce dacă HF-ul victimei e deja restabilit — economisești gas pe cursele pierdute.
- Modelează basis-ul oracol-AMM și abține-te în ferestrele de crash unde oracolul e stale și AMM-ul a fugit.
- Planifică pentru sequencer descentralizat 2026 — infra de latență pură devine o piață de ordonare; pregătește migrarea spre licitație.
- Ține evidența în lei din primul tx (dată, eveniment, curs, cost de bază = datoria repayată), aplică FIFO, provizionează 16% + CASS, reconciliază cu raportările DAC8 ale CASP-urilor.
- Stres-testează contractul la reentrancy, oracol manipulat prin flash loan și revert parțial pe protocoale cu close factor dinamic — un bug la searcher e drenarea propriului capital de gas/operare.
MEV-ul de lichidare pe Layer 2 nu e bani gratis — e o nișă de inginerie unde marja e reală exact în măsura în care modelul tău de fricțiune e exact. Diferența dintre un searcher profitabil și unul care arde gas la nesfârșit nu stă în bonusul afișat de protocol, ci în trei numere calculate înainte de fiecare tx: profitul net după slippage și gas, probabilitatea de win pe latență, și sarcina fiscală pe care o datorezi în lei la final de an. Cine optimizează doar codul și ignoră oricare dintre cele trei pierde — fie pe lanț, fie la control.