I was wrong about only needing one price feed using the reverse Dutch system. In order to determine how many shares to print when contracting the supply, a price feed for the shares is required as well. However, the price feeds still do not directly determine the buy/sell prices, so mis-pricings do not lead to damaging arbitrage opportunities. They lead to bad supply changes, but those can be corrected in the next cycle.
OK, I thought about this a bit more. My main concern with Robert’s approach of just holding auctions is that under low-volume environments it could lead to arbitrage exploitation. Consider:
- Coin price rises to $1.01, share price $100
- Coins are auctioned. Attacker bids 0.008 shares ($0.80) and wins one newly generated coin.
- Coin price drops to $0.99
- Shares are auctioned. Attacker bids 0.012 shares/coin ($1.20) and converts his coin back into 1.2 shares.
The attacker is now 0.004 shares richer. LMSR-type systems are nice because they tend to be unexploitable even in these kinds of very low volume environments.
Is that the only problem you see with Robert’s implementation? The main issue I have with the seigniorage share system is that the only auction type that is possible is coins for shares and shares for coins. It literally makes it so that the only way to retract supply is based on the value that speculators put on future expansion of the network (the main value ascribed to the shares). In a complete seigniorage system, you should be able to auction off newly printed coins for any on chain asset (chosen by shareholders which asset is best at the time of auction) and then hold the assets in the smart contract like a central bank’s vault/balance sheet. The shares in this system would be valued at (1/total share supply)*(total value of all assets held in the smart contract)+(future expansion of the network). In such a system, you are essentially creating a decentralized DAO which functions as the Fed. Anyway…I agree that in the system I proposed, I’d likely opt to use an LMSR too.
It literally makes it so that the only way to retract supply is based on the value that speculators put on future expansion of the network
Technically, it could be the value of the future expansion of the network plus fees. There are at least two kinds of fees that could be charged: (i) demurrage on coins, (ii) exchange fees or profits on the coin/share exchange mechanism. So shares could have value even if there is common knowledge that eventually the usage of the system will go to zero.
So if I understand you correctly, you’re saying that instead of being able to auction for different assets, the system should incorporate some kind of fee which in theory should increase the more adoption increases. That’s a decent idea for getting out of the rut of the original seigniorage shares system. But could you expand on what you mean in (i) on demurrage? How would that not affect the market price of the coin and become priced in when people accept it as payment? I mean, I guess it would become priced in but you could just peg coins at the network’s desired price anyway. I guess I’d need some clarity on that.
I like the idea of bringing additional assets under control of the system. Auctioning off coins for ether or something else to act more like a central bank. I might try and incorporate that into a later version of the code.
Exchange fees seem like a reasonable method for propping up the share price. I can’t think of an exchange that doesn’t charge some sort of fee.
It seems like the auction is better at handling high-volume environments and the LMSR system is better at handling low-volume environments. Maybe there’s a way to combine the two? Have the contract switch methods based on volume? Downside would be the added complexity.
Completely agree. Maybe some burns/sinks in the system as well.
Coins are burned during contraction cycles and shares are burned during expansion cycles, so there are two natural sinks built in.
For a hybrid system using both market makers and auctions, I could see the contract burning coins/shares accumulated thru exchange fees during contraction cycles in lieu of an auction. I’d have to think thru the economics of that a little more.
What’s actually wrong with the auction scenario you’re describing? If there was a statistical edge in this participate-in-low-volume-auction strategy, then it invites trading behavior that will arb it away (and increase auction volumes). Seems perfectly normal to me, but maybe I’m missing the point. I guess the thing that makes me uncomfortable with the LMSR-like approach is that (1) you’ve now got two oracles in your supply mechanism rather than one (and the oracle is the widest exploitation surface I think) and (2) there is more uncertainty in the timing of coin supply changes. Feels like too many moving parts that can lead to chaotic feedback. Will think it through more though, cause I LMSR-like mechanisms. They’re under-explored and more applicable in crypto than elsewhere.
Could even go futher… let the shares be the stake token (and earn yield on all Tx fees). But that’s assuming a separate chain, or a stablecoin vision for ethereum-casper
In my current implentation I’ve stuck with auctions because I’m assuming easy profits will be too juicy for traders to ignore. But until the coin is tradeable on an exchange with good liquidity, it will be difficult to conduct the arbitrage. There could be some startup issues.
I ended up sticking in a 2nd oracle anyway to figure out how many shares to print during contractions. Implementing a standard auction on-chain is complex and creates a bunch of attack vectors. Mis-pricings don’t create arb opportunities so it felt like the better option.
I really like the idea of shares being a staking token. But that would basically mean that the system would be a separate blockchain and not a solidity contract since the staking tokens allow the holder to participate in a Byzantine process (PoS). I think the simplest method for a seigniorage shares implementation might be to start it out as a pure solidity contract (that can then use Plasma later if need be). The other thing is that being fully on Ethereum allows assets to be auctionable for any on chain asset other than just coins for shares and shares for coins (you can refer to my other post above for this idea, although I’m not sure how amenable you are to it).
I guess this ends up as a hybrid between an SS design and a crypto collateral design like MakerDAO. Both valid approaches with very different economics. Not sure how they would work together, maybe the
other tokens crowd out the shares and it just converges to a collateral scheme defacto.
I think the simplest method for a seigniorage shares implementation might be to start it out as a pure solidity contract (that can then use Plasma later if need be).
I’m a fan of a SS stablecoin on ethereum that targets plasma chains. We’ve been looking into that recently, think there’s real synergy there!
Interesting. Will checkout your implementation.
I have this implementation on the same line for an ICO/Token with floating supply based on #TransactionsPerDay, if transactions go down I remove supply per wallet, or viceversa. The idea was to reduce volatility of the token price:
I recommend a 100 day Moving Average for Daily updates (100 points), based on empiric tests…
I agree that “hybrid SS” is a good way to describe it, but I don’t think it would ever converge to a MakerDAO collateral scheme because in the Hybrid SS way that I proposed, the shares always act as equity in the system which means 1 share is always entitled to (1/totalShares) of the assets held in the smart contract + (future expected expansion of the network) which is never the case for MKR holders since CDPs are needed to act as collateral for outstanding Dai. Additionally, shares can be printed to retract supply at any time which isn’t possible for MKR tokens unless the system needs a “lender of last resort.” I really like the seigniorage share system (you’ve done a great job conceiving it!), it’s much better than alternatives, but I think having the flexibility to auction printed cash/coins for any asset to build a balance sheet of many products (like a real Federal Reserve balance sheet) would make the idea truly good enough to become a global, stable currency since it incorporates the most adaptive features of central banking monetary policy + the efficiency of decentralized systems.
Staked shares can in fact be used as collateral to finance contractions. By receiving txn fee dividends they are less speculative than shares in pure seigniorage, and per Vitalik’s point retain value even in long-term/terminal recessions. This need not assume PoS for consensus. We can decouple the stablecoin mechanism from the consensus protocol.