Banking, market currency, and the peg
https://github.com/basisproject/tracker/issues/88
MOVED TOWhen members earn credits (₡), they can spend them on in-network products. But what if there are no TVs produced in-network and I want a TV? Effectively, we need to be able to translate internal credits to external currency. To do this, there needs to be some reserve of external currency in-network that users can burn their credits in exchange for.
One important aspect of this is a peg. Let's say we want 1₡ = $1.
There might be two methods of doing this.
Dollar peg
The first, and most straightforward, is that for every credit printed we need at least $1 in a bank or wallet that can be exchanged for this credit.
Notes:
- We can do this with just one global account, but that reeks of centralization. It opens the network to attack. A seizure of that account would spell disaster for the network.
- Can this be decentralized in an effective way?
- Hold GUSD/USDC/USDx/DAI/etc in multiple wallets (or hell, one big wallet) as stores of value, only touching actual USD when needed
Market-credits (₡M)
Update the monetary system slightly. Only members can hold ₡, but they can convert (one-way) ₡ into ₡M (market-credits) which can be transferred to anyone. ₡M can be spent on in-network goods with some kind of markup on at-cost (₡) pricing or markdown on market ($) pricing. For instance, if a chair costs 5₡ in-network and $8 on the open market (assuming here that 1₡ = $1) then the chair might cost 6₡M. In other words, it's a drastic discount on market pricing, but a markup on in-network pricing. ₡M holders have a better position on in-network goods than USD holders, so there is an incentive to hold ₡M over $.
The idea here is that members can burn their credits for ₡M and trade ₡M for USD. In effect, this distributes the ability to convert credits into USD in theory. In practice, it's more of a decentralization, because the ₡M -> USD conversion is only as good as available exchanges, however the idea here is that members can "cash out" of the system without needing supporting banking infrastructure.
That said, there still might be USD pools that members can convert ₡ -> $ with, and it would likely do this on a 1₡ -> $1 basis (and the network pockets the difference). Members are free to do the manual conversion and sale themselves and keep the remainder, but they would need to have an exchange path set up.
Notes:
- ₡M will have its own USD conversion rate. If the value of 1₡M < $1 then the peg would collapse and effectively 1₡ would be a free-floating value, unless the bank wanted to back it at $0.95 or whatever.
- ₡M might have to be a market discount instead of an at-cost markup. In fact, if our goal is to peg the USD (heh) then it would make more sense to have it be a discount on the USD value.
- If in-network cost and market price are the same, the network might have to eat the 10% discount.
- Discount value might be able to float. Ie, some days it's a 5% discount, some days it's 10%. However it would make sense to have "fixed" discount coins (₡Mf) which might be higher value. Not sure on this yet.
- Need to think about multiple market currencies
- If ₡M is a discount on $, then effectively the only supported currency would be $.
- If ₡M is a markup on ₡, then it becomes market-currency independent. Not sure what mechanisms could be used to maintain value here though. Needs more thought.
- ₡M can be printed ahead of time and sold on the open market via an ICO (I almost vomited while typing that, wait, no, yep I just vomited all over my keyboard). This could end up being a fund-raising mechanism to start buying property and kickstart the network.
- Banking infrastructure might still be needed! However, instead of the bank holding capital, it would convert your ₡ to ₡M, trade it for $, and ACH you the $. The bank wouldn't need millions in reserves just sitting around, and as a bonus it could pocket the difference between ₡M and $ and reinvest into the network.
- This is much more resilient because there aren't large attackable pools of capital sitting around. However, you still need an organization that can fulfill KYC regs and effectively convert GUSD/USDx/USDC/DAI/etc into actual, tangible, USD which it sends via ACH or Zelle or whatever.
- This is effectively the same as the dollar-peg idea above, except we're banking on market value of ₡M instead of holding reserves in crypto wallets. In effect, we trade holding USD-likes in reserve for the market valuing ₡M at some price.
- If a product costs 5₡ and $5, then converting ₡ -> ₡M would give the member an immediate discount where one is not warranted (they are not helping the peg mechanism).
- How do we enable this mechanism without the abuse that might come with it?
- Perhaps we only allow ₡ -> ₡M conversion by the banking system itself. In fact, let's say 1₡M skyrockets to $5 (fat chance, but markets are dumb sometimes)...everyone and their dog is going to be figuring out how to cash their credits out and sell them on exchanges. This situation could damange the network because we ultimately want credits to be spent in-network...that's the entire point of the network: self-created and consumed value.
- This is making more sense to me: formalize the 1₡ -> $1 USD process in the system such that it's handled behind the scenes.
- Eliminates ability to game the system
- Allows setting a global conversion rate (ie, 1₡ -> $0.995) if we want to systemically incentivize spending in-network
- However, this requires the banking infrastructure. But let's be honest, can we really expect members to convert ₡ -> ₡M and sell it on an exchange and convert it to USD then ACH that into their account every time they want to make a withdrawl? The process needs to be formalized, automated, and guaranteed no matter what.
Mixed method
Perhaps we hold reserves of "cash" so if 1₡M falls < $1 we can still maintain the peg for some period of time, and then replenish the reserves if 1₡M > $1.