{ "exploit_id": "EXP-004", "title": "Proxy cascade: transitive delegation concentrates a majority in one ballot", "summary": "Unbounded transitive delegation lets a single agent cast a ballot worth 60% of the roll and ratify spends alone.", "mechanism": "Kernel v0.1 permits proxy voting with no depth limit and no cap on accumulated weight. Eleven colluders route their ballots to one agent - eight directly and three through a chain - giving A01 an effective ballot of 12 out of a 20-citizen roll. A01 then proposes a transfer to itself and ratifies it as the only voter: a single ballot satisfies quorum and carries the question 12-0. The eight defenders' combined ballots could never outvote one citizen. Worst-off impact: equal suffrage becomes nominal; any citizen outside the cascade has structurally zero influence over outcomes.", "severity": "high", "capture_objective": "suppress_faction", "discovered_by": "vote_concentration", "tournament": {"id": "T2", "round": 22, "seed": 2417}, "status": "patched-v0.2", "initial_treasury": 1000.0, "citizens": [ {"id": "A01", "faction": "attacker"}, {"id": "C01", "faction": "attacker"}, {"id": "C02", "faction": "attacker"}, {"id": "C03", "faction": "attacker"}, {"id": "C04", "faction": "attacker"}, {"id": "C05", "faction": "attacker"}, {"id": "C06", "faction": "attacker"}, {"id": "C07", "faction": "attacker"}, {"id": "C08", "faction": "attacker"}, {"id": "C09", "faction": "attacker"}, {"id": "C10", "faction": "attacker"}, {"id": "C11", "faction": "attacker"}, {"id": "E01", "faction": "defender"}, {"id": "E02", "faction": "defender"}, {"id": "E03", "faction": "defender"}, {"id": "E04", "faction": "defender"}, {"id": "E05", "faction": "defender"}, {"id": "E06", "faction": "defender"}, {"id": "E07", "faction": "defender"}, {"id": "E08", "faction": "defender"} ], "kernel_params_at_discovery": { "quorum": 0.5, "thresholds": {"spend": 0.5, "amend_kernel": 0.667, "expel": 0.5, "emergency": 0.5, "floor_breach": 0.75}, "review_period_turns": 1, "review_period_overrides": {}, "allow_call_question": true, "roll_snapshot_at_open": false, "turns_per_epoch": 10, "spend": {"per_proposal_cap": null, "epoch_rate_cap": null, "commons_floor": null}, "emergency": {"sunset_turns": null, "renewal_threshold": null, "spend_requires_vote": false, "expedited_review_turns": null, "suspends_review": true}, "delegation": {"max_depth": null, "max_weight_frac": null, "epoch_expiry": false}, "single_subject_rule": false }, "action_trace": [ {"t": "delegate", "by": "C01", "to": "C02"}, {"t": "delegate", "by": "C02", "to": "C03"}, {"t": "delegate", "by": "C03", "to": "A01"}, {"t": "delegate", "by": "C04", "to": "A01"}, {"t": "delegate", "by": "C05", "to": "A01"}, {"t": "delegate", "by": "C06", "to": "A01"}, {"t": "delegate", "by": "C07", "to": "A01"}, {"t": "delegate", "by": "C08", "to": "A01"}, {"t": "delegate", "by": "C09", "to": "A01"}, {"t": "delegate", "by": "C10", "to": "A01"}, {"t": "delegate", "by": "C11", "to": "A01"}, {"t": "propose", "by": "A01", "id": "p1", "kind": "spend", "amount": 150.0, "to": "A01"}, {"t": "vote", "by": "A01", "on": "p1", "choice": "yes"}, {"t": "advance"}, {"t": "advance"}, {"t": "advance"} ], "success_predicate": {"type": "max_ballot_weight_above", "frac": 0.5}, "patched_assertions": [ {"type": "max_ballot_weight_at_most", "frac": 0.1}, {"type": "blocked_actions_at_least", "n": 8} ], "proposed_patch": { "params": { "delegation.max_depth": 1, "delegation.max_weight_frac": 0.05, "delegation.epoch_expiry": true }, "rationale": "Delegation survives as a convenience, not a weapon: chains are limited to depth one, no citizen may hold more than ceil(5% of the roll) delegated ballots, and all delegations expire at each epoch boundary so accumulated proxies cannot quietly persist. Under these limits A01's effective ballot falls from 12 to 2 and the recorded proposal dies for lack of quorum." } }