Signers and Governance Tokens
In this hypothetical ROAST swarm, there are ten signers, named after colors:
Red, Blue, Orange, Pink, Green, Indigo, Purple, Yellow, Brown, and Gray.
Each holding a certain percentage of a governance token on Ethereum (ERC20). It can be on anything really, it is all fine as long as it is easy to deliver the proof.
Instead of all participants having an equal share in controlling the swarm, each participant’s influence is determined by the proportion of governance tokens they own. This ensures that individuals with a larger stake carry correspondingly greater weight in any collective decision-making.
For example, each of the participants has this proportion in governance:
Red: 2.25%
Blue: 16.20%
Orange: 1.47%
Pink: 10.65%
Green: 0.58%
Indigo: 26.00%
Purple: 5.00%
Yellow: 18.50%
Brown: 15.35%
Gray: 4.00%
The goal is to have fair representation: users’ influence is tied to their actual stake.
Proof of Ownership and DKG Setup
Before the Distributed Key Generation ceremony is initiated, each signer must prove how many governance tokens they own. This is accomplished by delivering an on-chain proof of ownership—typically a signed transaction or message that verifies control over the tokens from the relevant ERC20 contract.
Once ownership is confirmed, the group initiates a Distributed Key Generation (DKG) process. DKG allows multiple participants to jointly produce a single public/private key without revealing individual key fragments to one another.
Allocating Virtual Shares
A critical twist in this DKG process is the concept of virtual shares. Rather than assigning exactly one key fragment per signer (which would treat them all equally), a total of 1000 shares are distributed proportionally according to their stake percentages. For example, if Indigo owns 26% of the governance tokens, Indigo will receive around 260 virtual shares. Rounding rules apply so that the final assigned shares total exactly 1000 across all ten signers.
These virtual shares represent weighted partial key fragments. The higher a participant’s stake, the more key fragments they control—and hence, the more influence they wield in the signing process.
In this example, we use a “round half to even” approach (commonly known as Banker’s Rounding) to ensure the final share count sums up neatly:
- Multiply each signer’s percentage by 1000.
- Apply “round half to even” to the result.
- Verify the total adds to 1000.
| Signer | Stake | Exact Calculation | “Round Half to Even” | Final Shares |
|---|---|---|---|---|
| Red | 2.25% | 1000 * 0.0225 = 22.50 | 22 (since .50 → round to nearest even integer, which is 22) | 22 |
| Blue | 16.20% | 1000 * 0.1620 = 162.0 | 162 (no fraction) | 162 |
| Orange | 1.47% | 1000 * 0.0147 = 14.70 | 15 (regular rounding) | 15 |
| Pink | 10.65% | 1000 * 0.1065 = 106.5 | 106 (since .50 → round to nearest even integer, which is 106) | 106 |
| Green | 0.58% | 1000 * 0.0058 = 5.8 | 6 (regular rounding) | 6 |
| Indigo | 26.00% | 1000 * 0.2600 = 260.0 | 260 (no fraction) | 260 |
| Purple | 5.00% | 1000 * 0.0500 = 50.0 | 50 (no fraction) | 50 |
| Yellow | 18.50% | 1000 * 0.1850 = 185.0 | 185 (no fraction) | 185 |
| Brown | 15.35% | 1000 * 0.1535 = 153.5 | 154 (since .50 → round up to the even integer, 154) | 154 |
| Gray | 4.00% | 1000 * 0.0400 = 40.0 | 40 (no fraction) | 40 |
8-of-10 Threshold, Weighted by Stake
Because this is designed as an 8-of-10 swarm, that means that at least 800-of-1000 virtual shares must sign to produce a valid signature.
What can this be used for?
Sidechain(s) come to mind. One’s stake in sidechain governance token grants participant to be the member of the cross-chain bridge.
Wrapmeister too, which is also a cross-chain bridge.
But Oracles too, this method would allow complicated Oracles with governance tokens, profit sharing mechanisms and so on.
DAOs…
Problems
Maybe not ~problems~ but certainly a nuisance.
The swarm will have to be redone after each transaction which changes the ownership ratios. For example, Pink sells 10% of her stake to Black and everything must be reshuffled. This forces the swarm participants to keep track of designated addresses on foreign chain and watch for balance change. If the balance changes, they triggers the reshuffle.
New stakeholders, like Black, will only be able to enter the swarm if someone initiates the reshuffling for them.