timeofmind (OP)
Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 84
Merit: 10
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 06:56:09 AM |
|
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
Activity: 1316
Merit: 1043
👻
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 06:59:26 AM |
|
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
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 84
Merit: 10
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 07:01:36 AM |
|
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
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 84
Merit: 10
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 07:03:07 AM |
|
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
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 84
Merit: 10
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 07:06:44 AM |
|
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
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 84
Merit: 10
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 07:08:20 AM |
|
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
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 84
Merit: 10
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 07:09:16 AM |
|
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
Activity: 1596
Merit: 1012
Democracy is vulnerable to a 51% attack.
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 07:10:55 AM |
|
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
Activity: 2618
Merit: 1007
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 07:11:18 AM |
|
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.
|
|
|
|
timeofmind (OP)
Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 84
Merit: 10
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 07:16:34 AM |
|
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
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 84
Merit: 10
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 07:18:28 AM |
|
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
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 84
Merit: 10
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 07:20:55 AM |
|
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
Activity: 1316
Merit: 1043
👻
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 07:24:01 AM |
|
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
Activity: 1596
Merit: 1012
Democracy is vulnerable to a 51% attack.
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 07:27:59 AM |
|
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
Activity: 1316
Merit: 1043
👻
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 07:35:43 AM |
|
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](https://bitcointalk.org/Smileys/default/wink.gif)
|
|
|
|
timeofmind (OP)
Member
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 84
Merit: 10
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 07:37:39 AM |
|
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
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 84
Merit: 10
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 07:41:45 AM |
|
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
Activity: 1596
Merit: 1012
Democracy is vulnerable to a 51% attack.
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 07:42:00 AM |
|
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. 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](https://bitcointalk.org/Smileys/default/wink.gif) 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
![*](https://bitcointalk.org/Themes/custom1/images/star.gif)
Offline
Activity: 84
Merit: 10
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 07:43:29 AM |
|
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
Activity: 1596
Merit: 1012
Democracy is vulnerable to a 51% attack.
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
May 17, 2013, 07:45:01 AM |
|
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
|
|
|
|