Author

Topic: The killer app for ripple: arbitrage between bitcoin exchanges (Read 2415 times)

legendary
Activity: 1344
Merit: 1001

I really think this system is dangerous, and I am considering setting two accounts so that I can hold deterministic balances of the same IOU issued by different issuers without having to worry to adjust my trust lines all the time to prevent the network to fiddle with my
stuff.

Most people in this forum, although they belong to a pretty geeky democraphics, can't even understand what Ripple really is in spite of there having half a dozen thread a day explaining the details. Do you really expect the average user out there on the Internet to understand the risk of being a liquidity provider, and take the necessary non-trivial steps to assess the counter-party risk of all his trustees, and offset the risk by setting an appropriate fee?

I agree.
hero member
Activity: 770
Merit: 500
Stating that you trust exchange AAA and BBB up to a given max shouldn't imply that you accept to put all your eggs in the same basket by having all your balance from a given issuer rolled to another trusted issuer for the benefit of the network.

Set your trust limits to how much you want to hold at each. If I have 10 bitcoin and trust A for 3 and B for 9 then any split like 1+9, 5+5, or 3+7 is okay but not 0+10 or 2+8.

That's what I am doing now, but this approach has a lot of shortcomings:
- You pay a fee each time you need to adjust up and down the trust lines.
- Constant trust line adjustments to workaround automatic liquidity providing is going to add unnecessary stress to the network, and cloter the ledger.
- It's tedious to have to expand your trust line by exactly the amount you wish to accept explicitely in a transaction, and to reduce it again once you spent the balance.
- There is (AFAIK) no way to guarantee you are not going to be forerun when you expand a trust limit because the trust limit increase and the fund transfer that it allows are not done in an atomic transaction. If you increase your trust limit with Weex of exactly 3 USD so as to withdraw the 3 USD you have in your Weex wallet, by the time you turn around and withdraw, it is possible that your trust line will already be full due to automatic liquidity providing.
- As you mentionned in another post, converting between issuers of the same IOU can costs fees on certain paths. So if your balance was fiddled with while you were not paying attention, you may end up being the one who has to pay to fix the mess even though you didn't earn a dime for providing liquidity to the network.
- Average users already struggle to wrap their head around basic transactions in Ripple: don't expect they will understand the consequences of letting some open margins in their trust lines. Many people are going to get burnt with junk debt accumulating silently in the wallet.

Making same currency IOUs fungible by automatic liquidity providing with binary (yes/no) trust setting would translate to something very strange in the real world debt market: it's like if all rating agencies only had A and F grades, and you could end up with a lot of spain debt in your portfolio after buying mostly germany government bonds, and just a bit of spain bonds.

I really think this system is dangerous, and I am considering setting two accounts so that I can hold deterministic balances of the same IOU issued by different issuers without having to worry to adjust my trust lines all the time to prevent the network to fiddle with my stuff.

The client should allow to set a fee for acting as a liquidity provider, and should prompt users about the fee when such a conversion is required.

