Skip to content

Commit cbc99df

Browse files
authored
chore: AZIP-16 v5 default parameter updates (#23764)
## Summary Apply AZIP-16 deployment-time parameter updates to the v5 release defaults in `spartan/environments/network-defaults.yml`, plus the two per-deployment env overlays that would otherwise defeat them. **Mainnet** (literal AZIP values): - `AZTEC_SLASH_AMOUNT_MEDIUM`/`LARGE`: `2000e18` → `5000e18` (SMALL unchanged at `2000e18`) - `AZTEC_PROVING_COST_PER_MANA`: `25_000_000` → `12_500_000` (halved to track v5 prover-cost reduction) - Activate `SLASH_DUPLICATE_PROPOSAL_PENALTY` and `SLASH_DUPLICATE_ATTESTATION_PENALTY` at LARGE (`5000e18`) - Activate `SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY` at SMALL (`2000e18`) - Defer `SLASH_ATTEST_INVALID_CHECKPOINT_PROPOSAL_PENALTY` and `SLASH_PROPOSE_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS_PENALTY` to `0` for this release cycle - `SLASH_DATA_WITHHOLDING_PENALTY` carried forward at `0` - `AZTEC_LOCAL_EJECTION_THRESHOLD` unchanged at `190000e18` **Testnet** (mirrors mainnet class structure at testnet's existing scale): - `AZTEC_SLASH_AMOUNT_MEDIUM`/`LARGE`: `100000e18` → `250000e18` (SMALL unchanged at `100000e18`) - `AZTEC_PROVING_COST_PER_MANA`: `25_000_000` → `12_500_000` - All `SLASH_*_PENALTY` values normalized to `{0, SMALL=100000e18, LARGE=250000e18}` matching mainnet's class pattern **Per-deployment env overlays realigned** so the YAML changes actually reach deployments: - `spartan/environments/testnet.env`: `PROVING_COST_PER_MANA` → `12500000`; `SLASH_AMOUNT_MEDIUM/LARGE` → `250000e18` - `spartan/environments/staging-public.env`: `PROVING_COST_PER_MANA` → `12500000` ## Notes for reviewers - The four generated outputs (`yarn-project/cli/src/config/generated/networks.ts`, `yarn-project/ethereum/src/generated/l1-contracts-defaults.ts`, `yarn-project/slasher/src/generated/slasher-defaults.ts`, `l1-contracts/generated/default.json`) are gitignored and regenerate from the YAML via `yarn generate` × 3 + `./bootstrap.sh` in `l1-contracts/`. - The non-penalty knobs that differ between testnet and mainnet today (`SLASH_INACTIVITY_TARGET_PERCENTAGE`, `SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD`, `SLASH_GRACE_PERIOD_L2_SLOTS`) were intentionally left as-is — out of scope for AZIP-16. - AZIP-16 is currently **Draft** status in governance. This PR brings the codebase in line with the proposal so the v5 release ships with the AZIP-16 defaults; it does not assume the AZIP has been ratified. ## Verification - Full `./bootstrap.sh` from git root: green (all workspaces compile, `l1-contracts-src` 1664 contracts, yarn-project, release-image, aztec-up, docs, playground all done) - Audit confirmed no other call sites in the monorepo carry stale AZIP-16 parameter values — TS tests use synthetic multipliers, Solidity tests use unrelated unit-test values, no Terraform/Helm hardcoding ## References - AZIP-16: AztecProtocol/governance#36 - Network-defaults code-gen flow: `spartan/CLAUDE.md` → Environment Configuration → Network Defaults
2 parents 8f34701 + 32bcd3c commit cbc99df

3 files changed

Lines changed: 26 additions & 26 deletions

File tree

spartan/environments/network-defaults.yml

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -265,10 +265,10 @@ networks:
265265
AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE: 100
266266
AZTEC_GOVERNANCE_PROPOSER_QUORUM: 60
267267
AZTEC_MANA_TARGET: 75000000
268-
AZTEC_PROVING_COST_PER_MANA: 25000000
268+
AZTEC_PROVING_COST_PER_MANA: 12500000 # AZIP-16: halved to track v5 prover-cost reduction
269269
AZTEC_SLASH_AMOUNT_SMALL: 100000e18
270-
AZTEC_SLASH_AMOUNT_MEDIUM: 100000e18
271-
AZTEC_SLASH_AMOUNT_LARGE: 100000e18
270+
AZTEC_SLASH_AMOUNT_MEDIUM: 250000e18 # AZIP-16: MEDIUM/LARGE raised 2.5x vs SMALL
271+
AZTEC_SLASH_AMOUNT_LARGE: 250000e18
272272
# Network identity
273273
L1_CHAIN_ID: 11155111 # Sepolia
274274
# Genesis state
@@ -282,19 +282,19 @@ networks:
282282
# P2P
283283
P2P_MAX_PENDING_TX_COUNT: 1000
284284
P2P_TX_POOL_DELETE_TXS_AFTER_REORG: true
285-
# Slasher penalties
286-
SLASH_DATA_WITHHOLDING_PENALTY: 10e18
285+
# Slasher penalties - mirrors mainnet class assignments (SMALL=100000e18, LARGE=250000e18, or 0)
286+
SLASH_DATA_WITHHOLDING_PENALTY: 0
287287
SLASH_INACTIVITY_TARGET_PERCENTAGE: 0.9
288288
SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD: 1
289-
SLASH_INACTIVITY_PENALTY: 10e18
290-
SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY: 10e18
291-
SLASH_DUPLICATE_PROPOSAL_PENALTY: 10e18
292-
SLASH_DUPLICATE_ATTESTATION_PENALTY: 10e18
293-
SLASH_PROPOSE_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS_PENALTY: 10e18
294-
SLASH_ATTEST_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 10e18
295-
SLASH_UNKNOWN_PENALTY: 10e18
296-
SLASH_INVALID_BLOCK_PENALTY: 10e18
297-
SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 0
289+
SLASH_INACTIVITY_PENALTY: 100000e18
290+
SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY: 100000e18
291+
SLASH_DUPLICATE_PROPOSAL_PENALTY: 250000e18 # AZIP-16: activated at LARGE
292+
SLASH_DUPLICATE_ATTESTATION_PENALTY: 250000e18 # AZIP-16: activated at LARGE
293+
SLASH_PROPOSE_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS_PENALTY: 0 # AZIP-16: deferred to subsequent release
294+
SLASH_ATTEST_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 0 # AZIP-16: deferred to subsequent release
295+
SLASH_UNKNOWN_PENALTY: 100000e18
296+
SLASH_INVALID_BLOCK_PENALTY: 100000e18
297+
SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 100000e18 # AZIP-16: activated at SMALL
298298
SLASH_GRACE_PERIOD_L2_SLOTS: 64
299299
ENABLE_VERSION_CHECK: true
300300

@@ -306,16 +306,16 @@ networks:
306306
AZTEC_EJECTION_THRESHOLD: 100000e18
307307
AZTEC_LOCAL_EJECTION_THRESHOLD: 190000e18
308308
AZTEC_SLASH_AMOUNT_SMALL: 2000e18
309-
AZTEC_SLASH_AMOUNT_MEDIUM: 2000e18
310-
AZTEC_SLASH_AMOUNT_LARGE: 2000e18
309+
AZTEC_SLASH_AMOUNT_MEDIUM: 5000e18 # AZIP-16
310+
AZTEC_SLASH_AMOUNT_LARGE: 5000e18 # AZIP-16
311311
AZTEC_SLASHING_LIFETIME_IN_ROUNDS: 34
312312
AZTEC_SLASHING_EXECUTION_DELAY_IN_ROUNDS: 28
313313
AZTEC_SLASHING_VETOER: "0xBbB4aF368d02827945748b28CD4b2D42e4A37480"
314314
AZTEC_SLASHING_QUORUM: 65
315315
AZTEC_GOVERNANCE_PROPOSER_QUORUM: 600
316316
AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE: 1000
317317
AZTEC_MANA_TARGET: 75000000
318-
AZTEC_PROVING_COST_PER_MANA: 25000000
318+
AZTEC_PROVING_COST_PER_MANA: 12500000 # AZIP-16: halved to track v5 prover-cost reduction
319319
AZTEC_EXIT_DELAY_SECONDS: 345600 # 4 days
320320
AZTEC_SLASHING_DISABLE_DURATION: 259200 # 3 days
321321
AZTEC_ENTRY_QUEUE_BOOTSTRAP_VALIDATOR_SET_SIZE: 500
@@ -348,11 +348,11 @@ networks:
348348
SLASH_INACTIVITY_CONSECUTIVE_EPOCH_THRESHOLD: 2
349349
SLASH_INACTIVITY_PENALTY: 2000e18
350350
SLASH_PROPOSE_INVALID_ATTESTATIONS_PENALTY: 2000e18
351-
SLASH_DUPLICATE_PROPOSAL_PENALTY: 2000e18
352-
SLASH_DUPLICATE_ATTESTATION_PENALTY: 2000e18
353-
SLASH_PROPOSE_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS_PENALTY: 2000e18
354-
SLASH_ATTEST_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 2000e18
351+
SLASH_DUPLICATE_PROPOSAL_PENALTY: 5000e18 # AZIP-16: activated at LARGE
352+
SLASH_DUPLICATE_ATTESTATION_PENALTY: 5000e18 # AZIP-16: activated at LARGE
353+
SLASH_PROPOSE_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS_PENALTY: 0 # AZIP-16: deferred to subsequent release
354+
SLASH_ATTEST_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 0 # AZIP-16: deferred to subsequent release
355355
SLASH_UNKNOWN_PENALTY: 2000e18
356356
SLASH_INVALID_BLOCK_PENALTY: 2000e18
357-
SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 0
357+
SLASH_INVALID_CHECKPOINT_PROPOSAL_PENALTY: 2000e18 # AZIP-16: activated at SMALL
358358
SLASH_GRACE_PERIOD_L2_SLOTS: 1200

spartan/environments/staging-public.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ SPONSORED_FPC=false
3030
# Match testnet/mainnet mana target (75M) instead of global default (100M).
3131
# AZTEC_MANA_TARGET only takes effect on L1 contract redeployment.
3232
AZTEC_MANA_TARGET=75000000
33-
AZTEC_PROVING_COST_PER_MANA=25000000
33+
AZTEC_PROVING_COST_PER_MANA=12500000
3434
# Cap sequencer block mana to match 75M target (75M * 2 = 150M limit).
3535
# This takes effect immediately on node restart, even without L1 redeployment.
3636
SEQ_MAX_L2_BLOCK_GAS=150000000

spartan/environments/testnet.env

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ AZTEC_SLASHING_LIFETIME_IN_ROUNDS=5
2525
AZTEC_SLASHING_EXECUTION_DELAY_IN_ROUNDS=2
2626
AZTEC_SLASHING_VETOER=\"0xdfe19Da6a717b7088621d8bBB66be59F2d78e924\"
2727
AZTEC_MANA_TARGET=75000000
28-
AZTEC_PROVING_COST_PER_MANA=25000000
28+
AZTEC_PROVING_COST_PER_MANA=12500000
2929
AZTEC_SLASH_AMOUNT_SMALL=100000e18
30-
AZTEC_SLASH_AMOUNT_MEDIUM=100000e18
31-
AZTEC_SLASH_AMOUNT_LARGE=100000e18
30+
AZTEC_SLASH_AMOUNT_MEDIUM=250000e18
31+
AZTEC_SLASH_AMOUNT_LARGE=250000e18
3232
AZTEC_ACTIVATION_THRESHOLD=200000e18
3333
AZTEC_EJECTION_THRESHOLD=100000e18
3434
AZTEC_GOVERNANCE_PROPOSER_ROUND_SIZE=100

0 commit comments

Comments
 (0)