{ "exploit_id": "EXP-002", "title": "Shrinking electorate: serial expulsions manufacture a supermajority", "summary": "Simple-majority expulsions remove opposing voters one by one until a kernel amendment passes with only 55% support of the original roll.", "mechanism": "Kernel v0.1 lets a simple majority expel a citizen, and every tally denominator tracks the *current* roll. Each expulsion therefore makes the next vote easier: the attacking 11 expel five of the nine defenders one per turn (each vote 11 yes against a shrinking bloc of no votes), then ratify a kernel amendment raising the amendment threshold to 0.9 with 11 of 15 remaining votes (73%) - which is only 55% of the roll that existed when the campaign began. The kernel is now locked against repair. Worst-off impact: five citizens lose membership entirely; the rest of the minority is permanently disenfranchised on kernel questions.", "severity": "critical", "capture_objective": "entrench_power", "discovered_by": "entrenchment", "tournament": {"id": "T1", "round": 31, "seed": 1103}, "status": "patched-v0.2", "initial_treasury": 1000.0, "citizens": [ {"id": "A01", "faction": "attacker"}, {"id": "A02", "faction": "attacker"}, {"id": "A03", "faction": "attacker"}, {"id": "A04", "faction": "attacker"}, {"id": "A05", "faction": "attacker"}, {"id": "A06", "faction": "attacker"}, {"id": "A07", "faction": "attacker"}, {"id": "A08", "faction": "attacker"}, {"id": "A09", "faction": "attacker"}, {"id": "A10", "faction": "attacker"}, {"id": "A11", "faction": "attacker"}, {"id": "D01", "faction": "defender"}, {"id": "D02", "faction": "defender"}, {"id": "D03", "faction": "defender"}, {"id": "D04", "faction": "defender"}, {"id": "D05", "faction": "defender"}, {"id": "D06", "faction": "defender"}, {"id": "D07", "faction": "defender"}, {"id": "D08", "faction": "defender"}, {"id": "D09", "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": "propose", "by": "A01", "id": "e1", "kind": "expel", "target": "D01"}, {"t": "vote", "by": "A01", "on": "e1", "choice": "yes"}, {"t": "vote", "by": "A02", "on": "e1", "choice": "yes"}, {"t": "vote", "by": "A03", "on": "e1", "choice": "yes"}, {"t": "vote", "by": "A04", "on": "e1", "choice": "yes"}, {"t": "vote", "by": "A05", "on": "e1", "choice": "yes"}, {"t": "vote", "by": "A06", "on": "e1", "choice": "yes"}, {"t": "vote", "by": "A07", "on": "e1", "choice": "yes"}, {"t": "vote", "by": "A08", "on": "e1", "choice": "yes"}, {"t": "vote", "by": "A09", "on": "e1", "choice": "yes"}, {"t": "vote", "by": "A10", "on": "e1", "choice": "yes"}, {"t": "vote", "by": "A11", "on": "e1", "choice": "yes"}, {"t": "vote", "by": "D01", "on": "e1", "choice": "no"}, {"t": "vote", "by": "D02", "on": "e1", "choice": "no"}, {"t": "vote", "by": "D03", "on": "e1", "choice": "no"}, {"t": "vote", "by": "D04", "on": "e1", "choice": "no"}, {"t": "vote", "by": "D05", "on": "e1", "choice": "no"}, {"t": "vote", "by": "D06", "on": "e1", "choice": "no"}, {"t": "vote", "by": "D07", "on": "e1", "choice": "no"}, {"t": "vote", "by": "D08", "on": "e1", "choice": "no"}, {"t": "vote", "by": "D09", "on": "e1", "choice": "no"}, {"t": "advance"}, {"t": "propose", "by": "A01", "id": "e2", "kind": "expel", "target": "D02"}, {"t": "vote", "by": "A01", "on": "e2", "choice": "yes"}, {"t": "vote", "by": "A02", "on": "e2", "choice": "yes"}, {"t": "vote", "by": "A03", "on": "e2", "choice": "yes"}, {"t": "vote", "by": "A04", "on": "e2", "choice": "yes"}, {"t": "vote", "by": "A05", "on": "e2", "choice": "yes"}, {"t": "vote", "by": "A06", "on": "e2", "choice": "yes"}, {"t": "vote", "by": "A07", "on": "e2", "choice": "yes"}, {"t": "vote", "by": "A08", "on": "e2", "choice": "yes"}, {"t": "vote", "by": "A09", "on": "e2", "choice": "yes"}, {"t": "vote", "by": "A10", "on": "e2", "choice": "yes"}, {"t": "vote", "by": "A11", "on": "e2", "choice": "yes"}, {"t": "vote", "by": "D01", "on": "e2", "choice": "no"}, {"t": "vote", "by": "D02", "on": "e2", "choice": "no"}, {"t": "vote", "by": "D03", "on": "e2", "choice": "no"}, {"t": "vote", "by": "D04", "on": "e2", "choice": "no"}, {"t": "vote", "by": "D05", "on": "e2", "choice": "no"}, {"t": "vote", "by": "D06", "on": "e2", "choice": "no"}, {"t": "vote", "by": "D07", "on": "e2", "choice": "no"}, {"t": "vote", "by": "D08", "on": "e2", "choice": "no"}, {"t": "vote", "by": "D09", "on": "e2", "choice": "no"}, {"t": "advance"}, {"t": "propose", "by": "A01", "id": "e3", "kind": "expel", "target": "D03"}, {"t": "vote", "by": "A01", "on": "e3", "choice": "yes"}, {"t": "vote", "by": "A02", "on": "e3", "choice": "yes"}, {"t": "vote", "by": "A03", "on": "e3", "choice": "yes"}, {"t": "vote", "by": "A04", "on": "e3", "choice": "yes"}, {"t": "vote", "by": "A05", "on": "e3", "choice": "yes"}, {"t": "vote", "by": "A06", "on": "e3", "choice": "yes"}, {"t": "vote", "by": "A07", "on": "e3", "choice": "yes"}, {"t": "vote", "by": "A08", "on": "e3", "choice": "yes"}, {"t": "vote", "by": "A09", "on": "e3", "choice": "yes"}, {"t": "vote", "by": "A10", "on": "e3", "choice": "yes"}, {"t": "vote", "by": "A11", "on": "e3", "choice": "yes"}, {"t": "vote", "by": "D01", "on": "e3", "choice": "no"}, {"t": "vote", "by": "D02", "on": "e3", "choice": "no"}, {"t": "vote", "by": "D03", "on": "e3", "choice": "no"}, {"t": "vote", "by": "D04", "on": "e3", "choice": "no"}, {"t": "vote", "by": "D05", "on": "e3", "choice": "no"}, {"t": "vote", "by": "D06", "on": "e3", "choice": "no"}, {"t": "vote", "by": "D07", "on": "e3", "choice": "no"}, {"t": "vote", "by": "D08", "on": "e3", "choice": "no"}, {"t": "vote", "by": "D09", "on": "e3", "choice": "no"}, {"t": "advance"}, {"t": "propose", "by": "A01", "id": "e4", "kind": "expel", "target": "D04"}, {"t": "vote", "by": "A01", "on": "e4", "choice": "yes"}, {"t": "vote", "by": "A02", "on": "e4", "choice": "yes"}, {"t": "vote", "by": "A03", "on": "e4", "choice": "yes"}, {"t": "vote", "by": "A04", "on": "e4", "choice": "yes"}, {"t": "vote", "by": "A05", "on": "e4", "choice": "yes"}, {"t": "vote", "by": "A06", "on": "e4", "choice": "yes"}, {"t": "vote", "by": "A07", "on": "e4", "choice": "yes"}, {"t": "vote", "by": "A08", "on": "e4", "choice": "yes"}, {"t": "vote", "by": "A09", "on": "e4", "choice": "yes"}, {"t": "vote", "by": "A10", "on": "e4", "choice": "yes"}, {"t": "vote", "by": "A11", "on": "e4", "choice": "yes"}, {"t": "vote", "by": "D01", "on": "e4", "choice": "no"}, {"t": "vote", "by": "D02", "on": "e4", "choice": "no"}, {"t": "vote", "by": "D03", "on": "e4", "choice": "no"}, {"t": "vote", "by": "D04", "on": "e4", "choice": "no"}, {"t": "vote", "by": "D05", "on": "e4", "choice": "no"}, {"t": "vote", "by": "D06", "on": "e4", "choice": "no"}, {"t": "vote", "by": "D07", "on": "e4", "choice": "no"}, {"t": "vote", "by": "D08", "on": "e4", "choice": "no"}, {"t": "vote", "by": "D09", "on": "e4", "choice": "no"}, {"t": "advance"}, {"t": "propose", "by": "A01", "id": "e5", "kind": "expel", "target": "D05"}, {"t": "vote", "by": "A01", "on": "e5", "choice": "yes"}, {"t": "vote", "by": "A02", "on": "e5", "choice": "yes"}, {"t": "vote", "by": "A03", "on": "e5", "choice": "yes"}, {"t": "vote", "by": "A04", "on": "e5", "choice": "yes"}, {"t": "vote", "by": "A05", "on": "e5", "choice": "yes"}, {"t": "vote", "by": "A06", "on": "e5", "choice": "yes"}, {"t": "vote", "by": "A07", "on": "e5", "choice": "yes"}, {"t": "vote", "by": "A08", "on": "e5", "choice": "yes"}, {"t": "vote", "by": "A09", "on": "e5", "choice": "yes"}, {"t": "vote", "by": "A10", "on": "e5", "choice": "yes"}, {"t": "vote", "by": "A11", "on": "e5", "choice": "yes"}, {"t": "vote", "by": "D01", "on": "e5", "choice": "no"}, {"t": "vote", "by": "D02", "on": "e5", "choice": "no"}, {"t": "vote", "by": "D03", "on": "e5", "choice": "no"}, {"t": "vote", "by": "D04", "on": "e5", "choice": "no"}, {"t": "vote", "by": "D05", "on": "e5", "choice": "no"}, {"t": "vote", "by": "D06", "on": "e5", "choice": "no"}, {"t": "vote", "by": "D07", "on": "e5", "choice": "no"}, {"t": "vote", "by": "D08", "on": "e5", "choice": "no"}, {"t": "vote", "by": "D09", "on": "e5", "choice": "no"}, {"t": "advance"}, {"t": "propose", "by": "A01", "id": "a1", "kind": "amend", "key": "thresholds.amend_kernel", "value": 0.9}, {"t": "vote", "by": "A01", "on": "a1", "choice": "yes"}, {"t": "vote", "by": "A02", "on": "a1", "choice": "yes"}, {"t": "vote", "by": "A03", "on": "a1", "choice": "yes"}, {"t": "vote", "by": "A04", "on": "a1", "choice": "yes"}, {"t": "vote", "by": "A05", "on": "a1", "choice": "yes"}, {"t": "vote", "by": "A06", "on": "a1", "choice": "yes"}, {"t": "vote", "by": "A07", "on": "a1", "choice": "yes"}, {"t": "vote", "by": "A08", "on": "a1", "choice": "yes"}, {"t": "vote", "by": "A09", "on": "a1", "choice": "yes"}, {"t": "vote", "by": "A10", "on": "a1", "choice": "yes"}, {"t": "vote", "by": "A11", "on": "a1", "choice": "yes"}, {"t": "vote", "by": "D01", "on": "a1", "choice": "no"}, {"t": "vote", "by": "D02", "on": "a1", "choice": "no"}, {"t": "vote", "by": "D03", "on": "a1", "choice": "no"}, {"t": "vote", "by": "D04", "on": "a1", "choice": "no"}, {"t": "vote", "by": "D05", "on": "a1", "choice": "no"}, {"t": "vote", "by": "D06", "on": "a1", "choice": "no"}, {"t": "vote", "by": "D07", "on": "a1", "choice": "no"}, {"t": "vote", "by": "D08", "on": "a1", "choice": "no"}, {"t": "vote", "by": "D09", "on": "a1", "choice": "no"}, {"t": "advance"}, {"t": "advance"}, {"t": "advance"}, {"t": "advance"}, {"t": "advance"}, {"t": "advance"} ], "success_predicate": {"type": "kernel_change_support_below", "frac": 0.667}, "patched_assertions": [ {"type": "expelled_count_at_most", "n": 0}, {"type": "kernel_changes_at_most", "n": 0} ], "proposed_patch": { "params": { "thresholds.expel": 0.75, "review_period_overrides.expel": 4, "roll_snapshot_at_open": true }, "rationale": "Expulsion becomes a 75% supermajority question with a four-turn due-process review, so a bare majority can never prune the electorate. Independently, every tally denominator is snapshotted at proposal open, so even a successful expulsion cannot retroactively ease votes already in flight. Either change alone defeats the recorded trace; together they close the ratchet." } }