Bitcoin Forum
May 22, 2024, 03:53:50 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: 1 2 [All]
  Print  
Author Topic: Method for decentralized crypto-exchange (Not Ripple!)  (Read 1556 times)
timeofmind (OP)
Member
**
Offline Offline

Activity: 84
Merit: 10


View Profile
May 17, 2013, 06:56:09 AM
 #1


I believe I've come up with a simple, elegant method to achieve a decentralized crypto exchange that does not require anyone's trust for anyone else. I call it basecoin.

Basecoins are not something you can spend directly.

Basecoins, you can only hold, and you can submit offers to the network for the number of basecoins you are willing to trade for another crypto-currency.

How this works:

1. You link a crypto-currency address (such as bitcoin)  to a basecoin address (you sign this transaction to prove you own the basecoin address). There is no need to prove to the network that you own that crypto address at this stage (when you make an exchange, your sending of payment proves this).

2. You submit an offer to the network. ie. willing to spend so many of your crypto for certain amount of basecoin.

3. Other people, who have applicable crypto address linked to their basecoin address on network submit an offer for wanting your type of crypto for their basecoin, which they must already possess in the quantity they need to fulfill the transaction.

4. network determines what crypto-address you send the crypto coins to and in what amounts. When network determines your crypto is received by those recipient addresses, network automatically deducts the basecoin in appropriate amounts from those addresses and associates it with your basecoin address.

In this way, the only way to move your basecoin around the decentralized network, is by spending some alternative crypto currency that others want.

The lure to owning basecoin, is that it allows you to submit an offer in order to obtain any crypto-currency of your choice.

The basecoin itself could be mined like any crypto-coin in order to circulate it.

What do you think? See any flaws with this? It seems so simple, but so powerful, because it allows the basecoin network to establish relative prices for all the crypto-coins in existence in a decentralized way, as well as allowing people to exchange them in a decentralized way.




BitMessage: BM-GtUdgmqs5voD3M6o3X38gM93RyxPhDK9
🏰 TradeFortress 🏰
Bitcoin Veteran
VIP
Legendary
*
Offline Offline

Activity: 1316
Merit: 1043

👻


View Profile
May 17, 2013, 06:59:26 AM
 #2

This would definitely work! However, it cannot be used to exchange fiat through - only decentralized cryptocurrencies.

There is also the issue of figuring out double spends. For this to succeed, you'll need to build a light node that connects to multiple ports, support for multiple network magic numbers, etc. Cryptocurrencies would be associated with their magic numbers.
timeofmind (OP)
Member
**
Offline Offline

Activity: 84
Merit: 10


View Profile
May 17, 2013, 07:01:36 AM
 #3

I've noticed that when people start to mine new altcoins, they quickly gain their value relative to bitcoin, based on the amount of mining power put into their creation... ie. if it takes so much mining power to create $80/hr in bitcoin, then however many of the altcoin you can mine in an hour with that power, ends up being priced also at around $80 on the exchanges. In this way, this particular innovative coin, basecoin, would quickly be priced relative to other crypto currencies through mining, and then it would be come the defacto way to exchange and price crypto.

BitMessage: BM-GtUdgmqs5voD3M6o3X38gM93RyxPhDK9
timeofmind (OP)
Member
**
Offline Offline

Activity: 84
Merit: 10


View Profile
May 17, 2013, 07:03:07 AM
 #4

This would definitely work! However, it cannot be used to exchange fiat through - only decentralized cryptocurrencies.

There is also the issue of figuring out double spends. For this to succeed, you'll need to build a light node that connects to multiple ports, support for multiple network magic numbers, etc. Cryptocurrencies would be associated with their magic numbers.

Agreed. I have no interest in fiat exchanging here. This is just a crypto-exchange network.

BitMessage: BM-GtUdgmqs5voD3M6o3X38gM93RyxPhDK9
timeofmind (OP)
Member
**
Offline Offline

Activity: 84
Merit: 10


View Profile
May 17, 2013, 07:06:44 AM
 #5

This would definitely work! However, it cannot be used to exchange fiat through - only decentralized cryptocurrencies.

There is also the issue of figuring out double spends. For this to succeed, you'll need to build a light node that connects to multiple ports, support for multiple network magic numbers, etc. Cryptocurrencies would be associated with their magic numbers.

Agreed. I have no interest in fiat exchanging here. This is just a crypto-exchange network.

Maybe some entity/institution could release a fiat-backed, or gold-backed cryto currency, with an amount in circulation that is distributed by the entity equivilant to the amount they hold. They could then use this currency to exchange with other currencies which would allow the basecoin network to also price all these crypto currencies relative to physical currencies. ie. we would not longer need to rely on centralized exchanges in order to figure out the US dollar amount of bitcoin

