Pages:
Author

Topic: Myths and mis-understandings about "decentralized exchanges" (Read 2860 times)

hero member
Activity: 526
Merit: 508
My other Avatar is also Scrooge McDuck
It's important to first pick the criteria for a proper decentralized P2P Exchange... So many ppl around here have different ideas of what that requires...

So I made this thread to cement the criteria:

https://bitcointalksearch.org/topic/primer-for-a-p2p-distributed-exchange-212841
member
Activity: 84
Merit: 10
I am designing a P2P cryptocurrency exchange that can plug into sites like mtgox and btce:

https://bitcointalksearch.org/topic/ann-ussc-crypto-p2p-server-decentralized-p2p-exchange-application-209269

USSC Litecoin-P2P-Server - A Decentralized P2P Client-Server Application & Exchange For Fast Transactions That Utilize Any Cryptocurrency

Application Features:

1. Directly and internally handles wallet.dat files and the Bitcoin/Litecoin protocol.

2. Completely separate database for user accounts with decentralized replication of virtual-server to other P2P servers.

3. Utilizes banks of wallet.dat files that are not mapped to any specific user account. Evenly distributes coins to internal banks of wallet.dat files.

4. End-user client software accounts are assigned to specific virtual-server allowing transactions speeds comparable to a centralized system like Visa, MasterCard, and Pay-Pal.

5. End-user accounts and wallet.dat banks are replicated to other P2P servers.

6. P2P server network monitors each other for online or offline status. Virtualization server replication to replicate virtual servers across network in the event of physical server seizure or DDOS attack [virtual servers house wallet.dat banks].

7. Double spend attacks are mitigated by denying end-users access to wallet.dat files or banks. [Wallet.dat files are internally encrypted].

8. Uses Bitcoin/Litecoin protocol as a lower level protocol like web-browser applications use the transport layer in the OSI model stack.

9. Uses Bitcoin/Litecoin client and wallet.dat files as lower level application.

10. Eliminates need for confirmations by end-user clients and web-server or web based services.

11. No need for end-user to keep wallet.dat files on local computer or phone. Account is in the P2P cloud.

12. Account cannot be frozen or seized by anyone - even the server operator.

13. No changes to the existing Bitcoin/Litecoin network or protocol. Utilizes existing Litecoin network and protocol.

14. End-user application plug-in to existing Bitcoin/Litecoin client.

15. Government cannot track nor trace nor freeze your funds.

16. Funds cannot be traced.

