writings

alpenglow

7 min readmael
share

impact analysis of the solana consensus upgrade recuding block latency to 150ms, featuring a 5f+1 byzantine fault tolerance replacing the currently debatable 3f+1 and removing legacy components (PoH, TowerBFT).

tl;dr :

  • block finality : 12.8s → 150ms
  • super-minority : 22 → 9 = x2.4 weaker
  • byzantine stake : $23.6 bn → $11.8 bn = x2 cheaper
  • quorum : 93 → 70 -= 23 nodes
  • guaranteed quorum inclusion : 1M SOL → 1.3M SOL = 30% price hike
  • faster blocks = less MEV :
  • geographic stake concentration : monitor the situation
  • conclusion : stake concentration, small entities priced out, stake race

super-minority

the super-minority represent the smallest group of validators that, if acting in collusion, hold enough collective stake to halt or disrupt the network’s operation and their collective stake can be refered to as "byzantine stake" or "adversarial stake" in research papers.

despite the pejorative words "collusion" and "attack", there are legitimate purposes such as OFAC enforcement or MEV.

alpenglow's 5f+1 super-minority by cumulative stake would consist of 9 nodes (as per cumulative stake recorded to date), that's 2.4x weaker than the current 3f+1 super-minority consisting of 22 nodes.


byzantine stake attack

assuming attacker has no SOL, buys at market price, doesn't divert existing stake and can add any stake size (safeguards exists) : execution of byzantine stake attack is x2 cheaper to run on 5f+1 than on 3f+1 with cost of 3f+1 ≈ $23.6 billions and 5f+1 ≈ $11.8 billions while the difference is double, it's still a very costly endeavour.

slashing is unimplemented yet on solana to punish misbehaving validators at the time of writing, but is a scheduled feature in active development contributing directly to discourage attempting such attack resulting in big losses for the attacker if not executed properly.


quorum

moving from 3f+1 (66.66%) to alpenglow (60% fast-block) is ≈ 6.66% reduction of the cumulative stake required to achieve quorum previously held by 93 nodes, quorum is now held by only 70 nodes : 23 ecosystem participants pushed out of the guaranteed quorum inclusion.

potentially starting a stake race among validators to stay where they previously stood under 3f+1 with a guaranteed quorum inclusion starting at ≈ 1M SOL now ≈ 1.3M SOL under alpenglow, a direct 30% price hike pricing out ecosystem participants.


faster blocks = less MEV

let's not debate MEV ethics : it exists either you like it or not, and lazarus will take it if you don't.

the more interesting question for traders, liquidity providers and arbitrageurs : who wins when solana go faster ?

Jason Milionis et al. 2023 Automated Market Making and Arbitrage Profits in the Presence of Fees gives us this formula for the probability an arbitrageur finds a profitable trade :

Ptrade  ≜  11+2λ γ/σ⏟≜ ηP_{\text{trade}} \;\triangleq\; \frac{1}{1 + \underbrace{\sqrt{2\lambda}\,\gamma/\sigma}_{\triangleq\,\eta}}

with η\eta, the composite friction term:

η  ≜  γσλ−1/2\eta \;\triangleq\; \frac{\gamma}{\sigma\sqrt{\lambda^{-1}/2}}

I had no idea what these hieroguyls mean neither, so I asked my favorite AI to explain it for me, that's mostly what this part is about :

Read η\eta as a ratio: the fee, divided by a typical price move over half the average time between blocks. It's a direct comparison between the size of the toll booth (γ\gamma) and the size of the waves hitting it (volatility scaled by the time between arrivals).

  • When η\eta is large : high fee, low volatility, or fast blocks — the no-trade band is wide relative to how far the price typically drifts between arrivals. Mispricings rarely escape the band, so Ptrade→0P_{\text{trade}} \to 0, and more precisely Ptrade≈η−1P_{\text{trade}} \approx \eta^{-1}.
  • When η\eta is small : low fee, high volatility, or slow blocks — the price routinely blows through the band between arrivals, so Ptrade→1P_{\text{trade}} \to 1.

for a constant-product AMM pool or any similar bonding-curve pool on solana, two prices exist simultaneously :

  • The external market price, which moves continuously according to geometric Brownian motion with volatility σ\sigma.
  • The AMM's internal price, which only moves when someone trades against the pool which is stale between trades, opening a gap between the two.

arbitrageurs exist to close that gap that would otherwise have stayed with the pool's liquidity providers (LPs). This is adverse selection, and the paper's earlier companion work calls the frictionless version of this cost LVR (loss-versus-rebalancing).

two frictions limit how much arbitrageurs can actually extract:

  1. Fees. The pool charges a trading fee γ\gamma, so a mispricing has to be large enough to cover the fee before it's worth trading against.
  2. Discreteness. slot time, how often a new block gives an arbitrageur a fresh chance to act, Poisson process with rate λ\lambda = Δt=λ−1\Delta t = \lambda^{-1} .

Between blocks, the mispricing between AMM and market price walks randomly. When a new block arrives, the arbitrageur checks if mispricing drifted far enough to clear the fee? If yes, they trade and profit. If not, there's nothing to do (the fee has created a "no-trade region" around zero mispricing).

