Replies: 2 comments
-
The below solutions require identifying "accounts" based on deposit (or withdrawal) addresses, such that an "account" encompasses a collection of validators subscribed to the pool that are associated with a common deposit and/or withdrawal address. While the above notion of "account" can be sybilled by splitting one's validators into unique deposit/withdrawal addresses, that would be a lot of work just to grief the pool with intentional vanilla blocks. Thus, I think it's not too much of a real concern vs. the benefits of the below proposed solutions.
|
Beta Was this translation helpful? Give feedback.
-
Update on Quantifying Lost ETH in the Pool from Not Subscribing to Relays: With the help of https://payload.de, we have calculated the MEV-offset for each block proposed in the pool. By summing the MEV-offset of each block, we can determine the total amount of ETH lost in Smooth. The following stats have been calculated at 25/07/2024, 2229 total blocks proposed, 214 of them considered vanilla by the Oracle. Lost ETH from vanilla blocks only.
The pool lost approximately 6 ETH from vanilla blocks, which is about 3% of the total. Lost ETH from all blocks (vanilla + mev)
The pool lost almost 20 ETH from all blocks, which is about 9.5% of the total. Main Takeaway: Validators not registering to all relays, particularly the top ones like Ultrasound, Bloxroute, and Agnostic (https://mevboost.pics/), significantly impacts the pool's performance. Even if a validator proposes MEV blocks, it can still have a very high mev-offset, as seen with block 19496723 (https://payload.de/data/19496723/), where the validator didnt use a build by rsync-builder of 1.17 ETH, probably because it wasnt registered to the relay where rsync-builder operates. It’s challenging to penalize validators proposing MEV blocks with a high MEV-offset since this offset is not readable on-chain. Vanilla blocks can be penalized more easily (there is still the problem of vanilla false positives, but these occur rarely). Not all top relays are OFAC compliant. Agnostic & Ultra Sound are not. TLDR:
|
Beta Was this translation helpful? Give feedback.
-
The problem
Since the deployment of Smooth, a significant number of vanilla blocks have been proposed. We can define two types of vanilla blocks:
Vanilla blocks with MEV Opportunity are hurting the pool. These come from validators not registered to relays and therefore contributing less to it, but getting the same rewards as others. Proposing a lottery block without being registered to relays is near impossible.
Quantifying the loses
Right now, we know this problem exists but we havent properly quantified it. We can calculate how much ETH the pool has lost from missing MEV-Opportunities by calculating the mev-offset of each block proposed to the pool.
mev-offset: the difference between the max MEV a block could have had and the MEV a block had (0 in case of vanilla). This is the ETH the pool lost in each block.
Note that not only vanilla blocks are losing ETH, but also MEV blocks built by a builder that didnt extract the max MEV possible (a validator registered to only regulated relays will propose these blocks).
Solutions
Penalizing All Vanilla Blocks: This is not a viable option since some vanilla blocks genuinely have no MEV opportunity.
Penalizing Vanilla Blocks with MEV Opportunity: It is a hard task because the oracle (as it is right now) cant identify with 100% accuracy if a block had MEV Opportunity or not. This happens because builders dont always transfer MEV to the proposer as it is defined in the specs (in the latest TX of the block). Sometimes the MEV is transfered through SC calls.
Penalizing Based on Relay Registration Status: it is not possible nor useful. This information is provided only by relays themselves and it is offchain. Altering the state from offchain information would mean losing its capabilities of being "syncable" from scratch with only onchain data. Also, relays only offer the timestamp of the latest time a validator registered. Relays do not know if a validator is currently using the relay or not. Being registered to a relay isnt a guarantee that a validator will use it when its proposal time comes. At the time of writing this, only 10 out of 1960 validators dont have Smooth Fee Recipient in any relay.
DAO/Dappnode Manual Penalization: Manually penalizing any validator that proposes vanilla blocks with MEV opportunity could be an option.
Splitting the Pool: Separate smooth into a max-profit pool and a "vanilla" pool. The max-profit pool could be really agressive on penalizing for validators proposing blocks with mev-offset >0. Splitting has a clear drawback of less validators in each pool.
Beta Was this translation helpful? Give feedback.
All reactions