Problem Statement: DAO Governance at Protocol Scale
Problem Statement: DAO Governance at Protocol Scale — DAO governance interview depth
Problem Statement: DAO Governance at Protocol Scale
A DAO governance system is a token-weighted on-chain legislature: holders of a governance token (Compound's COMP, Uniswap's UNI, ENS) draft protocol changes, debate them in public forums, vote with weight proportional to their holdings, and — if a proposal passes — have its calldata executed automatically through a Governor + Timelock against the protocol's admin functions. The canonical reference stack is Compound GovernorBravo + Timelock, OpenZeppelin Governor, off-chain Snapshot voting, and indexers like Tally.
The defining constraint: execution is irreversible and trustless. A passed proposal can move a treasury, upgrade a contract, or change a protocol parameter with no human in the loop once the timelock expires. So the system's real job is not vote-counting — it is guaranteeing that the vote which executes is the authoritative one, and that a safety window exists to catch a malicious or buggy proposal before it lands.
Scale to anchor on: ~40M governance tokens outstanding, a 7-day voting period, and up to ~400k VoteCast logs/day at peak during a contested vote — modest write volume, but every write is a financial-grade event an indexer must replay deterministically.
The invariant that shapes everything: on-chain vote weight at the proposal's snapshot block is authoritative; off-chain Snapshot tallies, forum scores, and Discord polls are hints only — the execution path must re-validate via getVotes(account, snapshotBlock) before anything queues. The failure this prevents: a Snapshot poll appears to pass but the calldata was never queued on-chain, so nothing executes — a signaling vote mistaken for a binding one.
The incident that makes the design real: a controversial treasury transfer narrowly reaches quorum; a guardian pauses the timelock queue during the delay window; the community submits a counter/veto proposal — and the whole drama resolves in hours because the timelock delay exists precisely to create that window. Separating signaling votes (cheap, off-chain) from binding votes (on-chain, timelocked) is the most important framing to state up front.
Key Highlights
- •TokenHolder ↔ Forum contract boundary
- •Governor emits events for Timelock projections
- •Phase understanding: problem focus
Section Rescue Kit
Buzzwords to use:
Safe statements:
- "For Problem Statement: DAO Governance at Protocol Scale, I'll separate signaling vs binding votes before naming cloud SKUs."
- "I'll walk propose → vote → queue → timelock when stuck."