hadv / hadv/ethaura

feat: [Preconf Phase 3] Preconfirmation Protocol Integration (Post-Fusaka)

Open
#167 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
JavaScript
Stars
2
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Parent Issue
Part of #164 - Leverage EIP-7917 Based Preconfirmations for Sub-Second Transaction UX

## Overview
Integrate with actual preconfirmation protocols now that **Fusaka upgrade is live (Dec 3, 2025)** and EIP-7917 is active. This is the core implementation phase that connects EthAura to the preconf ecosystem.

## Prerequisites
- [x] ~~Ethereum Fusaka upgrade deployed (EIP-7917 active)~~ **✅ Live on Mainnet - Dec 3, 2025**
- [ ] Preconf protocol standardized (see research below)
- [ ] Bundler providers support preconfirmations

---

## 🔬 Preconfirmation Ecosystem Research (Dec 2025)

### Available Preconf Protocols

#### 1. **mev-commit by Primev** ✅ PRODUCTION READY
- **Status**: Live on Ethereum mainnet since early 2025
- **Adoption**: ~1% of Ethereum validators opted-in, 18,000+ preconfs settled
- **Network**: $100M+ in network security via Symbiotic restaking
- **Features**:
- P2P commitment network for transaction priority and ordering
- Private/encrypted mempool with MEV mitigation
- 50ms minimum blocktime capability
- Slashing via Symbiotic for broken commitments
- **FAST RPC**: Production RPC endpoint for wallets/dApps
- Endpoint: Available via Primev
- Ultra-low latency, 100% uptime, global endpoints
- **This is the easiest integration path for EthAura!**
- **Docs**: https://docs.primev.xyz/
- **GitHub**: https://github.com/primev/mev-commit

#### 2. **Commit-Boost** ✅ PRODUCTION READY
- **Status**: Production-ready, v0.9.2 released (Nov 2025)
- **What it is**: Validator sidecar that standardizes MEV-Boost + commitment protocols
- **Features**:
- Drop-in MEV-Boost replacement
- Support for preconfirmations, inclusion lists
- Audited by Sigma Prime
- Integrates with mev-commit
- **Adoption**: Multiple staking providers migrated from MEV-Boost (e.g., Stakely)
- **Docs**: https://commit-boost.github.io/commit-boost-client/
- **GitHub**: https://github.com/Commit-Boost/commit-boost-client

#### 3. **Bolt by Chainbound**
- **Status**: Development/Testing
- **What it is**: Permissionless proposer commitments for trustless preconfirmations
- **Features**:
- Bolt Sidecar for validators
- Constraints API for builders
- MEV-Boost compatible
- **GitHub**: https://github.com/chainbound/bolt

#### 4. **Gattaca preconf-rpc** ⚠️ ARCHIVED
- **Status**: Archived (Feb 2025)
- **What it was**: RPC proxy forwarding preconf requests to preconfers
- Note: Repository was archived, functionality may be absorbed elsewhere

### Bundler Support Status

| Bundler | Preconf Support | Notes |
|---------|-----------------|-------|
| Pimlico | ❓ Unknown | No public preconf API found |
| Alchemy | ❓ Unknown | No public preconf API found |
| Primev FAST RPC | ✅ Yes | Direct preconf integration |

### Recommended Integration Path for EthAura

**Option A: Primev FAST RPC (Simplest)** ⭐ RECOMMENDED
```javascript
// Just swap RPC endpoint for preconf-enabled transactions
const FAST_RPC_URL = 'https://fast-rpc.primev.xyz' // or similar

// Transactions automatically get preconfirmations
const result = await provider.sendTransaction(tx)
// Returns with preconf receipt
```

**Option B: Direct mev-commit Integration**
- Run mev-commit node alongside bundler
- Submit UserOps to mev-commit network
- Receive commitments from opted-in providers
- More control but more infrastructure

---

## Implementation Tasks

### Phase 3a: FAST RPC Integration (Quick Win)
- [ ] Evaluate Primev FAST RPC for UserOperation submission
- [ ] Test preconf response format and latency
- [ ] Integrate as optional RPC endpoint in network config
- [ ] Update UI to show preconf status from FAST RPC responses

