Questions about BuilderNet Block‑Building, Refund Rule, and TEE Guarantees

Hi BuilderNet team,

After reading the BuilderNet documentations, I’d appreciate clarification on a few implementation details:

  • Are operators free to run their own custom block‑building logic, or is there a reference / default algorithm that most operators follow?

  • Is every transaction supposed to be shared across all operators, or could an operator keep a private mempool and only broadcast at the last moment?
    Similarly, is it permissible to append very late‑arriving orders only to one’s own candidate block?

  • For the “best block minus one tx” refund calculation, does BuilderNet actually compute the optimal block after removing each transaction?
    If so, is the algorithm used for that “best block” search publicly documented or open‑sourced?

  • Does the protocol assume active bid competition between builders?
    If builders bid aggressively, wouldn’t the refundable margin be driven close to zero?
    Conversely, if we assume little or no competition now, what happens when more builders join BuilderNet—will the proposer’s share fall sharply?

  • Which specific properties or constraints are verified inside the TEE? Could you outline the high‑level flow from order submission through TEE verification to block proposal?

  • How does the sender know that the recipient has indeed received and processed the order inside a TEE? Is there an attestation or other cryptographic proof provided back to the sender?

5 Likes

Hi @82y31. Great questions!

Let me try to briefly go through them one by one:

  1. All nodes/operators run the same block-building logic with the default algorithms.
  2. Every transaction is shared across all builder nodes. The orderflow-proxy service receives transactions and shares them with orderflow-proxy on all other instances, as well as with rbuilder. See also Operating system, services and reproducible builds | BuilderNet
  3. BuilderNet does compute the optimal block after removing each transaction. For this, the transactions are stored in the redistribution archive (see also Architecture overview | BuilderNet)
  4. Builder nodes don’t compete with each other, but they collaborate. They do not try to outbid each other, rather they are aware of each other’s bids, as well as of those of competitors.

Your last two questions are about verifying the TEE proof, and how a sender can be sure about it. This is documented in more detail here: Orderflow encryption and attestation | BuilderNet

In short:

  1. Users can reproducibly build the BuilderNet node VM images, and arrive at exactly the same TDX measurements as published on https://measurements.builder.flashbots.net/
  2. Every builder node creates a local TLS certificate, of which the private key reside exclusively inside the TEE instance (and never leaves it).
  3. Every builder node exposes a server to validate it’s TEE proof with aTLS. During TLS setup on this port, the TEE proof validation (attestation) is performed, which establishes a secure channel into a verified TEE instance. Over this secure verified channel, users receive the TLS certificate.
  4. Users can use this TLS certificate which they received after the TEE proof validation to send orderflow to the instance (they can require the server to possess the private key for this certificate).

See also Orderflow encryption and attestation | BuilderNet for more details.

Hope that helps, and happy to dive deeper and answer more questions!

5 Likes

Hi, I recently switched to BuilderNet and I have a few questions as well:

  • About the refund rule, if I understand correctly I don’t have to do anything specific to receive a refund based on my bundle contribution. Is that correct? I have not received any refunded ETH yet (it’s been a few days) so I’m wondering if I’m missing something.
  • Moreover the dune query that tracks the refund batches that is linked in the BuilderNet documentation (query 4398421/7371992, can’t include link in post) shows that the last one was sent more than two months ago. Is the query outdated?
  • “Builder nodes don’t compete with each other, but they collaborate.” I don’t understand this part. In what way do they collaborate? And how does it benefit them?

Lastly, I have a broader question about BuilderNet itself: it looks amazing for searchers, but not so great for existing block builders. Titan and Beaverbuild make around 90% of the blocks, what are their incentives to become a BuilderNet node? It seems like this is just a losing move for them, as most of what they earn would be distributed back to searchers.

I know Beaverbuild made the switch already, I’d like to understand why. Similarly, is there any chance Titan makes the switch as well?

2 Likes

I don’t have to do anything specific to receive a refund based on my bundle contribution. Is that correct?

Yep that’s right. You don’t have to do anything to receive refunds right now. They’re disbursed every few months (the query is correct). Pending refund amounts are also updated ~daily in this dashboard: Hex

We want to move this to a claim-based model in the future, so you could fetch your refund whenever you want to.

In what way do they collaborate?

The nodes coordinate their bids to avoid paying more than necessary in the MEV-Boost auction. Instead of trying to out-bid each other, they only try to out-bid other external block builders. This allows them to retain more of the block value (and refund it to users).

And how does it benefit them?

There is no economic benefit to running a node in BuilderNet today.

it looks amazing for searchers, but not so great for existing block builders

Many block builders today are vertically integrated searchers.

I know Beaverbuild made the switch already, I’d like to understand why. Similarly, is there any chance Titan makes the switch as well?

Will let other teams speak for themselves, you can read more from Beaverbuild here :slight_smile: https://beaverbuild.org/buildernet.txt

1 Like

Thanks for the reply! That brings one simple but important question: what’s the point for anyone to become a node operator?

  • As a searcher, can I include my own transactions in the blocks I build without sharing them with other node operators? If I can it’s definitely a good move for me, but that would bring the centralization problem back wouldn’t it? (with operators competing for orderflow and making private deals)
  • If I can’t, then I’m just losing money by maintaining a node for no benefit?

Yes that’s correct, nodes are run at cost today.

Orderflow sharing isn’t just to avoid centralization from exclusive deals, it also drives better censorship resistance and refunds/price. Both of which matter quite a lot to the searchers we’ve spoken with.

Ok thank you for the answer. Regarding the refund rule I’m not sure I completely understand it so let’s take the following example:

  • We have searchers A and B looking at the same arbitrage opportunity.
  • They each send one tx to BuilderNet. A bids $100 and B bids $99.
  • A is selected for inclusion. Since they bid $1 more than the second best bid, they’re eligible for a 1$ refund.
  • BuilderNet submits a block with this single tx inside it (so the block value is $100).
  • At the same time, Titan submits a block with a value of $80.
  • BuilderNet wins the block by paying the validator $81, leaving $19 to be redistributed to orderflow providers.
  • A is refunded $1.

Is that scenario correct? If so, are the remaining $18 kept by BuilderNet?