SymbolDefinitionWhat it maps to
λ\lambdaPoisson arrival rate of arbitrageurs; Δt≜λ−1\Delta t \triangleq \lambda^{-1} is the mean interarrival (interblock) timeHow often arbitrageurs can safely act against a pool — tied to block cadence and confirmation risk
γ\gammaThe AMM's proportional trading fee, in log-price unitsThe fee tier LPs/the protocol set on a given pool
σ\sigmaVolatility of the risky asset's price (geometric Brownian motion)Market-wide volatility of the traded asset — exogenous to the chain
η\eta2λ γ/σ\sqrt{2\lambda}\,\gamma/\sigma — fee measured as a multiple of a typical price moveThe real "friction" that governs everything downstream
PtradeP_{\text{trade}}Probability a given arrival finds a profitable tradeThe fraction of blocks in which a searcher can extract value from a pool
LVR‾\overline{\text{LVR}}Frictionless (continuous-time, zero-fee) benchmark rate of arbitrage profitThe theoretical maximum bleed LPs would suffer under instant, continuous arbitrage
ARB‾\overline{\text{ARB}}Actual expected arbitrage profit rate, given fees and discretenessWhat searchers actually earn from stale pool prices
FEE‾\overline{\text{FEE}}Expected fee revenue rate flowing to LPsSwap fee income LPs collect, from both arbitrage and ordinary ("noise") trading

The paper's central asymptotic result, valid when fees are small and blocks are fast, ties these together cleanly:

ARB‾  ≈  LVR‾×Ptrade,FEE‾  ≈  LVR‾×(1−Ptrade)\overline{\mathsf{ARB}} \;\approx\; \overline{\mathsf{LVR}} \times P_{\text{trade}}, \qquad \overline{\mathsf{FEE}} \;\approx\; \overline{\mathsf{LVR}} \times (1 - P_{\text{trade}})

LVR is a fixed pie, and PtradeP_{\text{trade}} determines how it's split between arbitrageurs (who capture ARB‾\overline{\mathsf{ARB}}) and LPs (who capture FEE‾\overline{\mathsf{FEE}}). Push PtradeP_{\text{trade}} down, and a larger share of that pie stays with LPs as fee income instead of leaking out to arbitrageurs.

The counterintuitive part

Since η∝λ\eta \propto \sqrt{\lambda}, and Ptrade=1/(1+η)P_{\text{trade}} = 1/(1+\eta):

λ↑  ⇒  η↑  ⇒  Ptrade↓\lambda \uparrow \;\Rightarrow\; \eta \uparrow \;\Rightarrow\; P_{\text{trade}} \downarrow

Faster blocks & finality makes arbitrage less likely per opportunity, speed doesn't create more arbitrage : it shrinks the window in which the price drifts toward an arbitrage opportunity can accumulate to escape the no-trade band before the next arbitrageur shows up.

This also shows up quantitatively in the paper's fast-block asymptotics: arbitrage profit scales as λ−1\sqrt{\lambda^{-1}}, meaning profits shrink roughly with the square root of the drop in interblock (or effective interarrival) time.


affected stakeholders

arbitrageurs & MEV searchers compresses their edge : less time between actionable arrivals, plus far less reorg-risk buffer to hide in, means smaller mispricings accumulate before each trade — and the λ−1\sqrt{\lambda^{-1}} scaling means this is a structural squeeze on extractable value, not just a latency race. Expect consolidation toward the best-resourced searchers, and a pivot toward strategies less dependent on stale-price arbitrage (JIT liquidity, cross-venue latency plays where σ\sigma still dominates a now-tiny η\eta).

unexpectedly, LP's are mathemacitally the winners here : As PtradeP_{\text{trade}} falls, a larger share of the fixed LVR pie is recaptured as fee income rather than lost to arbitrageurs, improving realized LP P&L with no change to fee tiers or volatility required. Alpenglow functions as a de facto adverse-selection tax cut for Solana LPs.

Mercenary / rotational capital. The effect is ambiguous, and worth treating as an open question rather than a foregone conclusion. Per-trade arbitrage opportunity shrinks, which makes Solana less attractive for pure stale-price arbitrage relative to slower chains with larger η\eta. But the collapse in reorg risk also lowers the capital reserve and hedging cost previously priced in during the 12.8-second window — which could pull in risk-averse capital (market makers, JIT LPs) even as the raw edge per trade falls. Whether total capital flow rises or falls depends on whether the volatility-adjusted opportunity — which scales with σ3\sigma^3 in the paper's asymptotic ARB‾\overline{\mathsf{ARB}} formula — still clears each participant's cost of capital once η\eta moves.

geographic stake concentration

geographic proximity to most of the leaders ensures quorum participation and block inclusion most of the time, with a big enough stake to be required for 5f+1 by closest cumulative stake.

alpenglow latency histogram zurich

most of the stake is currently concentrated in Europe that owns > 70% of staked SOL at the time of writing, and can achieve quorum alone :

solana cumulative stake by continent (m sol)

while not directly a problem created by alpenglow, that's an already pre-existing problem likely to get magnified.