From 3a38d3a04d7136a948da4fc795a791cc22aafacf Mon Sep 17 00:00:00 2001 From: Lawliet-Chan <1576710154@qq.com> Date: Thu, 25 Sep 2025 20:46:06 +0800 Subject: [PATCH 1/5] add MEVless --- RIPS/rip-8000.md | 199 ++++++++++++++++++++++++++++++++++++ assets/rip-8000/MEVless.png | Bin 0 -> 66120 bytes 2 files changed, 199 insertions(+) create mode 100644 RIPS/rip-8000.md create mode 100644 assets/rip-8000/MEVless.png diff --git a/RIPS/rip-8000.md b/RIPS/rip-8000.md new file mode 100644 index 0000000..94ed05b --- /dev/null +++ b/RIPS/rip-8000.md @@ -0,0 +1,199 @@ +--- +rip: 8000 +title: MEVless Protocol +description: A protocol that prevents MEV attacks by constraining transaction ordering through blind sequencing and two-phase block execution. +author: Lawliet Chan (@lawliet-chan) +discussions-to: https://ethresear.ch/t/mevless-protocol-the-way-to-anti-mev/23084 +status: Draft +type: Standards Track +category: Core +created: 2025-09-25 +--- + +## Abstract + +This proposal introduces the MEVless protocol, a novel approach to prevent Maximum Extractable Value (MEV) attacks by implementing blind transaction sequencing. The core principle of MEVless is to prevent validators from seeing transaction content during the ordering phase, thereby eliminating the fundamental prerequisite for MEV attacks. The protocol separates block production into two phases: sequencing blocks that order transactions based on transaction hashes without revealing transaction content, and execution blocks that execute transactions in the predetermined order. This design eliminates the ability of miners and validators to perform MEV attacks such as sandwich attacks and front-running by removing their access to transaction content during the critical ordering phase. + +## Motivation + +MEV attacks, particularly sandwich attacks and front-running, represent a significant threat to blockchain ecosystems, especially in DeFi applications. The fundamental prerequisite for MEV attacks is that validators can see transaction content before ordering, which allows them to: + +1. **Sandwich Attacks**: Insert buy and sell transactions around user transactions to manipulate prices and extract value +2. **Front-running**: Execute similar transactions before users to capture arbitrage opportunities +3. **Back-running**: Execute transactions after users to benefit from price movements + +Unlike legitimate arbitrage activities that provide liquidity, these attacks are purely extractive and harmful to the ecosystem. They reduce user confidence, increase transaction costs, and can lead to significant financial losses for users. + +**L2 as the Primary anti-MEV Battlefield in the future**: MEV attacks are particularly problematic on L2 networks, which have become the primary venues for DeFi activities due to lower transaction costs and higher throughput. L2 networks should be the primary focus for MEV resistance, not L1, because L2s can implement more aggressive anti-MEV measures at the protocol level. Unlike L1 which must maintain broad compatibility, L2 networks can be purpose-built for specific applications (DeFi, DEX, etc.) and implement fundamental changes to transaction ordering and execution that would be impossible on general-purpose L1 chains. The specialized nature of L2 applications allows for more thorough MEV resistance through protocol-level modifications. + +Current solutions have limitations: +- **Encrypted Mempools**: High computational overhead for encryption/decryption +- **Private Mempools**: Centralized and not fully decentralized, use trustful instead of trustless. +- **PBS (Proposer-Builder Separation)**: Still allows builders to see transaction content and becoming more and more centralized. + +The MEVless protocol addresses these issues by fundamentally changing how transactions are ordered, making it impossible for miners to perform MEV attacks while maintaining decentralization and efficiency. This approach is particularly suitable for L2 implementation where protocol-level changes can be more easily adopted and optimized for specific use cases. By eliminating MEV attacks at the protocol level, DeFi developers can focus on building innovative financial products and user experiences without constantly worrying about MEV protection mechanisms, leading to faster development cycles and more robust applications. + +## Specification + +### Protocol Overview + +The MEVless protocol operates on a two-phase block system: + +1. **Sequencing Blocks**: Order transactions based on transaction hashes and prepayment amounts without revealing transaction content. Sequencing blocks interval can be shorter than execution blocks. +2. **Execution Blocks**: Execute transactions in the predetermined order from sequencing blocks + +### Block Types + +#### Sequencing Blocks +- **Purpose**: Order transactions and collect prepayments +- **Frequency**: Every odd-numbered block height +- **Operations**: + - Receive transaction hashes from users + - Collect prepayments (gas fees + optional tips) + - Order transactions by prepayment amount (highest first) + - Publish ordered transaction sequence as commitment + - Store transaction hashes in block + +#### Execution Blocks +- **Purpose**: Execute transactions in predetermined order +- **Frequency**: Every even-numbered block height +- **Operations**: + - Receive transaction content from users + - Verify transaction content matches committed hashes + - Execute transactions in predetermined order + - Optionally fetch transaction content from Data Availability (DA) layer + +### Transaction Flow + +#### Phase 1: Transaction Submission and Sequencing + +1. User creates transaction and calculates transaction hash +2. User sends transaction hash to the network with prepayment: + - **Base Gas Fee**: Fixed fee for hash storage and sequencing computation + - **Optional Tip**: Additional payment for priority in sequencing +3. Network validates user has sufficient balance for prepayment +4. Network orders transaction hashes by total prepayment amount (descending) +5. Network deducts prepayment from user account +6. Network publishes ordered transaction sequence as commitment +7. Network stores transaction hashes in sequencing block + +![MEVless Protocol Flow](../assets/rip-8000/MEVless.png) +*MEVless Protocol Transaction Flow* + +#### Phase 2: Transaction Content Submission and Execution + +1. User monitors network for their transaction hash commitment +2. User submits actual transaction content to network +3. User optionally submits transaction content to DA layer for additional security +4. Network receives transaction content during execution block +5. Network verifies transaction content matches committed hash +6. Network executes transactions in predetermined order +7. Network processes any remaining transactions from DA layer if needed + +### Consensus Requirements + +The MEVless protocol requires a consensus mechanism with **unpredictable block production** to prevent speculative MEV attacks. Without unpredictable block production, block producers can perform cost-free speculative MEV attacks by submitting transaction hashes and then deciding whether to submit their transaction content based on other users' transaction content, thus performing cost-free speculative MEV attacks. Since the prepayment ultimately goes to the block producer themselves, predictable block production allows them to recover their prepayment costs through block fees, making MEV attacks economically viable. Random block production forces attackers to pay prepayments for speculative transactions without knowing if they will be selected to produce the next block, making the prepayment cost real rather than recoverable through block fees, thus making such attacks economically unviable. The anti-MEV effectiveness increases exponentially with network decentralization - more validators mean lower individual selection probability, making attacks economically unviable. This protocol is compatible with Proof of Work, VDF-based consensus, and random beacon mechanisms, but incompatible with consortium chains, round-robin consensus, or any predictable block production schedules where validators can anticipate their turn to produce blocks. Additionally, the optional Data Availability layer prevents transaction withholding attacks by ensuring transaction content reaches the network even if block producers attempt to censor profitable transactions. + +### Data Availability (Optional) + +The protocol supports optional Data Availability integration: + +#### Purpose +- **Transaction Guarantee**: Ensures transaction content reaches the network +- **Anti-Censorship**: Prevents miners from withholding profitable transactions +- **Decentralization**: Allows non-mining nodes to participate in transaction execution + +#### Implementation +- **DA Layer**: Can use ETH Blob storage or other DA solutions +- **Fallback Mechanism**: If transaction content is not available from P2P network, fetch from DA +- **Cost-Benefit**: Users can choose whether to use DA based on transaction importance + +### Gas Economics + +#### Prepayment Structure +``` +Total Prepayment = Base Gas Fee + Optional Tip +``` + +- **Base Gas Fee**: Fixed cost for hash storage and sequencing computation +- **Optional Tip**: Variable amount for priority in transaction ordering + +#### Gas Cost Calculation +- **Sequencing Phase**: Minimal gas cost for hash operations +- **Execution Phase**: Standard gas cost for transaction execution +- **DA Integration**: Additional cost for DA layer usage (optional) + +## Rationale + +### Why Blind Sequencing? + +Blind sequencing eliminates the root cause of MEV attacks by preventing miners from seeing transaction content during the critical ordering phase. This approach is more efficient than encryption-based solutions and more decentralized than private mempool approaches. + +### Why Two-Phase Blocks? + +Separating sequencing and execution allows for: +- **Efficient Ordering**: Hash-based ordering is computationally lightweight +- **Network Efficiency**: Small hash data reduces bandwidth requirements +- **Commitment Mechanism**: Public ordering commitment prevents manipulation + +### Why Random Block Production is Critical? + +Random block production is essential to prevent speculative MEV attacks. When block producers cannot predict when they will be selected to produce blocks, they cannot reliably perform speculative MEV attacks because: + +- **Unpredictable Selection**: Attackers cannot know if they will be the next block producer +- **Economic Risk**: Speculative transactions require prepayments that are lost if the attacker is not selected +- **Decentralization Amplification**: More validators mean lower individual selection probability, increasing attack costs exponentially + +### Why Optional DA? + +Data Availability provides additional security guarantees but comes with costs. Making it optional allows users to choose the appropriate security level for their transactions while maintaining protocol efficiency. + +## Backwards Compatibility + +This protocol is designed for new blockchain implementations or L2 solutions rather than existing chains. It does not affect existing Ethereum mainnet operations but can be implemented on: + +- **DeFi-specific application chains** +- **L2 rollups with custom execution environments** +- **New blockchain networks focused on DeFi applications** + +## Implementation Considerations + +### Network Requirements +- **P2P Communication**: Efficient hash and transaction content distribution +- **DA Integration**: Optional integration with Data Availability layers +- **L1 Integration**: Regular finalization on L1 for security + +### Performance Optimizations +- **Hash-based Ordering**: Minimal computational overhead +- **Parallel Execution**: Execution blocks can process transactions in parallel +- **Efficient Storage**: Transaction hashes require minimal storage space + +### User Experience +- **Transaction Monitoring**: Users need to track transaction hash commitments +- **Content Submission**: Users must submit transaction content after sequencing +- **DA Usage**: Optional DA integration for additional security + +## Test Cases + +### Basic Transaction Flow +1. User submits transaction hash with prepayment +2. Network orders transaction by prepayment amount +3. User submits transaction content +4. Network executes transaction in predetermined order + +### MEV Attack Prevention +1. Attacker submits transaction hash for sandwich attack +2. Network orders transaction without revealing content +3. Attacker cannot see victim transaction content during ordering +4. Attack fails due to lack of transaction visibility + +## Reference Implementation + +A reference implementation will be provided that includes: +- **Sequencing Block Logic**: Hash-based transaction ordering +- **Execution Block Logic**: Transaction execution in predetermined order +- **DA Integration**: Optional Data Availability layer support + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). diff --git a/assets/rip-8000/MEVless.png b/assets/rip-8000/MEVless.png new file mode 100644 index 0000000000000000000000000000000000000000..8cabe50b6b2a1ec62c3a6806d0b2cbd72f40e589 GIT binary patch literal 66120 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 literal 0 HcmV?d00001 From fefee00cb0093cb6953032fa55b9ced76f119013 Mon Sep 17 00:00:00 2001 From: Lawliet-Chan <1576710154@qq.com> Date: Thu, 25 Sep 2025 21:00:35 +0800 Subject: [PATCH 2/5] rename --- RIPS/{rip-8000.md => rip-TBA.md} | 4 ++-- assets/{rip-8000 => rip-TBA}/MEVless.png | Bin 2 files changed, 2 insertions(+), 2 deletions(-) rename RIPS/{rip-8000.md => rip-TBA.md} (99%) rename assets/{rip-8000 => rip-TBA}/MEVless.png (100%) diff --git a/RIPS/rip-8000.md b/RIPS/rip-TBA.md similarity index 99% rename from RIPS/rip-8000.md rename to RIPS/rip-TBA.md index 94ed05b..88e35fb 100644 --- a/RIPS/rip-8000.md +++ b/RIPS/rip-TBA.md @@ -1,5 +1,5 @@ --- -rip: 8000 +rip: TBA title: MEVless Protocol description: A protocol that prevents MEV attacks by constraining transaction ordering through blind sequencing and two-phase block execution. author: Lawliet Chan (@lawliet-chan) @@ -77,7 +77,7 @@ The MEVless protocol operates on a two-phase block system: 6. Network publishes ordered transaction sequence as commitment 7. Network stores transaction hashes in sequencing block -![MEVless Protocol Flow](../assets/rip-8000/MEVless.png) +![MEVless Protocol Flow](../assets/rip-TBA/MEVless.png) *MEVless Protocol Transaction Flow* #### Phase 2: Transaction Content Submission and Execution diff --git a/assets/rip-8000/MEVless.png b/assets/rip-TBA/MEVless.png similarity index 100% rename from assets/rip-8000/MEVless.png rename to assets/rip-TBA/MEVless.png From 2e9719baa16995b5b50ebdd28fbad9b3679f663a Mon Sep 17 00:00:00 2001 From: Lawliet-Chan <1576710154@qq.com> Date: Mon, 29 Sep 2025 08:25:53 +0800 Subject: [PATCH 3/5] rename TBA -> 8031 --- RIPS/{rip-TBA.md => rip-8031.md} | 4 ++-- assets/{rip-TBA => rip-8031}/MEVless.png | Bin 2 files changed, 2 insertions(+), 2 deletions(-) rename RIPS/{rip-TBA.md => rip-8031.md} (99%) rename assets/{rip-TBA => rip-8031}/MEVless.png (100%) diff --git a/RIPS/rip-TBA.md b/RIPS/rip-8031.md similarity index 99% rename from RIPS/rip-TBA.md rename to RIPS/rip-8031.md index 88e35fb..ca4c256 100644 --- a/RIPS/rip-TBA.md +++ b/RIPS/rip-8031.md @@ -1,5 +1,5 @@ --- -rip: TBA +rip: 8031 title: MEVless Protocol description: A protocol that prevents MEV attacks by constraining transaction ordering through blind sequencing and two-phase block execution. author: Lawliet Chan (@lawliet-chan) @@ -77,7 +77,7 @@ The MEVless protocol operates on a two-phase block system: 6. Network publishes ordered transaction sequence as commitment 7. Network stores transaction hashes in sequencing block -![MEVless Protocol Flow](../assets/rip-TBA/MEVless.png) +![MEVless Protocol Flow](../assets/rip-8031/MEVless.png) *MEVless Protocol Transaction Flow* #### Phase 2: Transaction Content Submission and Execution diff --git a/assets/rip-TBA/MEVless.png b/assets/rip-8031/MEVless.png similarity index 100% rename from assets/rip-TBA/MEVless.png rename to assets/rip-8031/MEVless.png From fb3d47a7e2ee07e3dc2f4b680c2f7ec216500bd7 Mon Sep 17 00:00:00 2001 From: Lawliet-Chan <1576710154@qq.com> Date: Mon, 29 Sep 2025 13:09:42 +0800 Subject: [PATCH 4/5] fix some details --- RIPS/rip-8031.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RIPS/rip-8031.md b/RIPS/rip-8031.md index ca4c256..85274a7 100644 --- a/RIPS/rip-8031.md +++ b/RIPS/rip-8031.md @@ -92,7 +92,7 @@ The MEVless protocol operates on a two-phase block system: ### Consensus Requirements -The MEVless protocol requires a consensus mechanism with **unpredictable block production** to prevent speculative MEV attacks. Without unpredictable block production, block producers can perform cost-free speculative MEV attacks by submitting transaction hashes and then deciding whether to submit their transaction content based on other users' transaction content, thus performing cost-free speculative MEV attacks. Since the prepayment ultimately goes to the block producer themselves, predictable block production allows them to recover their prepayment costs through block fees, making MEV attacks economically viable. Random block production forces attackers to pay prepayments for speculative transactions without knowing if they will be selected to produce the next block, making the prepayment cost real rather than recoverable through block fees, thus making such attacks economically unviable. The anti-MEV effectiveness increases exponentially with network decentralization - more validators mean lower individual selection probability, making attacks economically unviable. This protocol is compatible with Proof of Work, VDF-based consensus, and random beacon mechanisms, but incompatible with consortium chains, round-robin consensus, or any predictable block production schedules where validators can anticipate their turn to produce blocks. Additionally, the optional Data Availability layer prevents transaction withholding attacks by ensuring transaction content reaches the network even if block producers attempt to censor profitable transactions. +The MEVless protocol requires a consensus mechanism with **unpredictable block production** to prevent speculative MEV attacks. Without unpredictable block production, block producers can perform cost-free speculative MEV attacks by submitting transaction hashes and then deciding whether to submit their transaction content based on other users' transaction content, thus performing cost-free speculative MEV attacks. Since the prepayment ultimately goes to the block producer themselves, predictable block production allows them to recover their prepayment costs through block fees, making MEV attacks economically viable. Random block production forces attackers to pay prepayments for speculative transactions without knowing if they will be selected to produce the next block, making the prepayment cost real rather than recoverable through block fees, thus making such attacks economically unviable. The anti-MEV effectiveness increases exponentially with network decentralization - more validators mean lower individual selection probability, making attacks economically unviable. This protocol is applicable to Proof of Work, VDF-based consensus, and random beacon mechanisms, but not applicable to consortium chains, round-robin consensus, or any predictable block production schedules where validators can anticipate their turn to produce blocks. Additionally, the optional Data Availability layer prevents transaction withholding attacks by ensuring transaction content reaches the network even if block producers attempt to censor profitable transactions. ### Data Availability (Optional) From 36def92facd34fa6ca4d0d050ca225af97813662 Mon Sep 17 00:00:00 2001 From: Lawliet-Chan <1576710154@qq.com> Date: Fri, 10 Oct 2025 15:31:15 +0800 Subject: [PATCH 5/5] improve --- RIPS/rip-8031.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RIPS/rip-8031.md b/RIPS/rip-8031.md index 85274a7..8f244c8 100644 --- a/RIPS/rip-8031.md +++ b/RIPS/rip-8031.md @@ -83,11 +83,11 @@ The MEVless protocol operates on a two-phase block system: #### Phase 2: Transaction Content Submission and Execution 1. User monitors network for their transaction hash commitment -2. User submits actual transaction content to network +2. User submits actual transaction content(including the remaining gasfee) to network 3. User optionally submits transaction content to DA layer for additional security 4. Network receives transaction content during execution block 5. Network verifies transaction content matches committed hash -6. Network executes transactions in predetermined order +6. Network executes transactions in predetermined order, deduct the remaining fee and 50% of the actual difference between gasUsed and gaslimit for tax ( prevent the gasLimit much more than gasUsed so that validators can entire the whole block to get MEV) 7. Network processes any remaining transactions from DA layer if needed ### Consensus Requirements