### Phase 3b: Beacon Chain Integration
- [ ] Implement beacon chain RPC client
```javascript
class BeaconClient {
async getProposerLookahead() {
// GET /eth/v1/beacon/states/head/proposer_lookahead
// Returns: ValidatorIndex[] for next MIN_SEED_LOOKAHEAD+1 epochs
}

async getProposerForSlot(slot) {
// Returns proposer for specific slot
}

async getCurrentSlot() {
// Returns current beacon chain slot
}
}
```

- [ ] Add lookahead caching with epoch-aware invalidation
- [ ] Handle beacon chain reorgs gracefully

### Phase 3c: Direct mev-commit Integration (Optional)
- [ ] Research mev-commit bidder API
- [ ] Implement commitment request flow
- [ ] Add provider signature verification

### Proposer Signature Verification
- [ ] Verify proposer BLS signature on preconf commitment
- [ ] Validate proposer is actually scheduled for target slot
- [ ] Check commitment hasn't expired

### Slashing/Dispute Monitoring
- [ ] Monitor for broken preconf promises
```javascript
async monitorPreconfHonored(preconfReceipt) {
// Watch target block for UserOp inclusion
// If not included, proposer broke promise
// Log for potential slashing claim
}
```

- [ ] Implement dispute evidence collection
- [ ] Notify user if preconf was broken (rare edge case)

### Error Handling
- [ ] Handle proposer unavailable scenarios
- [ ] Fallback to standard bundler flow if preconf fails
- [ ] Handle network partitions gracefully
- [ ] Timeout handling for preconf requests

## Protocol Considerations

### Based Preconfirmations Flow
```
1. User submits UserOp to EthAura
2. EthAura queries beacon chain for next proposer (EIP-7917)
3. EthAura requests preconf from proposer (via gateway/mev-commit)
4. Proposer signs commitment: "I will include this UserOp in block N"
5. EthAura returns preconf to user (100-500ms)
6. Proposer includes UserOp when they produce block N
7. If proposer breaks promise, they can be slashed via Symbiotic
```

### Commitment Structure (mev-commit)
```javascript
{
userOpHash: bytes32,
targetSlot: uint64,
targetBlock: uint64,
maxGasPrice: uint256,
providerSignature: bytes,
timestamp: uint64,
expiresAt: uint64
}
```

## Files to Create/Modify
- `frontend/src/lib/beaconClient.js` - Full implementation
- `frontend/src/lib/preconfGateway.js` - Preconf protocol client
- `frontend/src/lib/bundlerClient.js` - Connect real preconf flow
- `frontend/src/lib/preconfVerifier.js` - Signature verification
- `frontend/src/config/networks.js` - Add FAST RPC endpoints

## Testing
- [ ] Integration tests with Primev FAST RPC
- [ ] Test proposer lookahead queries
- [ ] Test preconf request/response cycle
- [ ] Test fallback to standard flow
- [ ] Test broken preconf detection

## Acceptance Criteria
- [ ] Full preconf flow working on testnet/mainnet
- [ ] Sub-second preconfirmation feedback to users
- [ ] Graceful fallback if preconf unavailable
- [ ] Provider signature verification working
- [ ] Broken preconf detection and user notification

## Dependencies
- Phase 1: UI Preparation (complete)
- Phase 2: Bundler Abstraction (complete)
- ~~Fusaka upgrade (external)~~ **✅ Live**
- Preconf protocol availability **✅ Available (mev-commit, Commit-Boost)**

## Next Steps
1. ✅ Research complete - mev-commit FAST RPC is the recommended starting point
2. **Contact Primev** to get FAST RPC access/API key
3. **Test FAST RPC** on testnet with UserOperations
4. Integrate into EthAura bundler client

## Resources

### Documentation
- [Primev mev-commit Docs](https://docs.primev.xyz/)
- [Commit-Boost Docs](https://commit-boost.github.io/commit-boost-client/)
- [EIP-7917 Specification](https://eips.ethereum.org/EIPS/eip-7917)

### Research Papers
- [SoK: Preconfirmations (Oct 2025)](https://www.arxiv.org/pdf/2510.02947)
- [Measuring Validator Economics Under Preconfirmations (Sep 2025)](https://ethresear.ch/t/measuring-validator-economics-under-preconfirmations-early-mainnet-evidence/23066)

### Code
- [mev-commit GitHub](https://github.com/primev/mev-commit)
- [Commit-Boost GitHub](https://github.com/Commit-Boost/commit-boost-client)
- [Bolt GitHub](https://github.com/chainbound/bolt)

## Labels
`enhancement` `bundler` `preconfirmations`

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.