In my previous series of blog posts I wrote how a Bancor contract could hold reserves used to pay insurance claims. These reserves represent a community resource to which every policyholder feels they have some ownership stake. To claim this resource a policyholder would open up a valid claim and have it approved. This claim evaluation process would follow the same methods used by traditional insurance companies to approve claims today.
Once approved the policyholder would then be awarded CA tokens. By sending their CA tokens to the Bancor contract they could then convert them to a claim payment.
In this way a CA token represent the right to claim ownership of a community resource locked inside of the BXC. The community resource inside of the BXC is ETH (BNT). If someone sends CA tokens to the BXC this would drop the exchange rate between CA tokens and reserve currency.
In response the system should add reserves back to the BXC to restore the exchange rate back to parity. In this way the system guarantees the next policyholder that their claim will be fairly paid.
Do policyholders ever have a reason to send some ETH to a BXC in order to claim some CA tokens? CA tokens are promises to pay out ETH, and exist only to provide access to ETH which has real value outside of the community of policyholders. Why would anyone want to hold onto a CA token if claims can only cause the asset to lose value and proper system administration only serves to maintain but never increase its value? If a policyholder were to send ETH into a BXC, then this becomes a community resource for paying claims belonging to everyone. In exchange for injecting wealth into the community what could we offer in return? This is where the concept of weighted voting using Bancor smart tokens has its origins.
Logic clearly dictates that the needs of the many outweigh the needs of the few, just not all the time.
In the movie Wrath of Khan Spock sacrifices his life to save the lives of his crew and in principle this is a very noble action. Would you personally want to be a member of a community where it is assumed that the minority will always make scarifies for the benefit of the majority? Maybe if you were in the majority I suppose. In any community there will always be some disputes. The challenge of balancing the needs of various groups is difficult. We don’t merely want rule by the majority all the time, do we? If we want to find some alternative to majority rule a 1 person 1 vote system is not always going to work. We need some process of weighting everyone’s votes using some strategy that could allow for a minority to gain additional influence. We need a metric whereby a minority might be able to outweigh a majority. What if the minority can trade their wealth in exchange for greater voting power to pass legislation? What better metric could there be other than money itself?
Typically money used to buy power (i.e. votes) in a system of governance is looked down upon as corruption. If you give money to a politician in return for their assistance to pass a law favorable to your special interest, then we call this a bribe. Bribes are considered by most developed countries to be illegal. But in this case the money paid to gain additional weight to one’s vote is paid to the entire community. No one person stands to benefit at the expense of other people, which makes this an interesting idea. Additionally, blockchains make these payments transparent. So does that mean if someone pays a lot of money to add extra weight to their vote they are bribing the entire community? The language which describes money’s traditional role in manipulating a political outcome seems to fall apart here.
So let’s outline our initial assumptions
This is the previous architecture we established from past blog posts:
- Tokens inside of the BXC represent the ability to pay a claim.
Tokens outside of the BXC represent the promise to pay a claim.
- Tokens outside of the BXC represent the current claims outstanding.
- Sending tokens to the BXC temporarily lowers the value of tokens until premiums are added back to the BXC to rebalance the exchange rate.
These are the new concepts we are adding into our model:
- The community votes using their tokens which also represent a right to obtain a claim payment in reserve currency (ETH).
- Tokens have a dual purpose in that they don’t merely represent voting power they also represent an obligation to pay an insurance claim.
- Sending ETH (BNT) to the BXC potentially raises the value of tokens which effectively lowers everyone’s insurance premiums slightly.
- To finalize the benefit the community gains by this injection of capital into the BXC the tokens need to be destroyed outside of the BXC.
- Some aspect of the voting process needs to destroy tokens so that they have no way of returning to the BXC to reclaim ETH (BNT).
- The act of influencing the community to pass legislation that is favorable to you thereby costs you something and permanently increases the value of the entire community for everyone.
When disputes arise between different groups of policyholders the whole community is required to vote. Any tokens committed to a vote which fall below the max per person limit are returned to policyholders. Any tokens which exceed the max per person limit are burned (if none of this is making sense yet please just bear with me the examples will make everything clear).
This makes sense because:
- Any member of the community can acquire tokens only by funding the BXC.
- Tokens outside of the BXC represent an ownership right to reserves inside of the BXC.
- When you burn tokens outside the BXC you are abandoning your right to reserves inside of the BXC.
- Burning tokens therefore subsidizes everyone’s future claims.
The only way to balance out the needs of the individual and the needs of the community is by allowing some votes to have higher weights. The individual has the opportunity to gain greater voting power in return for their efforts to help the entire community. Burning tokens indirectly capitalizes the pool that pays everyone’s insurance claims. Burning tokens allows for a minority opinion to compensate the majority. This gives minority voices a choice.
Voting is a 2 stage process:
- Everyone submits an initial secret bid which indicates how they are voting and how many tokens they are using to vote.
- Everyone’s bids for round one are revealed.
- Everyone has the option to increase but not decrease the amount of tokens they will commit in a second final round.
- Bids are secret until all votes are cast.
- All bids are revealed. The vote then is finalized and any excess tokens used for voting are burned.
- All other tokens below the per person limit are returned back to voters.
An example vote
1 token in this example is approximately 0.0015 ETH or 1 dollar in conversion value just for the sake of simplicity. A claim valued at 3000 USD is in dispute. There are 100 members within the community. The entire community votes and initially everyone uses 1 token each. The vote comes up 40 in favor of paying the claim 60 against paying the claim after round 1. So the claimant + 39 policyholders are in favor against 60 other policyholders who are opposed.
A total of 100 tokens were used. In the second, round anyone can commit additional tokens. If everyone but the claimant does not increase the number of tokens they use to vote, the claimant needs a large number of tokens to swing the vote. For a single person (i.e. the claimant) to clinch the vote in their favor they would need to use 2002 tokens. This action would produce the following results:
Tokens used to vote
Claimant commits: 2002
Community in favor commits: 39
Community against commits: 60
Total tokens used: 2101
Max tokens per person: 2101/100 = 21.01
Final vote tally
Claimant in favor: 21.01
Community in favor: 39
Total in favor: 60.01
Community against: 60
Tokens returned to community: 99
Claimant’s tokens remaining: 2101 - 99 = 2002
Tokens returned to the claimant: 21.01
Tokens burned: 2002 - 21.01 = 1980.99 tokens burned
RESULT: vote 60.01 in favor of paying the claim to 60 opposed to paying the claim. Everyone else receives their one token back and the policy holder receives their 21 tokens back. 1981 tokens are burned and cannot be sent back to the BXC. The community gains an additional 1981 tokens of capital. An individual claimant was required to spend a minimum of 1981 tokens of value for the possibility of gaining a claim valued at 3000 USD.
This could have been blocked by just one of the people who opposed the change. Instead of voting with 1 token they could have increased their vote by 1 to make their vote 2 tokens. If this had occurred then the community would have still gained 1981 tokens of value but the claimant would have been denied their 3000 USD claim. This is why each round of voting is initially concealed followed by a reveal phase.
2nd example with the same claimant
Another result could be that each member in favor increases their vote by 3 tokens in which case
Tokens used to vote
Claimant commits: 3
Community in favor commits: 117 (39 x 3)
Community against commits: 60
Total tokens used: 180
Max tokens per person: 180/100 = 1.8
Final vote tally
Claimant in favor: 1 x 1.8 = 1.8
Community in favor: 39 x 1.8 = 70.2
Total in favor: 72
Community against: 60
Tokens returned to community: 60 + 72 = 132
Tokens remaining: 180 - 132 = 48
Tokens burned: 48 tokens burned
RESULT: vote 72 in favor of paying the claim to 60 opposed to paying the claim. All opposed receive back their one token all in favor receive back 1.8 tokens. 48 tokens are burned thus the community gains an additional 48 tokens of capital. This could have been blocked if 13 of those who opposed increased their vote from one token to two tokens.
In the end I think this is a fair way of voting because it allows a minority opinion the ability to pass legislation. If the minority opinion is willing to pay the appropriate price to strengthen the entire community then they can add a proportionate weight to strengthen their minority vote.