Files
mev-beta/docs/MATH_AUDIT_QUICK_REFERENCE.md

4.9 KiB

Mathematical Audit - Quick Reference Guide

Audit Date: November 1, 2025
Status: CRITICAL ISSUES IDENTIFIED
Documents:

  • Full Report: MATHEMATICAL_AUDIT_DETAILED_20251101.md
  • Fix Examples: MATH_FIX_EXAMPLES_20251101.md
  • Summary: ../MATHEMATICAL_AUDIT_SUMMARY.txt

Critical Issues at a Glance

🔴 Issue #1: Slippage Formula Completely Wrong

File: pkg/profitcalc/slippage_protection.go:59-67
Formula: slippage = tradeSize / 2.0
Correct: Use Uniswap V2 constant product invariant
Impact:  Slippage estimates are 2-5x off actual
Severity: CRITICAL - Causes loss approvals

🔴 Issue #2: Float-to-Int Truncation Rejects Valid Profits

File: pkg/profitcalc/profit_calc.go:214-216
Problem: netProfit.Int(nil) removes all decimals
Impact:  0.00005 ETH profit (valid) becomes 0 (rejected)
Severity: CRITICAL - Rejects legitimate opportunities

🔴 Issue #3: Arbitrary 100% Profit Margin Cap

File: pkg/profitcalc/profit_calc.go:199-210
Problem: Rejects opportunities with >100% profit
Impact:  Rejects all high-margin valid arbitrage
Severity: CRITICAL - Mathematically invalid

🟠 Issue #4: Price Impact Misses Fee Deduction

File: pkg/math/exchange_math.go:128-146
Problem: Uses raw amountIn, not fee-adjusted amount
Impact:  Underestimates price impact by 0.3-2%
Severity: HIGH - Leads to wrong risk assessment

🟠 Issue #5: Arbitrary 20% Gas Buffer

File: pkg/profitcalc/profit_calc.go:271-273
Problem: No dynamic adjustment based on network state
Impact:  Profit underestimation of ~1-5%
Severity: MEDIUM - Systematic bias

What This Means

Current State After Fixes
Rejects >100% profit margins Accepts all valid margins
Slippage off by 2-5x Accurate slippage estimation
Rejects tiny profits (<1 wei) Accepts all valid profits
Gas costs overestimated 20% Dynamic, accurate gas cost
Risk assessment unreliable Trustworthy risk assessment

Files Needing Fixes

Must Fix (Immediate)

  • pkg/profitcalc/profit_calc.go - Lines 199-210, 214-216, 271-273
  • pkg/profitcalc/slippage_protection.go - Lines 56, 59-67
  • pkg/math/exchange_math.go - Lines 128-146

Should Fix (Soon)

  • pkg/math/decimal_handler.go - Lines 54-58, 308-312
  • pkg/uniswap/pricing.go - Lines 22-45

Quick Fix Checklist

  • Remove 100% profit margin cap
  • Fix float-to-int profit threshold comparison
  • Implement proper slippage formula
  • Add fee adjustment to price impact
  • Add division-by-zero checks
  • Test against known Arbitrum DEX prices
  • Create test cases for edge cases
  • Document all changes
  • Code review by team
  • Deploy with monitoring

Testing Requirements

Create tests for:

 High profit margins (>100%)
 Small profits (<0.001 ETH)
 Very large trades (>50% pool)
 Zero/near-zero liquidity
 Fee-adjusted calculations
 Different fee tiers (0.01%, 0.3%, 1%)
 Slippage vs known values

Code Snippets

WRONG - Profit Margin Cap

if profitMarginFloat > 1.0 {
    opportunity.IsExecutable = false  // ❌ Wrong!
}

RIGHT - No Arbitrary Cap

if !math.IsNaN(profitMarginFloat) && profitMarginFloat >= 0 {
    opportunity.ProfitMargin = profitMarginFloat  // ✓ Correct
}

WRONG - Slippage Formula

estimatedSlippage := tradeSizeFloat / 2.0  // ❌ Wrong!

RIGHT - Proper Formula

// Use: slippage = tradeSize / (2*liquidity + tradeSize)
// Or implement actual AMM calculation

WRONG - Type Conversion

netProfitWei, _ := netProfit.Int(nil)  // ❌ Truncates decimals!

RIGHT - Keep as Float

if netProfit.Cmp(minThresholdAsFloat) >= 0 {  // ✓ Preserves precision
    // Execute
}

Impact on Operations

Before Fixes

  • Many profitable opportunities are rejected
  • Slippage estimates are unreliable
  • Gas cost assumptions are wrong
  • High-margin trades deemed "unrealistic"

After Fixes

  • All valid opportunities are considered
  • Accurate risk assessment
  • Dynamic gas estimation
  • Correct profit calculations

Next Actions

  1. Immediate (Today)

    • Review this audit
    • Understand the implications
    • Plan fix implementation
  2. Short-term (This week)

    • Create fix branches
    • Implement critical fixes
    • Add test cases
    • Code review
  3. Medium-term (This month)

    • Validate against real data
    • Monitor in staging
    • Deploy to production
    • Monitor metrics

Resources


Generated: November 1, 2025
Status: Ready for implementation
Questions: See detailed audit document