An analysis of multiple-market blockchain voting systems

Note: This is a rewrite for readability. I wouldn’t recommend reading the original but you can find it here

Howy
Coinmonks
Published in
4 min readSep 27, 2018

--

Tl;dr: Projects that use multiple-markets voting systems (e.g. Augur) will have votes split amongst these markets. Split will be uneven and markets with less staked votes are susceptible to cheap attacks.

Introduction

Many blockchain projects use an on-chain voting system. Some projects use them as a core part of their protocol (Prediction markets like Augur, Gnosis etc) and others use them for other purposes such as governance. On-chain voting systems allow protocols to obtain off-chain truths in a decentralized manner.

A blockchain voting system generally consists of: A “market” containing some options and users vote for options with tokens as stake. When the market closes, the option with the most stake is recorded on-chain as the truth. In the naive implementation of a voting system, participants are rewarded if they end up voting the majority option, else they are penalized and lose their stake. An overview is shown in Fig 1 below:

Fig 1: Process for the generic on-chain voting system

These systems work in theory because the truthful option is a Schelling point. A rational voter has to vote for the truth because “thats what everyone else will probably vote for”. This behavior at the individual level has a positive effect — votes and stake will congregate to the truth. The decentralized protocol is able to obtain off-chain truths in a decentralized way.

Theory in Practice?

In a system with a single market, economic theory tells us that this is a good design. However, multiple markets run simultaneously with a Schelling point in every market creates multiple Schelling points from the perspective of the voter. If voting for the right option in every market provides an equal reward, voters will follow down the “path of least resistance” behavior which is likely “stake all my tokens to validate a trivial truth in the first settlement market I see”.

“But whats my motivation?” — your dApp users

This behavior ends up as skew in tokens over the markets. An intuitive example — majority of individuals would be willing to verify that Germany lost to South Korea 0–2 in the 2018 World Cup but significantly less people would be willing to verify that Rubin Kazan U21 lost to Arsenal Tula U21 1–2. The markets requiring more time and effort than others will see less attention and stake.

Fig 3: A good guess of how it’ll skew will be according to Pareto Principle —80% of stake will concentrate in 20% of markets. Red markets have lower volume and might be susceptible to an attack.

With a drastic skew over multiple markets, the smaller markets might be susceptible to attack. An intelligent attacker would carry out this attack by verifying an untruth at the very last minute with sufficient stake to put him at a 51% majority. The smaller markets see less attention and will less likely spot a last-minute attack.

On-chain voting systems, fortunately, have solutions for a 51% attack — fork the protocol’s state into one that frustrates the attackers effort. This works extremely well when the attack is carried out with ~51% of token supply, but when the skew is bad, the attacker could be able to cash out his tokens before the protocol forks.

Lastly, attacks can be more than for monetary reward — there’s a huge man-hours cost when protocols have to freeze/direct attention/fork which is a potential avenue for cheap griefing.

Some possible solutions and thoughts:

  1. Anonymize the votes. Thoughts: The attacker can still proceed with an attack based on historic data albeit with a lower expected value (if markets of x type historically have an average of y tokens staked and a max of z tokens staked, attack with z+ε tokens yields expected value (y+z+ε)/(z+ε) for some ε).
  2. Add a settlement period for markets after they close before awarding tokens. Thoughts: Under normal operation with rational actors, majority of stake is locked up (token holders optimizing for rewards requires minimizing time holding unlocked tokens in a work-token system). In the end, the generic protocol-level 51% attack is massively massively cheapened because it’s now “the 51%-unfrozen-stake attack”. Defending against smaller attacks makes the protocol more vulnerable to bigger attacks. That said, this tradeoff might be worth it.
  3. Incentivize attention towards smaller markets. Reordering the markets that stakers can view/stake, offering greater rewards to verifiers of smaller markets. Thoughts: Will definitely help improve the distribution of attention, but will it improve the distribution of stake?
  4. Allow a maximum of x tokens to be staked in every single market. Thoughts: The dynamics of a 51% attack is changed, but might still be an improvement over the naive system.

Conclusion

Blockchain voting systems are important as they are a way for a blockchain to obtain off-chain truths and I consider them a core cryptoeconomic primitive (alongside TCRs) for the cryptocurrency age, just like how one-way functions are core primitives of cryptography. These primitives allow blockchains access to a larger set of honest data in a decentralized manner, increasing the utility that the dApp economy can provide. I’d definitely love to see more discussion and analysis in this area — if anyone is interested in exploring this concept more, feel free to reach out to chat :)

Get Best Software Deals Directly In Your Inbox

--

--

Howy
Coinmonks

Not great, not terrible. Entrepreneur, crypto. Masters in CS@JHU, dabbling in math/game theory on the side