Author Topic: Trust-minimized centralized exchange through multisig  (Read 3829 times)

0 Members and 1 Guest are viewing this topic.

Offline starspirit

  • Hero Member
  • *****
  • Posts: 948
  • Financial markets pro over 20 years
    • View Profile
  • BitShares: starspirit
Not a technical expert, but is the following a possible?

Say we have a new block-chain established for trading derivatives of each asset, and in that way it avoids bloat on the asset block-chains, as well as  speeds up transaction times to a common fast level.

I take the view (on bloat) that it is encouragement for the core devs to implement pruning - at some point it has to come into existance to avoid centralising the service.

Regarding speed - I'm not sure you can get much faster than bitshares already is if you're waiting for transactions to appear in a block before acting on them?
Regarding speed - agreed. My comparison was against the waiting times one would experience if trying to trade cryptos in a decentralised manner as per the OP. Faster speed is attained by trading their derivatives on an a single fast chain, such as BitShares.

Offline monsterer

Not a technical expert, but is the following a possible?

Say we have a new block-chain established for trading derivatives of each asset, and in that way it avoids bloat on the asset block-chains, as well as  speeds up transaction times to a common fast level.

I take the view (on bloat) that it is encouragement for the core devs to implement pruning - at some point it has to come into existance to avoid centralising the service.

Regarding speed - I'm not sure you can get much faster than bitshares already is if you're waiting for transactions to appear in a block before acting on them?
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline starspirit

  • Hero Member
  • *****
  • Posts: 948
  • Financial markets pro over 20 years
    • View Profile
  • BitShares: starspirit
Not a technical expert, but is the following a possible?

Say we have a new block-chain established for trading derivatives of each asset, and in that way it avoids bloat on the asset block-chains, as well as  speeds up transaction times to a common fast level.

All trading between the derivatives could be decentralised on its this block-chain as it is with bitAssets on BitShares. The purpose of a centralised third-party ("exchange") would be to take deposits and withdrawals, and to create and destroy the derivatives on a 1:1 basis for those same users. Is there a way to do that securely so that only those owning the derivatives can withdraw the real asset, and force the destruction of the derivative?

starspirit, have you seen my post on the BitShares Standard Gateway?
No I hadn't seen it, but the BitShares Standard Gateway concept sounds consistent with what I was thinking, except probably better in that it would use the existing BitShares block-chain for the derivative trading. Although this can never be trust less, how did you feel in the end about the level of user protection that could be built around the Gateway? I think there will always be trust issues where parties need to deal with multiple chains, but workable solutions are required in this area.

Offline arhag

  • Hero Member
  • *****
  • Posts: 1214
    • View Profile
    • My posts on Steem
  • BitShares: arhag
  • GitHub: arhag
Not a technical expert, but is the following a possible?

Say we have a new block-chain established for trading derivatives of each asset, and in that way it avoids bloat on the asset block-chains, as well as  speeds up transaction times to a common fast level.

All trading between the derivatives could be decentralised on its this block-chain as it is with bitAssets on BitShares. The purpose of a centralised third-party ("exchange") would be to take deposits and withdrawals, and to create and destroy the derivatives on a 1:1 basis for those same users. Is there a way to do that securely so that only those owning the derivatives can withdraw the real asset, and force the destruction of the derivative?

starspirit, have you seen my post on the BitShares Standard Gateway?

Offline alt

  • Hero Member
  • *****
  • Posts: 2821
    • View Profile
  • BitShares: baozi
What advantage do I have using this exchange over the internal exchange?
I think here is some advantage:
1. you can use light wallet/mobile wallet trade.
2. trade engine of call auction is good, you can make deal with a more better price if you don't care about wait some time.

for example, there is a bid order at price 0.051 now, but the price is down to 0.049 at btc38,
so someone should make an ask order at price 0.05 or 0.049, the final price will change to 0.049.
there are enough time to compete the price for ask order and bid order.
« Last Edit: February 16, 2015, 02:03:15 am by alt »

Offline fluxer555

  • Hero Member
  • *****
  • Posts: 749
    • View Profile
What advantage do I have using this exchange over the internal exchange?

Offline alt

  • Hero Member
  • *****
  • Posts: 2821
    • View Profile
  • BitShares: baozi
I think you really should  try this exchange if you want to know how it work.
you can use a very small order, sell 1 BTS at price more than 0.051CNY/BTS
Code: [Select]
transfer 1 BTS youraccount auction.btsbots 0.051
buy with 0.1 USD at price less than 0.051 CNY/BTS
Code: [Select]
transfer 0.1 USD youraccount auction.btsbots 0.051

Offline alt

  • Hero Member
  • *****
  • Posts: 2821
    • View Profile
  • BitShares: baozi
Alt, I have to admit that I don't really understand what's going on on your auction page, or what's happening behind the scenes.
in fact, this type of trade engine is named "call auction" at stock market, it's very hardly to control price, and is used to decide the open price at stock market.
here is a introduce for call auction with google translate
https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=zh-CN&ie=UTF8&prev=_t&rurl=translate.google.co.jp&sl=zh-CN&tl=en&u=http://wiki.mbalib.com/wiki/%25E9%259B%2586%25E5%2590%2588%25E7%25AB%259E%25E4%25BB%25B7&usg=ALkJrhjmbTrf_2bDH0Pxc_cx-aLyVISSSA