BitMessage: BM-GtUdgmqs5voD3M6o3X38gM93RyxPhDK9
timeofmind (OP)
Member
**
Offline Offline

Activity: 84
Merit: 10


View Profile
May 17, 2013, 07:08:20 AM
 #6

It would certainly be nice to be able to figure out the US dollar price of bitcoin without having to rely on centralized exchanges...

BitMessage: BM-GtUdgmqs5voD3M6o3X38gM93RyxPhDK9
timeofmind (OP)
Member
**
Offline Offline

Activity: 84
Merit: 10


View Profile
May 17, 2013, 07:09:16 AM
 #7

This would definitely work! However, it cannot be used to exchange fiat through - only decentralized cryptocurrencies.

There is also the issue of figuring out double spends. For this to succeed, you'll need to build a light node that connects to multiple ports, support for multiple network magic numbers, etc. Cryptocurrencies would be associated with their magic numbers.

Agreed. I have no interest in fiat exchanging here. This is just a crypto-exchange network.

Maybe some entity/institution could release a fiat-backed, or gold-backed cryto currency, with an amount in circulation that is distributed by the entity equivilant to the amount they hold. They could then use this currency to exchange with other currencies which would allow the basecoin network to also price all these crypto currencies relative to physical currencies. ie. we would not longer need to rely on centralized exchanges in order to figure out the US dollar amount of bitcoin

Similar to ETFs for physical metals.

BitMessage: BM-GtUdgmqs5voD3M6o3X38gM93RyxPhDK9
JoelKatz
Legendary
*
Offline Offline

Activity: 1596
Merit: 1012


Democracy is vulnerable to a 51% attack.


View Profile WWW
May 17, 2013, 07:10:55 AM
 #8

4. network determines what crypto-address you send the crypto coins to and in what amounts. When network determines your crypto is received by those recipient addresses, network automatically deducts the basecoin in appropriate amounts from those addresses and associates it with your basecoin address.
This is the tricky part. This is not impossible, but there is no very good way to do it that I know of and all the ways have weird quirks and downsides.

I am an employee of Ripple. Follow me on Twitter @JoelKatz
1Joe1Katzci1rFcsr9HH7SLuHVnDy2aihZ BM-NBM3FRExVJSJJamV9ccgyWvQfratUHgN
Sukrim
Legendary
*
Offline Offline

Activity: 2618
Merit: 1006


View Profile
May 17, 2013, 07:11:18 AM
 #9

Step 4 is exploitable. This is the same issue as with inter chain transactions laid out in the wiki, only less elegant with yet another currency.

https://www.coinlend.org <-- automated lending at various exchanges.
https://www.bitfinex.com <-- Trade BTC for other currencies and vice versa.
timeofmind (OP)
Member
**
Offline Offline

Activity: 84
Merit: 10


View Profile
May 17, 2013, 07:16:34 AM
 #10


Similar to ETFs for physical metals.

In fact, if some "trusted" entities were to introduce crypto currencies backed by physical metals and some commodities, in the same way ETFs work, those could be used by people in the basecoin network to establish prices of crypto coins relative to physical assets. Maybe even such entities could allow you to withdraw those physical assets....

Hey, lets say some business operates like a bank, allowing you to deposit US dollars for some special crypto coin they hold, that exists on a 1:1 relationship with the amount of dollars it holds... then people could totally use this crypto coin to do exchanges in the basecoin network. In order to redeem the dollars from this business that releases these US dollar-cryptos, you just just send them the cryptos back.

BitMessage: BM-GtUdgmqs5voD3M6o3X38gM93RyxPhDK9
timeofmind (OP)
Member
**
Offline Offline

Activity: 84
Merit: 10


View Profile
May 17, 2013, 07:18:28 AM
 #11

4. network determines what crypto-address you send the crypto coins to and in what amounts. When network determines your crypto is received by those recipient addresses, network automatically deducts the basecoin in appropriate amounts from those addresses and associates it with your basecoin address.
This is the tricky part. This is not impossible, but there is no very good way to do it that I know of and all the ways have weird quirks and downsides.


Why? Why can't the basecoin network verify that bitcoins were received at an address the same way anyone does by taking a look at the blockchain?

BitMessage: BM-GtUdgmqs5voD3M6o3X38gM93RyxPhDK9
timeofmind (OP)
Member
**
Offline Offline

Activity: 84
Merit: 10


View Profile
May 17, 2013, 07:20:55 AM
 #12