You will be able to set the fee and fees are shown to the sender already (as a total). See the wiki for how you can tell the system (when it's implemented, Ripple is in Beta now and advanced features are not all implemented yet) that you prefer one over the other at at what rate.
You *will*, but that's not the case yet, and setting the fee will likely be an advanced feature most people won't know about, let alone understand. Letting the default be *free* liquidity providing is like shuffling third party risk on unsuspecting users. Not very ethical. If that feature is maintained as is, be assured that everyone aware of the issue will keep their balances in AAA+ grade issuers, let the average joe hold the junk, and make a short foray into junk territory only when this allows them to size a good opportunity.

Liquidity provider should be an opt-in feature

The developers have been warning people to understand what it means to trust more than one entity with the same code. Once quality settings are available you can just set the fee to downgrade your balance to an extreamly high value. If you think that should be inifity (off) then you really should be setting the trust line on the gateway you don't like below your current balance or to zero instead (because you'd be saying that there is no amount of fee that would make you swap which must mean you don't trust them).

Most people in this forum, although they belong to a pretty geeky democraphics, can't even understand what Ripple really is in spite of there having half a dozen thread a day explaining the details. Do you really expect the average user out there on the Internet to understand the risk of being a liquidity provider, and take the necessary non-trivial steps to assess the counter-party risk of all his trustees, and offset the risk by setting an appropriate fee?
vip
Activity: 1316
Merit: 1043
👻
That attack would be pretty limited, because OpenCoin Inc will just reverse the transaction not wanting to tarnish their image of Ripple.

More FUD and lies from TradeFortess. What else is new.

What do you think will happen when an entity has total control over the network and can do anything it sees fit?

(a) Tarnish the image of Ripple forever with a large enough heist due to a flaw in the Ripple code
(b) Reverse the transaction with their power by restoring the ledger to a previous time

This isn't like an exchange being hacked, because unlike Bitcoin exchanges are not separate in the UI / presentation from the actual currency. It's like a flaw in bitcoin where the standard client accepted a TX that sent all 10 million or so coins to himself due to a bug in signature verification.

Of course the developers are gonna push out a new update with a new checkpoint, and miners/nodes are going to follow it, but miners and nodes have to accept it. Ripple, no source code, you accept what you are given.
hero member
Activity: 714
Merit: 500
Martijn Meijering
More FUD and lies from TradeFortess. What else is new.

That ignore button is mighty handy. Here's my current ignore list:

glitch003
bitcoinbeliever
TradeFortress
CoinHoarder
mr_random
wizzardTim
Minor Miner
manface
ymer
Hei_
member
Activity: 84
Merit: 10
That attack would be pretty limited, because OpenCoin Inc will just reverse the transaction not wanting to tarnish their image of Ripple.

More FUD and lies from TradeFortess. What else is new.
vip
Activity: 1316
Merit: 1043
👻
You can only trade USD between mtgox and bitstamp if there is a liquidity provider.  And they may provide liquidity at a fee.  Or mtgox and bitstamp will provide liquidity for each other (I seriously doubt that).  if you trust both mtgox and bitstamp then you become a liquidity provider for free.  I think you can charge a fee by placing orders.

That automatic liquidity provider thing is a flaw IMO.
Stating that you trust exchange AAA and BBB up to a given max shouldn't imply that you accept to put all your eggs in the same basket by having all your balance from a given issuer rolled to another trusted issuer for the benefit of the network.
The client should allow to set a fee for acting as a liquidity provider, and should prompt users about the fee when such a conversion is required. Liquidity provider should be an opt-in feature.

An obvious attack would be for a shady gateway to issue it's own IOUs up to the total amount of trust it has received network wide (easy to find: it's in the ledger), then sell these IOUs in more liquid pairs involving corresponding IOUs of more reputable gateways as base currency, and equally worthy IOUs as quoted currency. This will trigger automatic conversion and drain the balance of each (unwilling) liquidity provider holding corresponding IOUs of the reputable gateway, and increase by the same amount their balance in shady gateway IOUs. Once the shady gateway has siphoned as much reputable gateway IOUs in the quoted currency as the available liquidity and trust levels allowed, it just needs to redeem the reputable gateway IOUs, and default on its own IOUs.

Conclusion: nothing should be done implicitely without prior user opt-in, and without the possibility to receive fees to compensate for the risk.

That attack would be pretty limited, because OpenCoin Inc will just reverse the transaction not wanting to tarnish their image of Ripple.
member
Activity: 84
Merit: 10
Stating that you trust exchange AAA and BBB up to a given max shouldn't imply that you accept to put all your eggs in the same basket by having all your balance from a given issuer rolled to another trusted issuer for the benefit of the network.

Set your trust limits to how much you want to hold at each. If I have 10 bitcoin and trust A for 3 and B for 9 then any split like 1+9, 5+5, or 3+7 is okay but not 0+10 or 2+8.

The client should allow to set a fee for acting as a liquidity provider, and should prompt users about the fee when such a conversion is required.