and here is howto use btsbots exchange
https://bitsharestalk.org/index.php?topic=14018.0;topicseen

I select call auction, because btsbots exchange based blockchain, it can't response very fast, and this type of trade engine don't need very fast response time.
now the trade engine excute every 4 hours, when there are more active order, we can change this to every 30 minutes.
« Last Edit: February 16, 2015, 01:28:02 am by alt »

Offline fluxer555

  • Hero Member
  • *****
  • Posts: 749
    • View Profile
Alt, I have to admit that I don't really understand what's going on on your auction page, or what's happening behind the scenes.

Offline alt

  • Hero Member
  • *****
  • Posts: 2821
    • View Profile
  • BitShares: baozi
you should try this exchange, it's really more safety than other centralized exchange, because all trade data are inside blockchain
http://btsbots.com/auction
« Last Edit: February 16, 2015, 12:13:40 am by alt »

Offline starspirit

  • Hero Member
  • *****
  • Posts: 948
  • Financial markets pro over 20 years
    • View Profile
  • BitShares: starspirit
Not a technical expert, but is the following a possible?

Say we have a new block-chain established for trading derivatives of each asset, and in that way it avoids bloat on the asset block-chains, as well as  speeds up transaction times to a common fast level.

All trading between the derivatives could be decentralised on its this block-chain as it is with bitAssets on BitShares. The purpose of a centralised third-party ("exchange") would be to take deposits and withdrawals, and to create and destroy the derivatives on a 1:1 basis for those same users. Is there a way to do that securely so that only those owning the derivatives can withdraw the real asset, and force the destruction of the derivative?

Offline CLains

  • Hero Member
  • *****
  • Posts: 2606
    • View Profile
  • BitShares: clains


Offline monsterer

Exactly!

It looks like you're in a pretty good position to implement something like this... ;)

Funnily enough, we do have this planned :)
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline fluxer555

  • Hero Member
  • *****
  • Posts: 749
    • View Profile
The difference is that the centralized entity here would facilitate an order book. So, it's sort of a bridge/exchange combination.

Right. So, as well as market orders, you can place limit orders with this method and your theft exposure is then limited to open orders on the book.

Exactly!

It looks like you're in a pretty good position to implement something like this... ;)

Offline monsterer

The difference is that the centralized entity here would facilitate an order book. So, it's sort of a bridge/exchange combination.

Right. So, as well as market orders, you can place limit orders with this method and your theft exposure is then limited to open orders on the book.
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline fluxer555

  • Hero Member
  • *****
  • Posts: 749
    • View Profile
The difference is that the centralized entity here would facilitate an order book. So, it's sort of a bridge/exchange combination.

I thought of another disadvantage: traditional centralized exchanges don't contribute to blockchain bloat, unlike this method. Also, depending on the specifics, this could be cheaper or more expensive than centralized exchanges.

Offline monsterer

This is exactly equivalent to this cycle:

balance X=0,Y=0
deposit X
trade X/Y
withdraw X,Y

Essentially the same sequenced used by bridges, such as shapeshift.io, or metaexchange.info. :)
My opinions do not represent those of metaexchange unless explicitly stated.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline fluxer555

  • Hero Member
  • *****
  • Posts: 749
    • View Profile
This is how I'm thinking of it:

1. When depositing currency A to the exchange, you transfer to a 2-of-3 multisig address. You own two keys, and the exchange owns another key.

2. When placing a trade for currency B, the exchange initiates a transaction to transfer the trade amount of currency A to a 1-of-2 multisig 'personal hot wallet', which you have to sign with one of your keys. You and the exchange each have a key for this 1-of-2 'personal hot wallet'. The exchange can transfer funds to the current owner(s) of currency B, and you can transfer the funds back if you need to cancel the trade.

3. When the trade executes, the exchange sends your new currency B to another 2-of-3 multisig address of that currency, which is the same as currency A's (you own two keys, they own one key.)

4. Whenever you want to 'withdraw' any currency, you can transfer the funds to a different wallet using both your keys. (I put 'withdraw' in quotes, because the money is barely 'deposited'; you own the funds and the exchange cannot steal or transfer them without your consent.)

Advantages:
- Exchange only has control of funds in the order book; you don't have to trust them with 100% of the funds you want to trade with
- Damage done by exchange getting hacked would be minimal; hackers would seek other targets for bigger rewards.
- The centralized service just acts as an escrow facilitator of transactions, and all transactions are voluntarily signed

Disadvantages:
- Speed of trading is limited by the block-confirm times of the currency
- This cannot work with Fiat or any non-cryptocurrency
- Having to confirm and sign all trade transactions manually could be annoying/tedious.

Some ways to combat these disadvantages are to, of course, use bitshares or bitassets as at least one side of the currency, as we have 10 second block confirms. If there is a fiat on-ramp for their corresponding MPAs, users could use this instead of centralized IOU fiat. Finally, instead of signing/confirming every transaction manually, an opensource exchange client could be built that handles automatically verifying the transactions.

I realize this may have limited utility since we can do a lot of this kind of trading right inside the client we already have, but I'm thinking that cross-crypto trading without IOUs or MPAs of those cryptos would be killer.

Thoughts?
« Last Edit: February 15, 2015, 06:09:47 am by fluxer555 »