docs(slashing): align operator and slasher docs with AZIP-7#23494
Merged
Conversation
…DESCENDANT_OF_INVALID Rename the slashing offence and its associated config knob, env var, helm value, and terraform variable to reflect that the slash now targets the proposer that publishes a descendant checkpoint to L1, not its attestors. Breaking for operators: SLASH_ATTEST_DESCENDANT_OF_INVALID_PENALTY -> SLASH_PROPOSE_DESCENDANT_OF_INVALID_PENALTY (see v5.0.0 changelog).
…OINT_WITH_INVALID_ATTESTATIONS Rename the offence (and its config knob, env var, helm value, terraform variable, etc.) from the previous shorter PROPOSED_DESCENDANT_OF_INVALID form to spell out the exact condition: a descendant of a checkpoint that had invalid (or insufficient) attestations.
…-1073-rename-attested-descendant-of-invalid
Refresh the operator-facing slashing-configuration guide to match the AZIP-7 end-state: remove the obsolete Valid Epoch Not Proven section, rewrite Data Withholding for the end-of-slot check, flip the descendant offense to proposer-fault framing to match the rename, and add sections for the new offenses (broadcasted invalid block / checkpoint, attesting to an invalid checkpoint, duplicate proposal, duplicate attestation). Sync the env var defaults and the watchers list with the current set. Also add a note under BROADCASTED_INVALID_CHECKPOINT_PROPOSAL in the slasher README to make the AZIP-7 "submitting block proposal after checkpoint" mapping explicit, since it is detected via the existing invalid-checkpoint watcher rather than its own offense type.
Base automatically changed from
phil/a-1073-rename-attested-descendant-of-invalid
to
merge-train/spartan
May 22, 2026 10:07
Refresh the operator-facing slashing-configuration guide to match the AZIP-7 end-state: remove the obsolete Valid Epoch Not Proven section, rewrite Data Withholding for the end-of-slot check, flip the descendant offense to proposer-fault framing to match the rename, and add sections for the new offenses (broadcasted invalid block / checkpoint, attesting to an invalid checkpoint, duplicate proposal, duplicate attestation). Sync the env var defaults and the watchers list with the current set. Also add a note under BROADCASTED_INVALID_CHECKPOINT_PROPOSAL in the slasher README to make the AZIP-7 "submitting block proposal after checkpoint" mapping explicit, since it is detected via the existing invalid-checkpoint watcher rather than its own offense type.
6af7aac to
4091621
Compare
aminsammara
reviewed
May 26, 2026
| - Measured per epoch by the Sentinel for validators on the committee during that epoch. | ||
| - Evaluated at the end of each epoch (plus a small buffer) without waiting for the epoch to be proven on L1, so inactive validators can be slashed regardless of prover availability. | ||
| - Block re-execution is used to attribute fault between proposers and attestors based on what actually happened in each slot, rather than using attestation count as a proxy. | ||
| - A validator is considered inactive for an epoch if their failure ratio meets or exceeds `SLASH_INACTIVITY_TARGET_PERCENTAGE` (default 0.8, meaning 80% or more duties missed). |
Contributor
There was a problem hiding this comment.
Do we really want to mention the default value in the docs?
aminsammara
reviewed
May 26, 2026
aminsammara
reviewed
May 26, 2026
|
|
||
| **Detection criteria**: Detected at the P2P layer by the AttestationPool, which tracks proposals by position (slot plus `indexWithinCheckpoint` for blocks, or slot for checkpoints). A second proposal for the same position with a different archive flags the duplicate. | ||
|
|
||
| **Proposed penalty**: 1% of stake |
aminsammara
reviewed
May 26, 2026
|
|
||
| **Detection criteria**: Detected at the P2P layer when conflicting attestations are observed from the same signer for the same slot. | ||
|
|
||
| **Proposed penalty**: 1% of stake |
aminsammara
reviewed
May 26, 2026
aminsammara
reviewed
May 26, 2026
…c-packages into phil/a-970-azip7-docs
aminsammara
approved these changes
May 29, 2026
danielntmd
pushed a commit
to danielntmd/aztec-packages
that referenced
this pull request
Jun 4, 2026
BEGIN_COMMIT_OVERRIDE test(e2e): unskip pipelining related e2e tests (AztecProtocol#23642) fix(archiver): prune blocks without proposed checkpoint by end of build slot (AztecProtocol#23606) test: migrate benchmarks to pipelining setup (AztecProtocol#23647) fix(p2p): fall back to archiver in BLOCK_TXS response validation (AztecProtocol#23624) docs(slashing): align operator and slasher docs with AZIP-7 (AztecProtocol#23494) fix(p2p): do not penalize peers that signal a missing block with Fr.ZERO (AztecProtocol#23672) chore: adjust metrics deployment (AztecProtocol#23676) fix(cheat-codes): warpL2TimeAtLeastBy advances relative to leading clock (AztecProtocol#23675) chore: tighten node pool sizes (AztecProtocol#23678) chore: remove archival nodes (AztecProtocol#23630) chore: merge blob sink duties into RPC node (AztecProtocol#23631) fix: sync avm-transpiler Cargo.lock with noir submodule (AztecProtocol#23683) fix(spartan): set validator lag env vars in tps-scenario (AztecProtocol#23684) fix: make world-state hash queries reorg-aware to close getWorldState race (AztecProtocol#23677) fix: pin noir submodule to next's version on merge-train/spartan (AztecProtocol#23690) fix: ensure image ref is used by bench runner (AztecProtocol#23682) fix(ci): retry aztec-nr nargo dependency clone on transient network flake (AztecProtocol#23653) chore: run one-off jobs on network nodes (AztecProtocol#23701) fix: simulate proposals inside target slot (AztecProtocol#23692) chore: smaller eth-devnet (AztecProtocol#23704) chore: enable testnet autoscaling (AztecProtocol#23705) feat(api)!: redesign node log retrieval API around tag-based queries (AztecProtocol#23625) fix(sequencer): set own proposed checkpoint locally instead of via p2p loopback (AztecProtocol#23659) END_COMMIT_OVERRIDE
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes A-970.
Refresh the operator-facing slashing-configuration guide and the slasher README to match the AZIP-7 end-state, now that the implementation work for AZIP-7 has landed across the Slashing Post-Alpha Improvements project.
Operator docs (`docs/docs-operate/operators/sequencer-management/slashing-configuration.md`):
Slasher README (`yarn-project/slasher/README.md`):
Stacked on #23468 (the `ATTESTED_DESCENDANT_OF_INVALID` → `PROPOSED_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS` rename) because the new env var name only exists once that PR lands.
Test plan