Oracle Revamp Proposal for Columbus-3

This statement^ attempts to defend flawed system mechanics by suggesting your personal definition of a “quite low” amount of unhedged volatility (and the resulting Luna dilution) should be tolerable for Luna investors. I believe zero unhedged volatility is acceptable, and the Terra system has a fiduciary responsibility to guarantee this.

On top of that I would argue forex volatility is not low in the context of the Terra system. The SDR to KRW rate has fluctuated between 1553 and 1685 in the past year; USD to KRW between 1107 and 1223…

Can you explain more about this Tobin tax? This would appear to be in direct contrast to what @nplatias just said about zero fee swaps, but would like to hear more specifics as to how it would work!

I agree that we ideally want (and should eventually pursue) Luna trading vs SDT. A couple of things to note though:
(1) Assuming we permit trading of all Terras vs Luna, how we “define” the Terra pool is in fact arbitrary. The size of the Terra pool merely determines the aggregate cap on minting/burning of all Terras in any 24h, whichever Terra people want to swap. So the denomination here is arbitrary – KRT works just as well. Rationale for SDT is that it is supposed to be the “default Terra”.
(2) The problem you raise – Luna/SDT swaps being based on the exogenous KRW/SDR pair – is just as much a problem in the current system, or any system that supports Luna/SDT swaps based on a Luna/KRW market for that matter.

This indeed feels problematic – though to be clear this is not risk-free profit, the trader could have well lost 10% on all trades, meaning that Terra would have been burnt, benefiting everyone. That said, you are exposing an emergent consequence of permitting cross-Terra swaps whereby forex fluctuations can alter Terra or Luna supply independent of Terra’s stability. I wonder if this is an inevitable consequence of cross-Terra swaps. The system by its very design allows people to trade forex via swaps.

How does an independent Luna/SDR or Luna/USD market fix the problem that traders can profit (with risk) from forex fluctuations? What do you mean by “hedge” in this context?

We plan on introducing a Tobin tax on cross-Terra swaps to prevent funny behavior and more realistically mimic traditional forex trading. This is separate from the Terra/Luna swaps – in that case you are not gaining exposure to the underlying forex rates, so there is no reason to charge a fee. Does this make sense?

I don’t think Luna-Terra trading pairs really hold much meaning for the system.

I guess it doesn’t hedge against fluctuations, it just gives you true market pricing for Luna in each currency, which will give you the true exchange rates (as opposed to the direct fiat to fiat exchange rates, which don’t apply to crypto markets).

Risk-free to the trader or not, the system should be agnostic to the quality of the trader and remain fully hedged in the face of any system-exogenous rate fluctuations. This is why I pointed out back in May that the current system is flawed because it is always either winning or losing, when it should always be neutral.

Yeah, I would say even more generally, a consequence of a multi-currency Terra. Let me try to flesh out my thoughts and opinions on this:

First, I don’t think we need to support swaps at a system/protocol level. Foreign currency exposure can easily be built on top of crypto at the application layer.

Second, to me this idea of using the SDR as the mothership currency is, frankly, quite academic. No one uses the SDR, the average consumer has no clue even what the SDR is, no one trades with the SDR. MakerDAO realized this (probably along with the fact that there is no liquid SDR<>ETH market to supply oracle price feeds), which is why they switched to use the much more easily understood and widely used global currency: the US dollar.

The more I think about it, the more difficult it appears to support multiple Terra currencies, given the fluctuating nature of exchange rates and how the system is built to mint and burn to compensate price fluctuations. Minting and burning are supposed to compensate for expansions and contractions of the economy, not forex fluctuations.

Furthermore, I fear oracle incentives might be perverse: stakers are incentivized to vote rates that devalue the relative price of the most heavily issued Terra currency at any moment in time to prevent swaps from inflating their Luna holdings. This surely holds ramifications for Terra’s expansion beyond Korea…
(Edit: I suppose this^ would only happen in the case where there is no independent Luna<>fiat trading pair for an issued Terra currency.)

What do you guys think?

Good points @Jkim.

I agree that an ideal design satisfies this. Question is – how do we achieve this in a multi-Terra system?

Yes – assuming that each Terra can be swapped against Luna which is by design.

Can you elaborate? The need for local Terras in terms of adoption is obvious – if I’m a TMON user I do not want exposure to forex risk (unless I opt in). How do we achieve this with a single protocol-level Terra?

Pegging to the SDR is certainly more ambitious than pegging to USD. The days of the dollar as reigning currency are limited, much like for all reserve currencies that came before it. The idea of a “currency basket” is not new, and I think the pitch “more stable than your favorite currency” can work for the average consumer. Libra’s choice to peg to something along those lines vs the USD confirms the thesis. Fundamentally, the bet is that currency baskets as a concept can get adoption (to be confirmed). The fact that BTC does not trade against SDR is not the point here – it never will, though it may trade against SDT, Libra and so on.