4. network determines what crypto-address you send the crypto coins to and in what amounts. When network determines your crypto is received by those recipient addresses, network automatically deducts the basecoin in appropriate amounts from those addresses and associates it with your basecoin address.
This is the tricky part. This is not impossible, but there is no very good way to do it that I know of and all the ways have weird quirks and downsides.


This doesn't make any sense to me. If what you say were true, then it would be impossible to ever know that I truly received the bitcoins I think I have... ? no?

BitMessage: BM-GtUdgmqs5voD3M6o3X38gM93RyxPhDK9
🏰 TradeFortress 🏰
Bitcoin Veteran
VIP
Legendary
*
Offline Offline

Activity: 1316
Merit: 1043

👻


View Profile
May 17, 2013, 07:24:01 AM
 #13

4. network determines what crypto-address you send the crypto coins to and in what amounts. When network determines your crypto is received by those recipient addresses, network automatically deducts the basecoin in appropriate amounts from those addresses and associates it with your basecoin address.
This is the tricky part. This is not impossible, but there is no very good way to do it that I know of and all the ways have weird quirks and downsides.


This doesn't make any sense to me. If what you say were true, then it would be impossible to ever know that I truly received the bitcoins I think I have... ? no?
It's possible.

You push out a transaction that says you will pay 400 Basecoins for 100 BTC to 1GLados. You pay a 0.5 basecoin fee to prevent spam. When 100 BTC is sent to 1GLados, the same key that was used to sign the transaction on the bitcoin network signs a 400 basecoin claim.
JoelKatz
Legendary
*
Offline Offline

Activity: 1596
Merit: 1012


Democracy is vulnerable to a 51% attack.


View Profile WWW
May 17, 2013, 07:27:59 AM
 #14

Why? Why can't the basecoin network verify that bitcoins were received at an address the same way anyone does by taking a look at the blockchain?
It can, but then what does it do? It's not like the network as a whole can sign a transaction. Bitcoin-like payment systems rely on self-contained, objective rules for determining if a transaction is valid or not. The longest chain consisting only of valid transactions is what wins. You can't really expect every node to have the full history of every other crypto-currency in order to know that the payments were made in some other blockchain.

I've been working for some time on finding really good solutions to this problem. Still no luck. It's not impossible, it's just that every solution has painful compromises.

It's basically equivalent to being able to take Bitcoins off the block chain, trade them on another block chain, and then release them to their new owner on the original block chain. If we could do that, we could have high-speed side chains that we throw away every year.

I am an employee of Ripple. Follow me on Twitter @JoelKatz
1Joe1Katzci1rFcsr9HH7SLuHVnDy2aihZ BM-NBM3FRExVJSJJamV9ccgyWvQfratUHgN
🏰 TradeFortress 🏰
Bitcoin Veteran
VIP
Legendary
*
Offline Offline

Activity: 1316
Merit: 1043

👻


View Profile
May 17, 2013, 07:35:43 AM
 #15

Why? Why can't the basecoin network verify that bitcoins were received at an address the same way anyone does by taking a look at the blockchain?
It can, but then what does it do? It's not like the network as a whole can sign a transaction. Bitcoin-like payment systems rely on self-contained, objective rules for determining if a transaction is valid or not. The longest chain consisting only of valid transactions is what wins. You can't really expect every node to have the full history of every other crypto-currency in order to know that the payments were made in some other blockchain.

I've been working for some time on finding really good solutions to this problem. Still no luck. It's not impossible, it's just that every solution has painful compromises.

It's basically equivalent to being able to take Bitcoins off the block chain, trade them on another block chain, and then release them to their new owner on the original block chain. If we could do that, we could have high-speed side chains that we throw away every year.

There's SPV / light nodes, and there is actually requiring people to download the whole blockchain of cryptocurrencies they want to trade with. Miners can choose to not download a blockchain (and therefore not process trades for that pair), however they will be missing out on the transaction fees of those trades. Each block does NOT have to be, "I verify all transactions in the previous block", it can be just "I verify all BTC, LTC, NMC, FTC transactions in the previous block" with other trades staying 0/unconfirmed.

If you only care about trading BTC <-> LTC, you need the basecoin blockchain, bitcoin blockchain, and litecoin blockchain, which you most likely already have on your computer already Wink
timeofmind (OP)
Member
**
Offline Offline

Activity: 84
Merit: 10


View Profile
May 17, 2013, 07:37:39 AM
 #16

