Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add EIP: Anti-correlation attestation penalties #8598

Merged
merged 7 commits into from
Jun 11, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 85 additions & 0 deletions EIPS/eip-7716.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
---
eip: 7716
title: Anti-correlation attestation penalties
description: Adjust penalties for missed attestations based on in-slot correlation of missed attestation
author: dapplion (@dapplion), Toni Wahrstätter (@nerolation), Vitalik Buterin (@vbuterin)
discussions-to: https://ethereum-magicians.org/t/eip-7716-anti-correlation-attestation-penalties/20137
status: Draft
type: Standards Track
category: Core
created: 2024-05-25
---


## Abstract

The decentralization of the validator set is one of the most important properties of Ethereum for credible neutrality and censorship resistance. By adjusting penalties to foster decentralization, diversification and fault-tolerance, this EIP proposes to adjust penalties in a way that more diversified entities get lower penalties while entities with high correlations in their setup face more servere ones.


## Motivation

As of now, during times of usual network operation, there are no economic incentives to diversify node operations through using multiple different nodes, geographical locations, clients, ISP providers, etc., except for reducing the risk of penalties affecting all validators simultaneously, thereby limiting the impact to only a fraction of them.

Attestation penalties are currently agnostic to other participation actions. This proposal scales attestation penalties as a function of other participants' actions. The goal is to decrease the profitability of participants that exhibit correlated behavior.



## Specification

| Parameter | Value |
| - | - |
| `PENALTY_ADJUSTMENT_FACTOR` | `4096` |
| `MAX_PENALTY_FACTOR` | `4` |


Add a variable `NET_EXCESS_PENALTIES` to the beacon state.

Let `penalty_factor` be determined through

```
dapplion marked this conversation as resolved.
Show resolved Hide resolved
min(
(non_attesting_balance * PENALTY_ADJUSTMENT_FACTOR) // (NET_EXCESS_PENALTIES * total_active_balance + 1),
MAX_PENALTY_FACTOR
)
```

Let `NET_EXCESS_PENALTIES` be `max(1, NET_EXCESS_PENALTIES + penalty_factor) - 1`



## Rationale

### PENALTY_ADJUSTMENT_FACTOR

This variable impacts the sensitivity of the `NET_EXCESS_PENALTIES`.

Given stable participation, the `penalty_factor` is one.
If participation decreases, the `penalty_factor` will temporarily increase above one until `net_excess_penalties` catches up.
If participation increases, the `penalty_factor` will temporarily be zero until `net_excess_penalties` catches up.

The `PENALTY_ADJUSTMENT_FACTOR` regulates how fast `net_excess_penalties` catches up.
In other words, the `PENALTY_ADJUSTMENT_FACTOR` determines the frequency that the penalty_factor is not one.

A high `PENALTY_ADJUSTMENT_FACTOR` causes the `net_excess_penalties` to adjust slower.
A low `PENALTY_ADJUSTMENT_FACTOR` causes the `net_excess_penalties` to react more sensitive to changes in participation.


### `MAX_PENALTY_FACTOR`

The `MAX_PENALTY_FACTOR` puts a ceiling onto the maximum factor with which the penalty for missed attestations is scaled to prevent overly harsh punishments.


## Backwards Compatibility

This is a backwards incompatible adjustment of attestations rewards and penalties that requires a scheduled network upgrade.


## Security Considerations

We acknowledge that splitting validator views can be leveraged as an attack to increase the `penalty_factor` for validators of consecutive slots with little risk for the proposer.
TBD.

## Copyright

Copyright and related rights waived via [CC0](../LICENSE.md).

Loading