17. Anyone can run a Bitcoin/Litecoin P2P Server (it's decentralized). If the server goes offline or is seized, the virtual server, accounts, and wallet.dat files are still safe and reallocated to other P2P servers.

19. Can be used as an peer-to-peer (P2P) exchange. Can utilize other exchange sites such as btc-e and mtgox for fiat conversions.

20. Completely Open Source.


This is how to best use cryptocurrency protocols

Bitcoin and other altcoins are best suited to operate as lower level applications and should not be designed for direct end-user control or use. Like web browsers use tcp/ip for lower level operations, the Bitcoin application and protocol should operate much the same way. End-user applications and services need to be built on top of the Bitcoin protocol and application.

There is no need to write code from scratch. all of the above can do coded by combining the bittorrent protocol [for virtual server and wallet.dat bank replication] and onion router protocols [for P2P Server communication] with the existing Bitcoin/Litecoin protocol [This would make a hybrid bittorrent/onion router/Litecoin application].

I will post on here design specs but I will not code it for you.

You have my permission to use the above designs. I will not make a patent or copyright claim against you so long as you keep it open source. I do not own any patents on the above system. It came from meditation and thought.

You don't necessarily have to use the Litecoin protocol, Bitcoin or Worldcoin will work as well. But I recommend the Litecoin Protocol [fast and secure].

I have been an Active Directory admin, and MS Exchange admin, Banyan Vines Street Talk Admin, And have supported everything from X.25 to X.400 and Protocols from RIP, OSFP, BGP, etc...

If you have any questions on how to design the application, I will post answers on here. You can PM me or just post your design questions here. I will help you. If you code an application for this then please give me credit for some of the design. That is all that I ask and maybe a little donations in Litecoin [PM me for address].

Get to Coding.

Thank you.

USSCFounder   
 




Here are some of the first design specs to help you code the above system.

The system should be coded to run on an LAMP server using PHP and MySQL only. Perl can be used to facilitate server side scripts and systems commands as well. The end user client or plug in can be coded in C if desired.


Virtual Servers
Virtual servers are just database tables that give a type of centralization to P2P servers facilitating a single point of transaction for a specific user account; thus allowing for speedy transactions that could not be otherwise obtained by conventional P2P cryptocurrency networks. Virtual servers can be configured to be reassigned to other physical servers in a few minutes in the case of ddos attacks or physical server seizure by authorities.

virtual-server-001.user.table
user-id-key                              |   coins.litecoin           |     coins.bitcoin          |     coins.namecoin
(bob) XXXuser-id-key-001XXX    |            100                   |              0                     |                 20
(alice) XXXuser-id-key-002XXX   |            0                      |            100                    |                 20




The coins can then be evenly distributed so that no one account can be linked to any specific wallet:


virtual-server-001.litecoin.wallet-bank-001.table
wallet-id                                                    |   coin-amount
wallet.vs-001.bank-001.litecoin-01.dat           |            25                 
wallet.vs-001.bank-001.litecoin-02.dat           |            25                   
wallet.vs-001.bank-001.litecoin-03.dat           |            25                   
wallet.vs-001.bank-001.litecoin-04.dat           |            25     


virtual-server-001.bitcoin.wallet-bank-001.table
wallet-id                                                    |   coin-amount
wallet.vs-001.bank-001.bitcoin-01.dat           |            25                 
wallet.vs-001.bank-001.bitcoin-02.dat           |            25                   
wallet.vs-001.bank-001.bitcoin-03.dat           |            25                   
wallet.vs-001.bank-001.bitcoin-04.dat           |            25   


virtual-server-001.namecoin.wallet-bank-001.table
wallet-id                                                       |   coin-amount
wallet.vs-001.bank-001.namecoin-01.dat           |            10                 
wallet.vs-001.bank-001.namecoin-02.dat           |            10                   
wallet.vs-001.bank-001.namecoin-03.dat           |            10                   
wallet.vs-001.bank-001.namecoin-04.dat           |            10           
 



(MORE TO COME)


Additional design specs:

virtual-server files can then be propagated to other P2P servers simply by sharing the files via bittorent to the other P2P servers:

virtual-server-001 files to be propagated to P2P network:

virtual-server-001.user.table
virtual-server-001.litecoin.wallet-bank-001.table
virtual-server-001.bitcoin.wallet-bank-001.table
virtual-server-001.namecoin.wallet-bank-001.table

wallet.vs-001.bank-001.litecoin-01.dat
wallet.vs-001.bank-001.litecoin-02.dat
wallet.vs-001.bank-001.litecoin-03.dat
wallet.vs-001.bank-001.litecoin-04.dat

wallet.vs-001.bank-001.bitcoin-01.dat
wallet.vs-001.bank-001.bitcoin-02.dat
wallet.vs-001.bank-001.bitcoin-03.dat
wallet.vs-001.bank-001.bitcoin-04.dat

wallet.vs-001.bank-001.namecoin-01.dat
wallet.vs-001.bank-001.namecoin-02.dat
wallet.vs-001.bank-001.namecoin-03.dat
wallet.vs-001.bank-001.namecoin-04.dat

It is that simple to make a virtual-server. Each P2P server would have local copies of the virtual-servers on the network but only a few would actually be online. Every virtual-server would exist in an online state only on one of the P2P servers on the network.  That means if virtual-server-001 was online in a New York P2P server, an exact copy of it on the Moscow server would be offline. In the event that the New York server was seized or ddos'ed and went offline, virtual-server-001 would then come online in Moscow.

Its a layered P2P application; one P2P application layered on top of another P2P application.

(MORE TO COME)



newbie
Activity: 21
Merit: 0
Hello everybody,

I worked at PlayerAuctions.com (it's similar to ebay.com, taobao.com)
For several years, I was the brains behind any major innovation.
I know how to solve the problem with broker trust.

My interest is in developing a decentralized exchange, sitting on top of a wallet, which is also a marketplace for tangible and digital goods. Bitcoiners have a way to pay, but they do not have a way to trade, and the rest of the ecommerce world isn't going to build it for us, we have to build it ourselves if we want to see bitcoin used as a currency for everything from a box of coffee to a used car. We need to build a P2P marketplace, not just an exchange.

I can build a fully qualified marketplace, and I am one of the most qualified people in the world to do so. That's not an understatement. Some of my contact details are available at klancykennedy.com, and if you want to help build such a marketplace, I would love to hear from you. I'm not a coder, but I am a developer. I need bankroll and coders. To see a detailed plan that works, email me.
legendary
Activity: 2632
Merit: 1023
decentralized exchange front end done....

as many exchanges as you want ready to go

Google infrastructure

http://www.bteex.com/
But how is Google decentralized? Maybe in a technical sense, but certainly not in a social sense. They could pull the plug at any time.


its a stop gap, and they are pretty ddos resistant

legendary
Activity: 938
Merit: 1001
bitcoin - the aerogel of money
And the bigger issue, BTC is bubble-licious and even a PERFECT exchange is not going to stop this community from blowing bubbles, irrationally believing the bubble is not a bubble and piling on and then panicking and selling like mad.  Their are simply too many 'Animal Spirits' and too little connection to a rational price point to not have insane volatility.

Animal spirits are never going to go away. But if we had a well-functioning derivatives market the bubbles would be a lot more dampened.
hero member
Activity: 632
Merit: 500
- If you access something through a domain name then it is vulnerable to DOS attack and therefore is not a solution.
Agreed. A single domain name will never be a decentralized solution. But it could be something with a lot of domain names that work as entry points, such as Diaspora or the Pirate Bay.

People vastly underestimate the scale of a viable solution. Somebodies shitty open source project that they started yesterday is not a viable answer to the Mt Gox problem.
In the long run it is. Bitcoin it is also started as "somebodies shitty open source project". Even Linux did. Someone needs to start with a good concept, work hard on it, and gather a community of active developers (instead of talkers and "idea people"). It's certainly not impossible. But most people just like to argue instead of build something. My point is that in grassroots open source land, everything starts small and as a toy.


We need a decentralized exchange that operates entirely from the computers of the users much like darknet sites run.  Maybe even somehow interface it with the current miners to improve speed.  Create a fee that goes to miners within the exchange.  The miners keep the decentralized exchange running fast.

The main issue that I see is someone is always going to have to act as escrow for either the bitcoins or whatever fiat is in use.  You can't just upload dollars to the internet.  The holder of the purse will always be vulnerable to attack.

Exactly!

We have no choice but to take the risk and trust some people or some companies to act as brokers and handle our dollars when we trade bitcoin.

There are plenty of solutions to the trust problem.

Multi sig transactions
Escrow services
Reputation systems

This is not a constraint.  Plenty of solutions here... Next problem...
sr. member
Activity: 826
Merit: 250
CryptoTalk.Org - Get Paid for every Post!
And the bigger issue, BTC is bubble-licious and even a PERFECT exchange is not going to stop this community from blowing bubbles, irrationally believing the bubble is not a bubble and piling on and then panicking and selling like mad.  Their are simply too many 'Animal Spirits' and too little connection to a rational price point to not have insane volatility.
sr. member
Activity: 434
Merit: 250
In Hashrate We Trust!
There are three main problems with all these discussions.
1. Exchange Rated purchases are based on the market leader pricing, right now that id GOX, so if I buy a product on amazon, it the BTC goes through a proxy that bases its price on GOX. This would not be a problem if the rate was stable. All the evangelists love to say they are in it for the love, but if I posted my wildcard SSL certs at 3 BTC a month ago, that was a good price, but yesterday that would be outrageous, so prices for real goods need to be exchange rated. Vendors choose the easiest to do business with. MTGOX was that. Somewhere someone needs to agree on what a fair prices is.

2. Single systems can survive DDOS, enormous scale demands, hack attempts and natural disaster. DNS and other rarely changing content is actually the most immune from attack if done right with BGP anycast. Anycast lets you have the same IP in multiple places around the world, hundreds or thousands of networks can have the same IP if the content is the same (or different if you dont care). Actually you could have anycasted servers pushing dynamic content on a proxied back end that only proxies the authenticated users and the back end could be completely hidden secure backbone. Not only that, major backbone providers have a mechanism for blocking attackers by pushing a blackhole route through bgp. And that is just the stuff from 15 years ago. I am sure the new stuff is better. This is the stuff that cloudflare kind of offers as a service with public back end.

3. Craigslist is the perfect decentralized exchange. How do you upload USD to the Internet? Meet me at the coffee shop, hand me cash. I send you BTC, drink a latte while you wait for some confirmations, but I base my price on.... the leading exchange. ARG we keep going in circles.

If we will end up having a pool of say 5 major brokers with 70% of all trades, this pool will become the no1 source to check for the real time market price of bitcoin/usdollar.
newbie
Activity: 22
Merit: 0
There are three main problems with all these discussions.
1. Exchange Rated purchases are based on the market leader pricing, right now that id GOX, so if I buy a product on amazon, it the BTC goes through a proxy that bases its price on GOX. This would not be a problem if the rate was stable. All the evangelists love to say they are in it for the love, but if I posted my wildcard SSL certs at 3 BTC a month ago, that was a good price, but yesterday that would be outrageous, so prices for real goods need to be exchange rated. Vendors choose the easiest to do business with. MTGOX was that. Somewhere someone needs to agree on what a fair prices is.

2. Single systems can survive DDOS, enormous scale demands, hack attempts and natural disaster. DNS and other rarely changing content is actually the most immune from attack if done right with BGP anycast. Anycast lets you have the same IP in multiple places around the world, hundreds or thousands of networks can have the same IP if the content is the same (or different if you dont care). Actually you could have anycasted servers pushing dynamic content on a proxied back end that only proxies the authenticated users and the back end could be completely hidden secure backbone. Not only that, major backbone providers have a mechanism for blocking attackers by pushing a blackhole route through bgp. And that is just the stuff from 15 years ago. I am sure the new stuff is better. This is the stuff that cloudflare kind of offers as a service with public back end.

3. Craigslist is the perfect decentralized exchange. How do you upload USD to the Internet? Meet me at the coffee shop, hand me cash. I send you BTC, drink a latte while you wait for some confirmations, but I base my price on.... the leading exchange. ARG we keep going in circles.
member
Activity: 65
Merit: 10
Just wanted to say, gollum I'm with you all the way. I will contribute it anyway I can to this project. This is the only viable option for Bitcoins to survive. People don't seem to yet realize how important this is.

PS: wow, you got the /p2p on github - perfect ! Wink
sr. member
Activity: 434
Merit: 250
In Hashrate We Trust!
- Ripple won't magically fix everything; Ripple is a payment network and not a Bitcoin trading client. Ripple is more like a platform. It's a part of the solution but not the solution itself. It's like you are bleeding and want a bandage, and I hand you scissors then ask why you are not fixed yet.

- Bitcoin OTC isn't an answer to anything, you have no fiat balance. The fiat balance is the entire point.

- DOS attack prevention and decentralization are related but aren't the same things. A decentralized exchange with a single front end is still vulnerable to DOS attack.

- If you access something through a domain name then it is vulnerable to DOS attack and therefore is not a solution.

- People vastly underestimate the scale of a viable solution. Somebodies shitty open source project that they started yesterday is not a viable answer to the Mt Gox problem. It would, in my opinion, take a team of 4+ people and around a year to create a proper decentralized trading client on top of Ripple.

Forget all that, how do you establish trust for clearing and settling?

The same way it is today: if MtGox, BTCE and BitStamp are going to cooperate in a broker-pool, they got to trust each other and settle dollars and bitcoins every day with eachother.
sr. member
Activity: 364
Merit: 250
- Ripple won't magically fix everything; Ripple is a payment network and not a Bitcoin trading client. Ripple is more like a platform. It's a part of the solution but not the solution itself. It's like you are bleeding and want a bandage, and I hand you scissors then ask why you are not fixed yet.

- Bitcoin OTC isn't an answer to anything, you have no fiat balance. The fiat balance is the entire point.

- DOS attack prevention and decentralization are related but aren't the same things. A decentralized exchange with a single front end is still vulnerable to DOS attack.

- If you access something through a domain name then it is vulnerable to DOS attack and therefore is not a solution.

- People vastly underestimate the scale of a viable solution. Somebodies shitty open source project that they started yesterday is not a viable answer to the Mt Gox problem. It would, in my opinion, take a team of 4+ people and around a year to create a proper decentralized trading client on top of Ripple.

Forget all that, how do you establish trust for clearing and settling?
legendary
Activity: 2632
Merit: 1023
- If you access something through a domain name then it is vulnerable to DOS attack and therefore is not a solution.
Agreed. A single domain name will never be a decentralized solution. But it could be something with a lot of domain names that work as entry points, such as Diaspora or the Pirate Bay.

People vastly underestimate the scale of a viable solution. Somebodies shitty open source project that they started yesterday is not a viable answer to the Mt Gox problem.
In the long run it is. Bitcoin it is also started as "somebodies shitty open source project". Even Linux did. Someone needs to start with a good concept, work hard on it, and gather a community of active developers (instead of talkers and "idea people"). It's certainly not impossible. But most people just like to argue instead of build something. My point is that in grassroots open source land, everything starts small and as a toy.


then use namecoin sheeesh it perfect for this
hero member
Activity: 812
Merit: 1022
No Maps for These Territories
decentralized exchange front end done....

as many exchanges as you want ready to go

Google infrastructure

http://www.bteex.com/
But how is Google decentralized? Maybe in a technical sense, but certainly not in a social sense. They could pull the plug at any time.
legendary
Activity: 2632
Merit: 1023
decentralized exchange front end done....

as many exchanges as you want ready to go

Google infrastructure

http://www.bteex.com/

sr. member
Activity: 434
Merit: 250
In Hashrate We Trust!
Still I think more exchanges is only a good thing.  I can tell you right now that I have money locked up in Gox.  As long as they are down and have been holding a majority of the trading, people can't move to other exchanges and panic ensues.  Having the trading spread more evenly will help blunt the hit if one exchange goes down for whatever reason.

Agree,
Assume there were four major brokers working against the same exchange: as a client you would open account at each broker and put 1/4 of your dollars in each of them to diversify the risk, since you dont know which of this 4 brokers might go down, get hacked or screw their clients. By doing this you theoretically only risk 25% of your capital in such events if we assume that all brokers will not get DDOSed and hacked exactly at the same time.
full member
Activity: 169
Merit: 100
- If you access something through a domain name then it is vulnerable to DOS attack and therefore is not a solution.
Agreed. A single domain name will never be a decentralized solution. But it could be something with a lot of domain names that work as entry points, such as Diaspora or the Pirate Bay.

People vastly underestimate the scale of a viable solution. Somebodies shitty open source project that they started yesterday is not a viable answer to the Mt Gox problem.
In the long run it is. Bitcoin it is also started as "somebodies shitty open source project". Even Linux did. Someone needs to start with a good concept, work hard on it, and gather a community of active developers (instead of talkers and "idea people"). It's certainly not impossible. But most people just like to argue instead of build something. My point is that in grassroots open source land, everything starts small and as a toy.


We need a decentralized exchange that operates entirely from the computers of the users much like darknet sites run.  Maybe even somehow interface it with the current miners to improve speed.  Create a fee that goes to miners within the exchange.  The miners keep the decentralized exchange running fast.

The main issue that I see is someone is always going to have to act as escrow for either the bitcoins or whatever fiat is in use.  You can't just upload dollars to the internet.  The holder of the purse will always be vulnerable to attack.

Exactly!

We have no choice but to take the risk and trust some people or some companies to act as brokers and handle our dollars when we trade bitcoin.

Still I think more exchanges is only a good thing.  I can tell you right now that I have money locked up in Gox.  As long as they are down and have been holding a majority of the trading, people can't move to other exchanges and panic ensues.  Having the trading spread more evenly will help blunt the hit if one exchange goes down for whatever reason.
sr. member
Activity: 434
Merit: 250
In Hashrate We Trust!
- If you access something through a domain name then it is vulnerable to DOS attack and therefore is not a solution.
Agreed. A single domain name will never be a decentralized solution. But it could be something with a lot of domain names that work as entry points, such as Diaspora or the Pirate Bay.

People vastly underestimate the scale of a viable solution. Somebodies shitty open source project that they started yesterday is not a viable answer to the Mt Gox problem.
In the long run it is. Bitcoin it is also started as "somebodies shitty open source project". Even Linux did. Someone needs to start with a good concept, work hard on it, and gather a community of active developers (instead of talkers and "idea people"). It's certainly not impossible. But most people just like to argue instead of build something. My point is that in grassroots open source land, everything starts small and as a toy.


We need a decentralized exchange that operates entirely from the computers of the users much like darknet sites run.  Maybe even somehow interface it with the current miners to improve speed.  Create a fee that goes to miners within the exchange.  The miners keep the decentralized exchange running fast.

The main issue that I see is someone is always going to have to act as escrow for either the bitcoins or whatever fiat is in use.  You can't just upload dollars to the internet.  The holder of the purse will always be vulnerable to attack.

Exactly!

We have no choice but to take the risk and trust some people or some companies to act as brokers and handle our dollars when we trade bitcoin.
legendary
Activity: 1400
Merit: 1013
Ripple potentially can be the glue that helps fiat balances move between the exchanges, if there's some way to actually implement it would being shut down by regulators.
full member
Activity: 169
Merit: 100
- If you access something through a domain name then it is vulnerable to DOS attack and therefore is not a solution.
Agreed. A single domain name will never be a decentralized solution. But it could be something with a lot of domain names that work as entry points, such as Diaspora or the Pirate Bay.

People vastly underestimate the scale of a viable solution. Somebodies shitty open source project that they started yesterday is not a viable answer to the Mt Gox problem.
In the long run it is. Bitcoin it is also started as "somebodies shitty open source project". Even Linux did. Someone needs to start with a good concept, work hard on it, and gather a community of active developers (instead of talkers and "idea people"). It's certainly not impossible. But most people just like to argue instead of build something. My point is that in grassroots open source land, everything starts small and as a toy.


We need a decentralized exchange that operates entirely from the computers of the users much like darknet sites run.  Maybe even somehow interface it with the current miners to improve speed.  Create a fee that goes to miners within the exchange.  The miners keep the decentralized exchange running fast.

The main issue that I see is someone is always going to have to act as escrow for either the bitcoins or whatever fiat is in use.  You can't just upload dollars to the internet.  The holder of the purse will always be vulnerable to attack.
Pages:
Jump to: