Key-Withholding Optionality as a Structural MEV Risk in EIP-8105 and LUCID: Analysis, Quantification, and Mitigation Proposals
Wallet Address: 0x5e4e5ea537ce7e79b8a0fc4f0cb520e9b8b5dae5 Name / Pseudonym: Favor| Bonux Role / Experience: Independent Protocol Researcher & Builder Contact: Telegram: Contact @favor59
Executive Summary
This post provides technical feedback on EIP-8105 (Universal Enshrined Encrypted Mempool) and EIP-8184 (LUCID). Both proposals mark a significant step toward eliminating harmful MEV from Ethereum’s public mempool, and the convergence of both teams around a shared direction is encouraging.
My feedback is focused on a structural incentive problem that I believe is underweighted in both EIPs: key-withholding is not only a liveness concern — it is a mechanism that grants decryptors embedded economic optionality over state transitions. When this optionality is properly modeled, the existing penalty mechanisms in both proposals appear insufficient to neutralize it under adversarial conditions.
I also raise two secondary observations:
- EIP-8184 already includes FRAME (EIP-8141) integration as an optional extension. I argue this integration should be treated as a primary design path rather than an alternative, particularly to simplify the wallet adoption story.
- The PTC bribery surface introduced by LUCID’s per-key timeliness vote is qualitatively different from — and more granular than — the existing binary payload timeliness vote.
Part 1 — Key Withholding as Embedded MEV Optionality
1.1 How Both EIPs Currently Treat Withholding
EIP-8105 explicitly permits key withholding. The rationale states: “The protocol explicitly allows decryption key providers to withhold decryption keys under conditions of their choosing.”
It relies on the key-provider trust graph and reputation effects as deterrents, with no in-protocol economic penalty mandated.
EIP-8184 (LUCID) goes further by introducing the `tob_fee` mechanism. A key publisher who withholds forfeits the `tob_fee` posted at commitment time. The penalty is structured so that a publisher who withholds forfeits `tob_fee` (the full amount), while a publisher who reveals recovers `(TOB_FEE_FRACTION - 1) / TOB_FEE_FRACTION` of that fee — i.e., `127/128` of the fee is returned on successful reveal, and `1/128` is burned.
The LUCID authors state that “selective reveal is therefore priced both in expectation and ex post.” This is the right framing, and the mechanism is thoughtful. But I want to show that under adversarial conditions, the pricing may still be exploitable.
1.2 Modeling the Withholding Decision
Consider a key publisher who has committed to an ST with `tob_fee = F`. At key release time, the publisher observes information not available at commitment time — specifically, the decryption keys and execution results of other STs that have already been revealed.
The publisher’s decision at reveal time is binary:
- Reveal → recover `F × (TOB_FEE_FRACTION - 1) / TOB_FEE_FRACTION = F × 127/128`. Net cost of withholding avoidance = `F/128`.
- Withhold → forfeit full `F`. Net penalty = `F`.
The publisher will rationally withhold when:
E[V_withhold] − F > E[V_reveal] − F/128
Where `V_withhold` is the value captured by suppressing the transaction (e.g., a competing arbitrage that now succeeds because the user’s trade does not execute), and `V_reveal` is the value of simply letting the transaction execute.
Rearranging:
E[V_withhold] − E[V_reveal] > F − F/128 = F × 127/128
So withholding is rational when the marginal value of suppression exceeds `127/128 × F`. For a publisher posting a modest `tob_fee`, this is a relatively low bar when the underlying transaction carries high value.
1.3 A Concrete Example
Suppose a user submits an encrypted large-volume DEX trade. At commitment time, the publisher does not know the exact nature of the payload. At reveal time — after observing other decrypted STs — the publisher infers:
- The trade will move the price of a token by approximately X%.
- The publisher controls a separate account positioned to profit from the resulting price impact.
- The marginal profit from suppressing the trade and executing instead = `V_suppress = 5 ETH`.
The publisher’s ST commitment had `tob_fee = F = 0.1 ETH`.
Withholding penalty = `F × 127/128 ≈ 0.099 ETH`. Profit from withholding = `5 ETH − 0.099 ETH ≈ 4.9 ETH`.
The publisher withholds. The current penalty structure does not deter this.
1.4 Why This Is Structurally Different from Builder MEV
This might seem analogous to a builder front-running — and in a sense it is. But there is an important structural difference:
Under the current (pre-encrypted-mempool) system, a builder who front-runs a user’s transaction takes on execution risk. The front-run trade competes with the user’s revealed transaction and the outcome depends on gas pricing and ordering competition. Multiple builders compete and the market has some self-correcting properties.
Under an encrypted mempool with key-withholding optionality, the key publisher holds a risk-free conditional option: if the state is favorable, reveal; if not, withhold at the cost of `F`. This is not a competitive market — it is a monopoly option granted to a single entity per transaction, with no competing mechanism to price the option fairly.
The protocol as currently designed replaces one MEV mechanism with another that is structurally less competitive.
1.5 Aggregate Optionality Accumulation
A sophisticated key publisher operating at scale could:
- Commit to many STs across a slot.
- Observe keys released by other publishers in sequence.
- Selectively withhold STs whose execution would be adverse to its off-chain positions.
As more decrypted transactions execute and reveal state, each subsequent withholding decision becomes more informed. Later STs in the ToB ordering are therefore exposed to higher-quality optionality than earlier ones, even if they posted identical `tob_fee` values.
LUCID’s `max_preceding_commitments` parameter allows users to bound how many commitments can precede them, which partially addresses this by limiting the amount of observable state at the time of their key release decision. But it does not directly price the value of that observable state — it only limits its quantity.
Part 2 — Proposed Mitigations
2.1 State-Adaptive Penalty Scaling
The current `TOB_FEE_FRACTION = 128` produces a fixed cost-of-withholding equal to `F/128 × 128 = F`. The problem is that `F` is set at commitment time, before the publisher knows the value of the withholding option.
A stronger design would make the penalty a function of observable state at reveal time, not just the pre-committed `tob_fee`. Concretely:
After all STs in a bundle are revealed, the protocol could compute the `gas_used` or aggregate `tx_value` of revealed STs and scale the non-reveal penalty for any withheld ST in the same bundle proportionally.
This is admittedly complex to implement cleanly without revealing payload contents prematurely. A simpler approximation: require publishers to post a bond scaled to the gas_limit of their committed STs, separate from and additive to the `tob_fee`. The bond is released only upon successful reveal. This is analogous to collateral in a lending protocol: sized to the potential value at risk, not the *committed fee*.
2.2 Threshold Key Release as a Default for High-Value STs
For STs above a value threshold (which could be estimated from `gas_limit × max_fee_per_gas`), the protocol could require that the decryption key be released via a k-of-n threshold mechanism rather than by a single publisher. This eliminates the single-entity withholding option entirely.
EIP-8105 is already scheme-agnostic and could accommodate this without modifying the transaction format — the `key_provider_id` could identify a threshold scheme. LUCID could likewise designate threshold-based key publishers in its trust registry.
The tradeoff: threshold schemes introduce latency and coordination complexity. But for high-value transactions where the withholding option has real economic value, this tradeoff is worth accepting.
2.3 Commit-Reveal Separation with Locked Reveal Timing
Both EIPs allow flexible reveal timing within a slot. EIP-8105 allows “immediate… or delay publication to a later point in the slot.” LUCID allows key release after observing the beacon block and “when the key publisher is confident that the beacon block will become canonical.”
This flexibility is the direct source of the information asymmetry that creates optionality. A publisher who delays revelation has more time to observe other keys and make a more informed decision.
Recommendation: Require that key reveal timing be committed to before ordering is finalized. Concretely, a publisher should be required to specify whether their key will be released immediately upon payload publication or at a specific sub-slot deadline, and this commitment should be binding. Late reveals (relative to the committed schedule) would be treated as withholds, forfeiting the full `tob_fee`.
This does not eliminate optionality entirely — a publisher can still choose to withhold — but it eliminates the information-gathering advantage of strategic delay.
2.4 Transparent Withholding Attribution On-Chain
Both EIPs have mechanisms for recording whether keys were present or absent (EIP-8105’s PTC bitfield; LUCID’s `LucidKeyTimelinessVote`). Neither EIP mandates that the specific publisher identity responsible for a withhold event be durably recorded on-chain in a publicly queryable form.
Recommendation: Emit an on-chain event or include in block header metadata the key publisher address and the `commitment_root` for any committed ST whose key was withheld. This enables:
- Trustless verification of withholding history by anyone.
- Integration with reputation systems and staking slash conditions.
- Analytics to detect systematic patterns of selective withholding.
The data is small (32 + 20 bytes per event) and the informational benefit for ecosystem health is substantial.
Part 3 — PTC Bribery Surface in LUCID
3.1 The New Attack Vector
LUCID introduces a `LucidKeyTimelinessVote` cast by PTC members on a per-ST-commitment basis, in addition to the existing binary payload timeliness vote from EIP-7732. The EIP acknowledges:
“A coalition of PTC members… could be bribed to systematically vote ‘timely’ on keys originating from specific key publishers, artificially extending their permitted release window.”
This is correctly identified. I want to add that the attack surface here is structurally larger than the analogous bribery risk on the existing payload timeliness vote, for two reasons:
First, granularity. The payload timeliness vote is binary per slot: a corrupted vote affects one single yes/no question. The LUCID key-timeliness vote is cast per-commitment, and a slot may contain many commitments (up to `MAX_ST_COMMITS = MAX_ST_COMMITS_PER_IL × IL_COMMITTEE_SIZE`). Each vote can be individually targeted, meaning a bribe attack can be precisely scoped to benefit a specific key publisher without triggering broad anomaly detection.
Second, asymmetric observability. By the time PTC members cast their key-timeliness vote, they have already observed which keys were released and which were not. A bribed PTC member voting “timely” on a late key knows with certainty what outcome their vote produces. There is no execution uncertainty. This makes the bribe more predictable and therefore cheaper to execute than bribing validators in a context where execution outcomes are uncertain.
3.2 Proposed Mitigation
LUCID’s rationale section mentions “view-merge” as an alternative to separate PTC key-timeliness votes. Under view-merge, the next-slot builder merges differing views of released keys without a formal committee vote. The authors note this “reduces the direct per-key voting surface.”
I recommend the authors clarify whether view-merge is intended to be specified as a concrete alternative mechanism or remains at the level of a conceptual note. If the per-key PTC vote is retained, the per-commitment bribery surface should be explicitly modeled in the security considerations section, with a proposed detection or deterrence mechanism.
Part 4 — FRAME Integration as Primary Path, Not Alternative
4.1 Current Status
EIP-8184’s Rationale section already includes FRAME (EIP-8141) integration as an alternative specification:
“LUCID can be integrated with EIP-8141 by allowing `signature_id = FRAME_TX_TYPE`…”
This is correctly specified at a technical level. My feedback is about **positioning**, not technical gap.
4.2 Why Primary Matters
As currently scoped, FRAME integration is an optional extension — requiring a future EIP making coordinated additions. This means wallets and infrastructure providers are likely to implement the primary path (non-FRAME ST tickets) and treat FRAME integration as a later upgrade.
This matters for a specific reason: **wallet adoption is the single largest friction point for encrypted mempool deployment.** If wallets must implement separate integration flows for LUCID STs and potentially for EIP-8105-style encrypted envelopes, many will delay or implement only one path. Every wallet that does not support encrypted transactions is a user who cannot benefit from the mempool protection these EIPs are designed to provide.
EIP-8141 (FRAME) already unifies authentication, authorization, and execution intent into a composable abstraction. Making FRAME the primary — rather than optional — transaction substrate for both EIPs would:
- Reduce the number of distinct transaction lifecycle flows wallet developers must implement.
- Create a natural upgrade path to post-quantum signature schemes without requiring new encrypted-mempool-specific transaction formats.
- Allow LUCID and EIP-8105 users to share a unified wallet UX layer, even if the underlying key mechanisms differ.
4.3 Recommendation
The authors of both EIPs should coordinate explicitly on whether FRAME integration will be treated as a primary design goal for the Hegotá upgrade or deferred. If deferred, the deprecation path for the current non-FRAME formats should be documented, so wallet developers do not build against interfaces that will later be replaced.
Questions for the Authors
To EIP-8105 authors: The key provider trust graph allows users to implicitly trust providers designated by their chosen provider. But the trust graph is dynamic and can be updated after a user has already submitted encrypted transactions. What prevents a key provider from retroactively expanding its trust set to include a malicious provider after users have already chosen it — effectively reducing user guarantees without their knowledge?
To LUCID authors: The `tob_fee` mechanism prices withholding in expectation. But the penalty `F × 127/128` is fixed at commitment time, while the value of the withholding option accrues dynamically as other keys are revealed. Has the team considered dynamic penalty scaling — where the penalty increases as more state becomes observable post-commitment? If not, what is the strongest argument that fixed penalty scaling is sufficient?
To both teams: Given that EIP-8105 requires EIP-7732 (ePBS) while LUCID requires EIP-7805 (FOCIL), and both are being considered for Hegotá — what is the sequencing dependency? Does inclusion of LUCID in Hegotá require FOCIL to be finalized first, and how does the team plan to coordinate activation if one precedes the other?
Conclusion
EIP-8105 and LUCID represent the most credible path to eliminating harmful MEV from Ethereum’s public mempool. The convergence of the two teams is a positive development. The technical designs are thoughtful and clearly informed by years of real-world deployment experience.
The core risk I am flagging — key withholding as embedded economic optionality — is not a reason to reject either proposal. It is a reason to strengthen the economic penalty mechanisms before deployment. The asymmetry between a fixed commitment-time penalty and a dynamically accruing withholding option is a structural gap that adversarial key publishers can exploit at scale.
Addressing this directly, alongside the PTC bribery surface introduced by LUCID’s per-key vote and the wallet adoption friction created by optional FRAME integration, would make the resulting protocol significantly more robust.
I look forward to the discussion.
Feedback submitted as part of the POIDH Bounty: Provide Feedback on the Draft EIPs *Forum: [shutternetwork.discourse.group]( POIDH Bounty: Provide feedback on the draft EIPs - Shutter Forum *)