Why? Why can't the basecoin network verify that bitcoins were received at an address the same way anyone does by taking a look at the blockchain?
It can, but then what does it do? It's not like the network as a whole can sign a transaction. Bitcoin-like payment systems rely on self-contained, objective rules for determining if a transaction is valid or not. The longest chain consisting only of valid transactions is what wins. You can't really expect every node to have the full history of every other crypto-currency in order to know that the payments were made in some other blockchain.

I'm sure there is a way to work this that miners can take care of... "offer transaction" is signed with bitcoin address and is not written to transaction history until correct amount is sent from that bitcoin address to required bitcoin addresses.

BitMessage: BM-GtUdgmqs5voD3M6o3X38gM93RyxPhDK9
timeofmind (OP)
Member
**
Offline Offline

Activity: 84
Merit: 10


View Profile
May 17, 2013, 07:41:45 AM
 #17

Why? Why can't the basecoin network verify that bitcoins were received at an address the same way anyone does by taking a look at the blockchain?
It can, but then what does it do? It's not like the network as a whole can sign a transaction. Bitcoin-like payment systems rely on self-contained, objective rules for determining if a transaction is valid or not. The longest chain consisting only of valid transactions is what wins. You can't really expect every node to have the full history of every other crypto-currency in order to know that the payments were made in some other blockchain.

I'm sure there is a way to work this that miners can take care of... "offer transaction" is signed with bitcoin address and is not written to transaction history until correct amount is sent from that bitcoin address to required bitcoin addresses.

Yes, miners need all blockchains being transacted in order to do the verification of other miners blocks... hmmm, there has to be a way

BitMessage: BM-GtUdgmqs5voD3M6o3X38gM93RyxPhDK9
JoelKatz
Legendary
*
Offline Offline

Activity: 1596
Merit: 1012


Democracy is vulnerable to a 51% attack.


View Profile WWW
May 17, 2013, 07:42:00 AM
 #18

Miners can choose to not download a blockchain (and therefore not process trades for that pair), however they will be missing out on the transaction fees of those trades. Each trade pair data could be a different blockchain.
I don't see how that could work. In order for a miner to mine, they have to know what the longest valid chain is. How will they know which chain is valid if they can't validate all the transactions in it? This sounds like a recipe for forks galore.

Quote
If you only care about trading BTC <-> LTC, you need the basecoin blockchain, bitcoin blockchain, and litecoin blockchain, which you most likely already have on your computer already Wink
Are you suggesting there be a separate hash chain for each currency pair? Because if not, you can't trade at all unless you can tell what the longest valid hash chain is. And you can't do that unless you can determine if a block is valid or not. And you can't do that if you can't validate every type of transaction the network supports.

