Audit firms
6 identical ballots, $30,000
- S-Tier
- Bridge fuzzing harness $40k
- A-Tier
- Vyper static analyzer $17k
- Audit findings database $17k
- B-Tier
- Compiler bug bounty $25k
Blossom Budgeting a proportional budgeting mechanism, by Blossom Labs
In its second round, TheDAO Security Fund asks the ETHSecurity Badge holders to decide which initiatives it funds. Under a majority rule (Condorcet, Borda, most votes first), the largest like-minded group decides every dollar. Blossom Budgeting is a tiered-ballot rule that protects representation for groups with shared priorities. Below is the same small round, tallied both ways.
Thirty people hold a badge and 20 of them submit a ballot. The $100,000 pool is split equally among the ballots, so each voter steers $5,000. Nine initiatives ask for $174,000 between them, each with one deliverable and one price.
A ballot sorts the proposals a voter wants into tiers: S-Tier for what must be funded, A-Tier for what should be, B-Tier for what would be nice to have. Proposals in the same tier are tied. The voters fall into five groups with different priorities, which is what a security community looks like: auditors want auditing tools, wallet teams want phishing defence, responders want response capacity. To keep the example small, everyone in a group submits the same ballot as their colleagues.
6 identical ballots, $30,000
5 identical ballots, $25,000
4 identical ballots, $20,000
3 identical ballots, $15,000
2 identical ballots, $10,000
A majority rule orders the proposals by what most voters prefer and funds from the top. Here every auditing proposal beats every other proposal head to head, because the same eleven voters outvote whoever is on the other side, and the Borda and vote-count orders come out the same. Their four proposals cost $99,000, and nothing else fits in the $1,000 that is left. Fund from the top and the other nine voters, 45% of the electorate, get nothing they asked for.
A proportional rule asks a different question: how much of the pool does each group deserve to steer? Blossom Budgeting answers it with the Expanding Approvals Rule for participatory budgeting (PB-EAR), published by Haris Aziz and Barton Lee at AAAI 2021.
Step 1 of 10Every voter holds an equal share of the pool
The $100,000 pool is split equally among the 20 badge holders who submitted a ballot, $5,000 each. The tally starts with every voter's S-Tier.
$0 of $100,000 spentNo tier counted yet.
Audit firms6 ballots
Solo auditors5 ballots
Wallet teams4 ballots
Incident responders3 ballots
Researchers2 ballots
Bridge fuzzing harness$40,000
Asks $40,000
Vyper static analyzer$17,000
Asks $17,000
Audit findings database$17,000
Asks $17,000
Compiler bug bounty$25,000
Asks $25,000
Phishing blocklist API$20,000
Asks $20,000
Transaction simulation warnings$10,000
Asks $10,000
Incident war room$20,000
Asks $20,000
Whitehat legal retainer$10,000
Asks $10,000
Formal verification course$15,000
Asks $15,000
The marker is the ask; the unspent money behind a proposal must reach it to fund it.
Place what you would like to see funded, even in a low tier. Transaction simulation warnings is the last proposal funded, and it only just passes. It asks for $10,000. The wallet teams had spent their whole share on the blocklist, so the incident responders were left with $9,000 behind it, $1,000 short. The researchers' B-Tier closes the gap: they pay $1,127 and the responders $8,873.
Had the researchers left it off their ballot, it would not have passed, and $13,000 would have gone back to TheDAO instead of $3,000. Money only pays for what its voter placed. A $1,000 donation from the public could still have funded it. So a ballot should hold more than a voter's own priorities: use the lower tiers for proposals you would be glad to see funded.
This is the ballot a badge holder fills in: Must fund is the S-Tier, Should fund the A-Tier, Nice to have the B-Tier. You are a twenty-first voter, and to keep the numbers round the pool grows so every ballot still steers $5,000. Proposals in the same tier are tied. Your share only pays for proposals you place in a tier; whatever you have left after your tiers goes back to TheDAO. The incident responders hold $15,000 and their war room costs $20,000. The researchers hold $10,000 and their course costs $15,000. Your one ballot can fund either. A direct public donation can also lower an ask until its backers can afford it, which you can try under the ballot.
Drag proposals into a tier, or select a proposal and choose “Move here”.
Proposals in the same row have equal priority. Unplaced proposals sit below all three tiers.
| S-TierMust fund | Drop proposals here |
|---|---|
| A-TierShould fund | Drop proposals here |
| B-TierNice to have | Drop proposals here |
You can move proposals between tiers at any time before submitting your ballot.
The public does not vote. A donation goes straight to an initiative and lowers what it asks from the pool, so it needs less badge-holder weight to pass.
$100,000 pool, 20 ballots, $5,000 each
You have not placed anything yet, so you change nothing. This is the outcome the other 20 voters reach on their own.
Nowhere yet. A badge holder who submits no ballot steers no money.
The paper calls it Inclusion PSC, proportionality for solid coalitions. Groups that agree on their top choices receive representation according to their share, subject to project costs and ties. A group cannot be left short of another jointly preferred proposal if its share can cover that proposal plus the funded projects counted toward its representation. The wallet teams cast 20% of the ballots and all put their $20,000 blocklist in their S-Tier, so it is funded whatever the other 80% do.
A voter's money only ever pays for proposals they placed in a tier, so every funded proposal is paid in full by voters who asked for it.
Voters will be able to choose to spend their remaining money on other proposals of the round instead of returning it. With that option they can still withhold it from the proposals they discarded.
Proposals are funded whole or not at all. The responders alone cannot fund a $20,000 war room with $15,000; they need an ally or a donation. Any money the tally leaves unspent goes back to TheDAO.
With a hard deadline, whoever moves last can change what is funded and nobody has time to answer. So the round closes with a quiet ending. A day before the deadline it takes a first tally. If the result at the deadline is the same, the round closes on time. If it changed, voting stays open a little longer so everyone can answer, and every extension is half as long as the one before. Below, one late move is followed to the end.
Step 1 of 6A day before the deadline
The round is about to close. A day before the deadline it takes a first tally and publishes it: Bridge fuzzing harness, Phishing blocklist API, Whitehat legal retainer, Audit findings database and Transaction simulation warnings would be funded. This is the result the deadline will be compared with.
This page explains the mechanism. The specific rules of the round are announced by TheDAO.