Skip to content

Add cost-of-failure page and landing teaser - #15

Merged
OisinKyne merged 3 commits into
mainfrom
oisin/cost-of-failure
Oct 20, 2026
Merged

OisinKyne merged 3 commits into
mainfrom
oisin/cost-of-failure

Conversation

@OisinKyne

Copy link
Copy Markdown
Contributor

A new /cost-of-failure/ page prices what a single point of failure costs
a stake at Stage 0 vs Stage 1, and when the Stage 1 fee premium pays for
itself.

  • lib/cost: pure, tested model pinned to the Fulu spec. Exit and deposit
    churn, withdrawability delay, sweep, pending-deposit queue with
    competing demand, initial and correlation slashing penalties (incl.
    deep-queue validators escaping the 8,192-epoch window), flag
    penalties, inactivity leak, opt-in EIP-7716, Stage 1 reshare and
    consolidation paths, and a seeded Monte Carlo with heatmap.
  • data/network: mainnet head-state snapshot (2026-10-19) and 90 days of
    validatorqueue history.
  • Page: hero answer, lucky/partial/full outcomes, event timeline, odds
    (fan chart, chance/average heatmap, break-even rate), collapsible
    assumptions with URL state and CSV export, and methodology with spec
    links. Section and chart anchors.
  • Landing: teaser with a to-scale waffle, plus header/footer links.

A new /cost-of-failure/ page prices what a single point of failure costs
a stake at Stage 0 vs Stage 1, and when the Stage 1 fee premium pays for
itself.

- lib/cost: pure, tested model pinned to the Fulu spec. Exit and deposit
  churn, withdrawability delay, sweep, pending-deposit queue with
  competing demand, initial and correlation slashing penalties (incl.
  deep-queue validators escaping the 8,192-epoch window), flag
  penalties, inactivity leak, opt-in EIP-7716, Stage 1 reshare and
  consolidation paths, and a seeded Monte Carlo with heatmap.
- data/network: mainnet head-state snapshot (2026-10-19) and 90 days of
  validatorqueue history.
- Page: hero answer, lucky/partial/full outcomes, event timeline, odds
  (fan chart, chance/average heatmap, break-even rate), collapsible
  assumptions with URL state and CSV export, and methodology with spec
  links. Section and chart anchors.
- Landing: teaser with a to-scale waffle, plus header/footer links.
- OG card for /cost-of-failure (public/og/cost-of-failure.png), drawn
  from the page's default model run: headline loss and to-scale waffles.
- Callout that wrong-fork lockouts (Holesky, Feb 2025) make these
  figures an understatement, with numbered, linked references.
- Methodology links to the page; sitemap and llms.txt list it.
- a11y: AA text contrast (page-scoped link colour), underlined prose
  links, focusable named table regions, valid definition list, fixed
  spec anchors. axe reports no violations on the page.
CodeQL flagged the simulation worker's message handler for having no
origin check. Check the origin and the message shape, and re-clamp the
parameters in the worker.

URL parameters were also unbounded, so a crafted link could ask for a
billion runs and freeze the page. decodeParams now clamps every number
to its control's range and resets unknown enums.
@OisinKyne
OisinKyne merged commit 0a45962 into main Oct 20, 2026
5 checks passed
@OisinKyne
OisinKyne deleted the oisin/cost-of-failure branch October 20, 2026 19:23
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