It's true you could defer this to some other server. But if you're going to have only one block chain for the exchange system (which I think you want, otherwise you're mining all different coins with different rates) then every miner and non-light client will need to validate transaction on every other block chain the system supports conversions with. That means either synchronizing to that block chain as well or having another server they can trust to get information about that other block chain.

It also means that if any other system is broken, this one will be broken too. For example, if Bitcoin has another fork, then basecoin nodes will disagree over which bitcoin transactions are valid and thus disagree over which is the longest valid chain. So it will only be as strong as the weakest coin it supports.

I am an employee of Ripple. Follow me on Twitter @JoelKatz
1Joe1Katzci1rFcsr9HH7SLuHVnDy2aihZ BM-NBM3FRExVJSJJamV9ccgyWvQfratUHgN
timeofmind (OP)
Member
**
Offline Offline

Activity: 84
Merit: 10


View Profile
May 17, 2013, 07:43:29 AM
 #19


obviously, I've spent no time thinking about the technical details of this, only that it ought to be possible somehow to work a decentralized network that can verify that payments took place on other networks.

BitMessage: BM-GtUdgmqs5voD3M6o3X38gM93RyxPhDK9
JoelKatz
Legendary
*
Offline Offline

Activity: 1596
Merit: 1012


Democracy is vulnerable to a 51% attack.


View Profile WWW
May 17, 2013, 07:45:01 AM
 #20

obviously, I've spent no time thinking about the technical details of this, only that it ought to be possible somehow to work a decentralized network that can verify that payments took place on other networks.
I've spent much time head scratching about this problem for over a year now. It ties into all kinds of things that would be awesome to do with both Bitcoin and Ripple. It's not impossible to solve, it's just that there's no really good solution (at least as far as I know). They're full of compromises. That doesn't mean you can't make the idea work, it just won't work nearly as well as you might imagine.

I am an employee of Ripple. Follow me on Twitter @JoelKatz
1Joe1Katzci1rFcsr9HH7SLuHVnDy2aihZ BM-NBM3FRExVJSJJamV9ccgyWvQfratUHgN
timeofmind (OP)
Member
**
Offline Offline

Activity: 84
Merit: 10


View Profile
May 17, 2013, 07:46:28 AM
 #21


obviously, I've spent no time thinking about the technical details of this, only that it ought to be possible somehow to work a decentralized network that can verify that payments took place on other networks.

maybe I'll focus first on how a decentralized network could verify that certain payments took place on other networks and nodes could agree on that, and then go from there...

BitMessage: BM-GtUdgmqs5voD3M6o3X38gM93RyxPhDK9
🏰 TradeFortress 🏰
Bitcoin Veteran
VIP
Legendary
*
Offline Offline

Activity: 1316
Merit: 1043

👻


View Profile
May 17, 2013, 08:06:53 AM
 #22

This could be done with SPV (for coins that have a substantial amount of nodes/peers). It could cost a certain amount of base coins to add a new network magic number / port to listen to. If the TX fees are below a threshold for a threshold, then the port/coin is dropped and users will no longer listen to those ports / attempt SPV verification.

For example, a new coin has just came out that listens on port 9553, with [network magic numbers]. Supports of that coin pay 250 BSC to get it included in the decentralized trading chain, and users now listen to those ports. If over a retarget period there isn't 50 BSC of transaction fees for trade on those coins, then it is dropped and users don't need to listen to those ports anymore.

Users/miners of basecoin are not required to download the whole blockchain, although it would automatically look for existing blockchains to act as another node for SPV.
Sukrim
Legendary
*
Offline Offline

Activity: 2618
Merit: 1006


View Profile
May 17, 2013, 08:11:39 AM
 #23


Similar to ETFs for physical metals.

In fact, if some "trusted" entities were to introduce crypto currencies backed by physical metals and some commodities, in the same way ETFs work, those could be used by people in the basecoin network to establish prices of crypto coins relative to physical assets. Maybe even such entities could allow you to withdraw those physical assets....

Hey, lets say some business operates like a bank, allowing you to deposit US dollars for some special crypto coin they hold, that exists on a 1:1 relationship with the amount of dollars it holds... then people could totally use this crypto coin to do exchanges in the basecoin network. In order to redeem the dollars from this business that releases these US dollar-cryptos, you just just send them the cryptos back.
you just described a limited version of ripple by the way, just to point this out...

Anyways:
"Best" worst case currently in inter chain trading is that you can freeze someone's coins for some time. Still annoying but not too bad.
Someone suggested including branches of blocks as proof in the trading chain, still the easiest solution is with 3rd party trust or at least escrow.

As a starter for coming up with a solution, think what would have happened at the big 0.8.0 fork event that changed more than 6 blocks in the past in your scenarios. Also there are traders (who want to trade as fast as possible) and buyers (who just want to trade once or a few times to get what they want) who might have different needs and requirements.

https://www.coinlend.org <-- automated lending at various exchanges.
https://www.bitfinex.com <-- Trade BTC for other currencies and vice versa.
vokain
Legendary
*
Offline Offline

Activity: 1834
Merit: 1019



View Profile WWW
May 17, 2013, 08:25:42 AM
 #24

This would definitely work! However, it cannot be used to exchange fiat through - only decentralized cryptocurrencies.

There is also the issue of figuring out double spends. For this to succeed, you'll need to build a light node that connects to multiple ports, support for multiple network magic numbers, etc. Cryptocurrencies would be associated with their magic numbers.

Agreed. I have no interest in fiat exchanging here. This is just a crypto-exchange network.

Maybe some entity/institution could release a fiat-backed, or gold-backed cryto currency, with an amount in circulation that is distributed by the entity equivilant to the amount they hold. They could then use this currency to exchange with other currencies which would allow the basecoin network to also price all these crypto currencies relative to physical currencies. ie. we would not longer need to rely on centralized exchanges in order to figure out the US dollar amount of bitcoin

Similar to ETFs for physical metals.

What is the regulation concerning creating a forex marketplace? How can we connect an exchange to the forex market, or if better, how can we work with a bank to join on to an FX market? Can Blueseed have some role in this? Silicon Valley Bank? I don't know enough yet to connect the dots

Quote from: wikipedia
The foreign exchange market (forex, FX, or currency market) is a form of exchange for the global decentralized trading of international currencies. Financial centers around the world function as anchors of trading between a wide range of different types of buyers and sellers around the clock, with the exception of weekends. EBS and Reuters' dealing 3000 are two main interbank FX trading platforms. The foreign exchange market determines the relative values of different currencies.

Surely there's a way to piggy back onto the existing infrastructure
Pages: 1 2 [All]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!