Skip to content

fix: enforce quorum registration on churn #467

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

Merged
merged 3 commits into from
May 1, 2025

Conversation

ypatil12
Copy link
Collaborator

@ypatil12 ypatil12 commented May 1, 2025

NOTE: #464 was merged to wrong target

Motivation:

It is possible to break the maxOperatorCount invariant by doing the following:

Let's assume there are two quorums, 1 and 2, with a maxOperatorCount of 2.

  1. Alice & Bob register for quorum 1
  2. Bob registers for quorum 2
  3. Bob deregisters from quorum 1, Charlie enters
  4. Quorum 1 Members: Alice/Charlie. Quorum 2 members: Bob
  5. Eve creates a churn registration that exits Bob. Quorum 1 has 3 members. This works just fine since we allow a churn to occur if the operatorToKick is registered to the AVS (not the quorum):
    // Check if operator is registered for all quorums we're trying to remove them from
    if (quorumsToRemove.isSubsetOf(currentBitmap)) {
    _forceDeregisterOperator(operator, quorumNumbers);
    }

Although this assumes that the churnApprover is buggy, we should still be enforcing that you are churning a user if they are registered for the quorum.

Modifications:

Require that the operatorToKick is registered for the quorum.

Result:

Stricter churn guarantees.

@ypatil12 ypatil12 force-pushed the hexens/eigen2-5 branch from 4200b45 to ee77c4f Compare May 1, 2025 17:05
@ypatil12 ypatil12 force-pushed the hexens/eigen2-5 branch from ee77c4f to 7f5b914 Compare May 1, 2025 18:35
@ypatil12 ypatil12 merged commit 3419d2a into hexens-slashing/audit-fixes May 1, 2025
5 checks passed
@ypatil12 ypatil12 deleted the hexens/eigen2-5 branch May 1, 2025 19:52
ypatil12 added a commit that referenced this pull request May 7, 2025
**Motivation:**

Middleware slashing audit fixes from Hexens and Dedaub. 

**Modifications:**

**Medium Sev**
- #467

**Low Sev**
- #462
- #463
- #468
- #474 - note: this removes stale stakes checks from the `BLSSignatureChecker` 

**Informational/Docs**
- #465
- #466
- #472

**Result:**

Audit fixes applied to slashing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants