In this post, we identify a problem that plagues many stablecoin implementations: incorporating price information.
Stablecoins have recently emerged as a new class of crypto-assets designed to have low volatility relative to some other asset, such as the US dollar. Usually, this is done by pegging the value of the cryptocurrency. In the case of a peg to the USD, the cryptocurrency is meant to trade at a price at or near $1. This typically involves some algorithmic processes that depend on how the current price of the coin differs from the targeted peg.
But how does the contract “know” what the price is? Some current implementations depend on an external price feed, known as an oracle. But oracles are considered undesirable because it’s difficult to know which feeds can be trusted, and selecting a set of trusted feeds introduces centralization. This has prompted many researchers to explore solutions where users vote on the current price.
We argue that approaches based on users voting on the current price, used commonly in various algorithmic stablecoin designs, is broken.
In the proposed implementations, currency holders vote on the current price of the stablecoin. Stablecoin prices are then modulated by adjusting the supply of the coin when it moves away from $1. Typically, when the price of the stablecoin is too low, a secondary coin is auctioned and the proceeds are burned to contract the supply and raise the price. The secondary token has value because when the price is too high, coins are minted to the holders of the secondary token.
This creates problematic incentives when it comes to voting. Suppose the price of the currency is trading above $1. Participants could dutifully report the truth, and trigger the mechanism that dilutes the coin to reduce its price. But this would result in a net loss for them. Instead, they have an incentive to report a price that is lower than the truth, so there is less of the currency put into circulation. It is in the best interest of the participants to falsely claim that the price is still $1, or even lower. Such false reporting will lead to a short-term gain for the current holders, since no new coins will be printed, enabling the current holders to liquidate their coins above the targeted peg value. In the longer term, false reporting might lead to an unstable dynamic, where participants report a false value and drive up the prices, only to be followed by people realizing that there is a bubble and deciding to dump their coins. Since such a dynamic is obviously not desirable for a stablecoin, existing coins have proposed a simple mechanism to discourage this kind of gaming of the system.
The predominant solution, proposed for both Basis and Carbon, is to slash the funds of anyone who votes below the 25th or above the 75th percentile. On the surface, this may seem like a good way to encourage truth telling, but actually reinforces the incentives to game the system. A rational self interested actor will not necessarily report the truth; instead, they will report whatever they think everyone else will say is the true value, because they don’t want to be penalized. This leads to a dynamic known as a Keynesian beauty pageant.
Suppose the objective true price is $1.05. As discussed above, holders of the token have an incentive to not truthfully report the price of the coin, because it will result in them being diluted. Everyone who realizes this should prefer to report a lower price. Usually, it is difficult for many independent actors to coordinate on an untruthful equilibrium. However, since this is a coin designed to trade at the price of $1 this serves as a second equilibrium that is easy to coordinate on. Furthermore, since the coin is designed to trade at $1, lazy voters should choose $1 as their response because it should always be in the vicinity of the truth. Once people realize that other people will act according to these incentives, they, too, should report an incorrect price to avoid being slashed. This is especially the case if there is a coordinating mechanism across enough users, like social media. If someone who has a lot of followers and holds a lot of the stablecoin says they will vote for an incorrect price, it’s irrational for a smaller holder to vote otherwise.
Exacerbating this problem is that crypto markets are so volatile that even if you could somehow elicit truthful answers from everyone (so everyone reported what they really thought the exchange rate is instead of voting strategically) people still might report the wrong price. People would most likely consult some price feed and exchange that may have stale prices or invented volume, and use that as the price. In this case, even with everyone voting as accurately as they can, this is strictly worse than using a price feed because there will be some lag between when prices appear on a feed and when users vote.
Wisdom of the crowds is a sensible decision making paradigm for applications that require pooled public knowledge. However, as is currently being done, crowd-sourcing of pricing data feeds is fundamentally broken for stablecoins because the incentives are misaligned. Stablecoins that rely on this fundamental mechanism should be considered broken.