Proposal: Auctioning Batch Prioritization in the Miden Node #1310
Replies: 3 comments 7 replies
-
|
Thank you for the proposal! There's now solid work showing that auction-based express lanes can materially change how creation & capture of ordering values work in roll-ups, and I think it would be good to think of how to integrate those insights in Miden even if the proposal doesn’t yet fully account for Miden’s particulars. I think proposal may benefit from a deeper look at what bidders are really bidding for, and whether these good are present in Miden’s architecture. On transparent blockchains, ordering is valuable because every transaction competes for a single shared state — priority directly determines who wins a race. But Miden’s model is different: batches are locally proven, state is sharded across accounts, and most batches commute. In that world, there isn’t a clear global “priority lane” to sell. Scarcity only appears inside conflict sets (when batches touch the same accounts or depend on shared oracles). Everywhere else, what users may want may well be predictable inclusion, not ordering. A short per-block auction may also not always be feasible — bids would need to be proven and verified, and bidders don’t have access to the sequencer’s (or users') witness. Once Miden is decentralized, provers can only reason about "their" own transactions (possibly a "club" of mutually trusting users) and public events (oracle or bridge updates). So any priority signal must come from those shared, observable moments. In that light, the question I'm wondering about is what the unit of demand actually is. Is it “fresh inclusion after an oracle update”? “Being early within a conflict set”? “block-height base priority” for a scheduled batch? Each interpretation implies a different, smaller market — more like a knapsack of discrete event windows than a global order book. I’d encourage re-analyzing what bidders could rationally bid on in such a setting, and how those bids would be formed given limited visibility, high proving latency, and the need to preserve user privacy. That framing will make it clearer where an auction mechanism adds real value. /cc @yusufxzy |
Beta Was this translation helpful? Give feedback.
-
|
Hey, I like the direction and agree with the principle As @huitseeker pointed out, competition for batch (or in fact, transaction) ordering occurs only for accounts whose state can be changed by multiple parties. In my understanding, there are technically two kinds of accounts that fall into this category:
User-defined batches, as far as I understand, are only applicable to the former. This would indicate that such competition is not only for priority but also for inclusion itself, due to race conditions. If my understanding is correct, it would heavily limit the available use cases — not only for auctions but for user-defined batches per se. In my view, meaningful and practical competition for transaction or batch ordering would really be relevant for network accounts and transactions. For instance, a In such a context, auctions might not only be useful but necessary for MEV management. In fact, the same applies to network transactions without batches. For example, arbitrageurs competing for constant product AMM pool opportunities — the order in which their (swap) notes are included in the network transaction — would have a direct impact on the price they receive. |
Beta Was this translation helpful? Give feedback.
-
|
I feel like this complicates matters significantly but I don't really understand the details so I'll only comment on the practical problem of ordering transactions and batches. First some corrections. Transactions and batches are not FIFO, but rather are selected randomly from the viable subset in the mempool:
An ancestor here means any transaction/batch which this transaction/batch must follow after in order to be a valid state transition. From the above discussion I think everyone has missed that this includes note creation and consumption - it is not only prior transactions affecting an account. This dramatically complicates ordering requirements. User submitted batches can depend on other batches or transactions and cannot be included without the others being included first. User batches can also introduce cyclic dependencies, where batch A depends on B, and vice versa. On a more personal note, I'm also somewhat disappointed that use cases so far seem to be entirely financial instruments related which to me is by far the least interesting side of blockchains. Does one really want chain priority to be primarily trading? Sort of feels like this would inherently skew the chain usage towards this "express" lane. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Proposal: Auctioning Batch Prioritization in the Miden Node
Summary
Introduce an auction mechanism for batch prioritization in the Miden Node.
Users and applications could bid in MDN for inclusion priority of their user-defined batches.
The proceeds of these auctions are then redistributed to MDN stakers through a staking contract, providing protocol-native yield derived from blockspace demand rather than inflation.
This idea came from https://github.com/yusufxzy
Background
Miden’s architecture allows users to define and prove their own batches — sequences of transactions that can be executed atomically and submitted to the network once proven.
The Miden Node (sequencer / block producer) is responsible for ordering these user-defined batches into blocks before consensus and finalization.
Currently, batch ordering follows a simple FIFO policy.
As network activity grows, contention for blockspace and inclusion priority will increase, especially for applications that depend on latency (trading, oracles, private settlements, etc.).
This proposal introduces a market-based prioritization layer, allowing users to compete fairly for inclusion order, while ensuring that the resulting value accrues back to the protocol and its stakers.
We can link this idea to @partylikeits1983's idea of 0xMiden/protocol#2001 or simply a native Swap-system on Miden where users create public Swapp notes and the seekers / auctioneers pick it up and arbitrage.
Motivation
Design Overview
1. Auction scope
Each Miden block includes multiple user-defined batches.
Before assembling a block, the Node opens a short auction window for the upcoming block height (e.g. block N).
Bidders can submit sealed bids in MDN, referencing their batch commitment.
2. Auction mechanism
3. Settlement
When the block is finalized:
4. Reward distribution
The staking contract accumulates all auction proceeds and distributes them to MDN stakers pro-rata per epoch.
This creates a native staking yield tied to blockspace demand.
Example Flow
B1,B2) to the Node.[B1, B2, ...remaining FIFO batches].Implementation Notes
BlockProducerlogic (see miden-node/src/node/execution/block_producer.rs) to handle auction logic before final ordering.Economic Considerations
Next Steps
References
Discussion goal:
Gather feedback on the feasibility, architecture, and incentive implications of integrating Batch Prioritization Auctions into the Miden Node, and how it could serve as a foundation for sustainable, usage-based staking yield in the Miden ecosystem.
Beta Was this translation helpful? Give feedback.
All reactions