Proposed implementation of the constant-product swaps algorithm in python here.

Yeah, good question. Not sure, really. I suppose imposing uniswap mechanics to cross-Terra swaps could smooth out volatility here, or only defending individual Terra pegs with the Luna-Terra uniswap mechanism and allowing Terras to simply trade against each other on the free market.

Would have to think about this one some more.

So my point here was isolated to a forex exposure/swap feature: if people wanted to hold their wealth in different national currencies without forfeiting custody of their funds (crypto-style), this type of functionality can be (and already is being) built in at the application layer by utilizing global crypto liquidity to facilitate transfers. The mechanisms behind such products are somewhat complex and not directly relevant to this discussion, so will save a deeper dive for another time.

Most definitely. I agree with the ethos of using a basket vs a singular currency for a peg, but practically speaking I do not believe everyday people understand it, which just means there are tradeoffs to being (what I would call) an academically sound currency vs. a widely understood and easily used currency. MakerDAO went through this and decided the tradeoff wasn’t worth it, and that a USD peg would be best for garnering more widespread adoption. They do, of course, have the optionality built into their governance structure to change this in the future if they wish.

Agreed that “more stable than your favorite currency” is a great pitch, but if the USD is your reference point then the USD is always more stable (pardon my oozing patriotism).

Those are my two cents on the choice to use an SDR peg :). I think this is mostly a philosophical discussion, and we first need to figure out how to make a multi-Terra system work.

You bring up a very important discussion with your Libra reference.

Libra pegs to a basket of “low volatility” assets that they hold in a reserve. As a result, all Libra volatility is hedged because the association directly holds the underlying assets (hopefully :wink:), creating a direct, fully liquid market for issuance and redemption at a 1:1 rate.

For Terra, we are relying on a high volatility asset in Luna along with oracle voting to provide a similar issuance and redemption market. If we don’t have an independent Luna-SDR market, how do we know what the price of Luna is in terms of SDR? Who decides that rate, and what are the incentives for oracle voters to use that artificial rate? IMO this becomes quite the ambiguous voting scheme, as there is nothing really defining and defending an SDR peg. And, as mentioned above, I am concerned about voter incentives here…

Defending Terra pegs without facilitating cross-Terra swaps is not a good option in my opinion – the ability to swap between Terras is a key value proposition. I think that the tension here can be summarized as follows: we want to facilitate low-friction cross-currency transfers, while at the same time minimizing exposure to system-exogenous volatility. This is a significant open problem that deserves separate discussion – let’s move it here.

Recalling your original point:

Are you referring to decentralized derivatives ala dydx here? It certainly is possible – in theory – to buy or sell whatever risk you want decentralized-ly. That assumes you’ll find the necessary liquidity – biggest problem with DeFi at the moment. More pertinently though, I don’t think this solves our use case, which is for the Vietnamese worker in Korea to cheaply convert TerraKRW to TerraVND and send back to her family. A decentralized KRW/VND futures contract surely ain’t gonna help her much, right?

Yes – primary objective is a sound multi-currency Terra design. “Mothership currency” is nothing more than a narrative actually – the protocol does not favor SDT over the rest in any meaningful way right now. The suggestion to use SDT when defining the liquidity pool is largely arbitrary as I pointed out – it’s just the denomination for “global terra market cap”. A multi-currency design creates currency competition, so at the end of the day the SDT vs UST verdict is up to the market.

Libra volatility is not fully hedged. First off, Libra didn’t give us a benchmark – volatility against what? Sounds like a currency basket but not clear. I think that Libra is pretty much a tokenized MMF without the interest, hoping that it can function as a loose currency peg. Go back to 2008 to recall why MMFs do not work well as currency pegs – the Reserve Fund broke the buck when the “low volatility” Lehman paper it was holding went bust in a day. Were it not for the Fed, investors would have suffered serious losses. The point is that Libra’s “low volatility” assets cannot guarantee 100% redemption against their peg unless the Fed is ready to step in. To be fair, this is no less a risk with Terra insofar as we hold less than 100% cash reserves. The stability mechanism + fiat reserve have been designed to minimize this risk.

As designed, in absence of an actual Luna/SDR market the rate is determined by say Luna/KRW and KRW/SDR. This is not ideal. Can you explain where you think redemptions break though? If there are liquid markets for both Luna/KRW and KRW/SDR, where does the following redemption process break: SDT --> Luna --> KRW --> SDR. I can see more fees and slightly higher volatility as risks.

Robust voter incentives in decentralized oracles is, in all honesty, very much an open problem. Marco from our team is doing some mechanism design research where the goal is a mechanism whose dominant strategy is truthful voting. The VCG mechanism is an excellent result from auction theory with that property.
Addressing your specific concern about devalued voting: I think that a constant-product mechanism similar to the one I proposed applied to cross-Terra swaps can alleviate this. The objective is to make speculation expensive and our system strictly inferior to traditional forex platforms for non-trivial trade sizes.