I'll see if this can be remedied.
Modify 3 as follows, changes in red. These changes also ensure that the interest rates are 100% risk free, with the risk now being spread equally over all of the users of the currency, not just those participating in bond markets. I have an idea for further simplifying things by combining 3 and 4, but I'm not sure I have the will power to spend further time arguing here...
3)a) You host repocoin-bitcoin repo orders within the repocoin blockchain, so they're public and verifiable. Each repo order consists of
three quantities: a number of bitcoins, B (possibly negative), and
two gross interest rates,
Rr and Rb (e.g. 1.02 representing 2% interest). The order represents an offer to sell (buy if negative) B bitcoins at the end of the current block for a price of P* repocoins per bitcoin and then buy (sell)
RbB bitcoins back at the end of the next block for a
total cost of P*RrB. Note: the seller has borrowed BP* repocoins and will pay back BP*R
r, i.e. R
r is the gross nominal interest rate on their loan.
Meanwhile, the buyer has borrowed B bitcoins and will pay back BRb bitcoins, so Rb is the gross nominal interest rate on their loan.3)b)
Market interest rates Rr* and Rb* are determined by the following verifiable, deterministic algorithm. First, a list of all of the values Rr takes in orders is created, along with a list of all of the values Rb takes. At any particular value of Rr and Rb we can calculate the total volume of trade that would occur. We take the values which maximise this trade volume as the market rate.3)c) We mark (R
r*-1)BP* repocoins in the wallet of each seller as locked and untrasferable.
We also mark (Rb*-1)BP* repocoins in the wallet of each buyer as locked and untransferable. This locking is enforced by consensus.
3)d) At the end of the current block, as before, the repocoins and bitcoins in the orders to be executed are transferred as prescribed, with the bitcoin transactions going through first, and the repocoin one only happening once the bitcoin ones has been verified. If a seller's bitcoin sale transaction fails for some reason then their previously locked repocoins are unlocked.
3)e) At the end of
a specified, later, block, the reverse transaction has to take place. This only happens if the seller's wallet has the required R
r*BP* repocoins (including the locked ones).
If the seller doesn't have this number of repocoins, then the previously locked repocoins are unlocked and sent to the buyer
along with any other repocoins left in the wallet.
Exchange limit orders are then automatically generated to sell the buyer's B bitcoins if they have them, an any price. This generates BP** repocoins (where P** is the new exchange rate) which are then destroyed, along with the (Rb-1)BP* locked repocoins in the buyer's wallet. Simultaneously, RrBP*repocoins are generated (from nothing) and transferred to the buyer. This leaves the buyer with
at least the number of repocoins they were promised, despite the seller's default. To disentivise the seller from doing this too many times, after a default they would be excluded from the repo market from then on. And, in the long run, a bitcoin cost of wallet opening would be introduced to counter-balance default losses from people repeatedly opening new wallets.If the seller does have the required number of repocoins, then, the
buyer's B bitcoins are transferred back first, and then
the buyer's (Rb-1)BP* locked repocoins are destroyed, and exchange limit orders are automatically generated in order to buy (Rb-1)B bitcoins at any price, using repocoins generated from nothing, with the resulting bitcoins transferred to the seller. Finally, the seller's locked repocoin are unlocked and the required repocoin are sent the other way. If the bitcoin transaction fails (e.g. because they do not have enough), then the buyer's (R
b-1)BP* locked repocoins and the seller's R
rBP* are all destroyed, and exchange limit orders are generated in order to buy R
bB bitcoins at any price, using repocoins generated from nothing. This leaves the seller with the number of bitcoins they expected. As before, the buyer is excluded from future participation in repo markets following default.[/color]
3)f) So, given the locking mechanism, it is only following large exchange rate movements that people will have an incentive to default,
and when they do default, losses for the repocoin community will still be minor since they'll be proportional to abs(Rr-Rb)abs(P*-P**) (small).