You will be able to set the fee and fees are shown to the sender already (as a total). See the wiki for how you can tell the system (when it's implemented, Ripple is in Beta now and advanced features are not all implemented yet) that you prefer one over the other at at what rate.

Liquidity provider should be an opt-in feature

The developers have been warning people to understand what it means to trust more than one entity with the same code. Once quality settings are available you can just set the fee to downgrade your balance to an extreamly high value. If you think that should be inifity (off) then you really should be setting the trust line on the gateway you don't like below your current balance or to zero instead (because you'd be saying that there is no amount of fee that would make you swap which must mean you don't trust them).
hero member
Activity: 770
Merit: 500
You can only trade USD between mtgox and bitstamp if there is a liquidity provider.  And they may provide liquidity at a fee.  Or mtgox and bitstamp will provide liquidity for each other (I seriously doubt that).  if you trust both mtgox and bitstamp then you become a liquidity provider for free.  I think you can charge a fee by placing orders.

That automatic liquidity provider thing is a flaw IMO.
Stating that you trust exchange AAA and BBB up to a given max shouldn't imply that you accept to put all your eggs in the same basket by having all your balance from a given issuer rolled to another trusted issuer for the benefit of the network.
The client should allow to set a fee for acting as a liquidity provider, and should prompt users about the fee when such a conversion is required. Liquidity provider should be an opt-in feature.

An obvious attack would be for a shady gateway to issue it's own IOUs up to the total amount of trust it has received network wide (easy to find: it's in the ledger), then sell these IOUs in more liquid pairs involving corresponding IOUs of more reputable gateways as base currency, and equally worthy IOUs as quoted currency. This will trigger automatic conversion and drain the balance of each (unwilling) liquidity provider holding corresponding IOUs of the reputable gateway, and increase by the same amount their balance in shady gateway IOUs. Once the shady gateway has siphoned as much reputable gateway IOUs in the quoted currency as the available liquidity and trust levels allowed, it just needs to redeem the reputable gateway IOUs, and default on its own IOUs.

Conclusion: nothing should be done implicitely without prior user opt-in, and without the possibility to receive fees to compensate for the risk.
hero member
Activity: 756
Merit: 500
You can only trade USD between mtgox and bitstamp if there is a liquidity provider.  And they may provide liquidity at a fee.  Or mtgox and bitstamp will provide liquidity for each other (I seriously doubt that).  if you trust both mtgox and bitstamp then you become a liquidity provider for free.  I think you can charge a fee by placing orders.
member
Activity: 98
Merit: 10
But anyway, yes, arbitraging at Ripple is a great profit opportunity.

Huh? What gateways are you talking about?
legendary
Activity: 1372
Merit: 1002
Then these can be traded on free markets, without fees.

This is not accurate:

http://bitcoin.stackexchange.com/questions/7590/does-ripple-ever-charge-proportional-transaction-fees

Fees should be lower than in exchanges though, as they need to do less.
For example, Bitstamp charges 0.5% at his exchange and 0.2% at Ripple.
There could even be gateways that don't charge intermediary fees but only deposit or withdrawal fees.

And if the transfers are isntant, it is also very useful for those who do the arbitrage.

Well, transactions aren't instant neither, a ledger can take several seconds to close.

But anyway, yes, arbitraging at Ripple is a great profit opportunity.
hero member
Activity: 812
Merit: 1006
Arbitrage opportunities will vanish once someone produces a Ripple client that merges the view of order books from multiple exchanges.


All business opportunities will vanish if we fast-forward enough time to the future...
legendary
Activity: 1064
Merit: 1001
Arbitrage opportunities will vanish once someone produces a Ripple client that merges the view of order books from multiple exchanges.
hero member
Activity: 812
Merit: 1006
Example:

Bistamp issues ripples in USD and BTC
mtgox issues ripples in USD and BTC

These can be withdrawn and deposited at will. Then these can be traded on free markets, without fees. And if the transfers are isntant, it is also very useful for those who do the arbitrage.
Jump to: