Bitcoin Forum
April 25, 2024, 01:35:20 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 5 6 7 8  All
  Print  
Author Topic: Dark Exchange: a 100% decentralized p2p exchange  (Read 92234 times)
morpheus (OP)
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
July 08, 2011, 01:07:34 PM
Last edit: August 08, 2011, 01:58:50 AM by morpheus
 #1

I'm starting a development topic for Dark Exchange here. The original post was in the Marketplace section, but a large number of issues have popped up and I don't think it's appropriate to discuss them there.

Here is the original thread: http://forum.bitcoin.org/index.php?topic=26063.0

Quote
TL;DR: https://github.com/macourtney/Dark-Exchange

You read that right! Dark Exchange is a 100% decentralized p2p exchange. No more worrying about exchange websites going down or locking your account. You now have complete control of your bitcoin exchanges and accounts.

Because Dark Exchange is decentralized, it can't work like Mt Gox or Trade Hill. Instead, it works more like bitcoin-otc and Bitcoin Market. You post offers and others accept them, or you can search all of the offers on the network and select the one you want. Dark Exchange will walk you through the process of completing a trade.

Advantages:

1. Dark Exchange can never be shutdown by anyone (including me) for any reason. As long as there are at least two nodes on the network, the exchange is up and running. (Actually this is more of a goal than a feature at this point. Though I tried to program it this way, I'm not sure if it will really stand up to real world use yet. But, that's why it's called Beta.)

2. No bitcoins or other money is held on a central server. You have complete control over your money the entire time.

3. Virtually all currencies and payment methods are supported. Any currencies or payment methods not already included can be added quickly.

4. No commissions. Free to use.

5. Open source. All source code for Dark Exchange can be found at: https://github.com/macourtney/Dark-Exchange

6. Runs on the I2P network. All connections are end to end encrypted, and privacy is under your control.


Dark Exchange is in Beta right now. Though I've run as many tests as I can think of on it, I'm sure it won't work exactly as advertised right now. I'm looking for intrepid people interested in helping me test Dark Exchange by using it.

All information on how to to download, install and use Dark Exchange can be found on the Dark Exchange wiki: https://github.com/macourtney/Dark-Exchange/wiki

If you have any troubles installing or using the exchange, let me know so I can start entering in issues to make Dark Exchange better.


And since it's the 4th.. Let's all declare independence from centralization with Dark Exchange!

Edit: I've released another version of Dark Exchange: https://github.com/macourtney/Dark-Exchange/downloads

The latest version is a full 1.0.0 release (out of beta). I still have a lot of work to do on it, but I wanted to stop incrementing the beta number and start using the preferred snapshot and multilevel version numbers. I'll add more info on the new release in a reply later in this thread.

Edit 2011-7-16 I've released another version (v1.1.1) of Dark Exchange.

Edit 2011-8-7 I've released another version (v1.2.0) of Dark Exchange.
1714008920
Hero Member
*
Offline Offline

Posts: 1714008920

View Profile Personal Message (Offline)

Ignore
1714008920
Reply with quote  #2

1714008920
Report to moderator
1714008920
Hero Member
*
Offline Offline

Posts: 1714008920

View Profile Personal Message (Offline)

Ignore
1714008920
Reply with quote  #2

1714008920
Report to moderator
Once a transaction has 6 confirmations, it is extremely unlikely that an attacker without at least 50% of the network's computation power would be able to reverse it.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714008920
Hero Member
*
Offline Offline

Posts: 1714008920

View Profile Personal Message (Offline)

Ignore
1714008920
Reply with quote  #2

1714008920
Report to moderator
wumpus
Hero Member
*****
Offline Offline

Activity: 812
Merit: 1022

No Maps for These Territories


View Profile
July 08, 2011, 01:26:19 PM
 #2

Very interesting development, will be following this Smiley

Bitcoin Core developer [PGP] Warning: For most, coin loss is a larger risk than coin theft. A disk can die any time. Regularly back up your wallet through FileBackup Wallet to an external storage or the (encrypted!) cloud. Use a separate offline wallet for storing larger amounts.
bitfreak!
Legendary
*
Offline Offline

Activity: 1536
Merit: 1000


electronic [r]evolution


View Profile WWW
July 08, 2011, 01:28:15 PM
 #3

I really like the idea of a decentralized exchange, it compliments the Bitcoin project nicely. There is way too much centralization going on imo, with exchanges like Mt. Gox and mining pools like DeepBit, both of which have crashed at least once now. I assume it's based on a web of trust or something similar to the #bitcoin-otc?

XCN: CYsvPpb2YuyAib5ay9GJXU8j3nwohbttTz | BTC: 18MWPVJA9mFLPFT3zht5twuNQmZBDzHoWF
Cryptonite - 1st mini-blockchain altcoin | BitShop - digital shop script
Web Developer - PHP, SQL, JS, AJAX, JSON, XML, RSS, HTML, CSS
genjix
Legendary
*
Offline Offline

Activity: 1232
Merit: 1072


View Profile
July 08, 2011, 01:40:07 PM
 #4

Is this a web of trust (exchange part) running over i2p (decentralised)?

Bad news: web of trust systems don't scale.
Ryland R. Taylor-Almanza
Legendary
*
Offline Offline

Activity: 882
Merit: 1001



View Profile
July 08, 2011, 02:08:17 PM
 #5

Watching this.

.BITSLER.                 ▄███
               ▄████▀
             ▄████▀
           ▄████▀  ▄██▄
         ▄████▀    ▀████▄
       ▄████▀        ▀████▄
     ▄████▀            ▀████▄
   ▄████▀                ▀████▄
 ▄████▀ ▄████▄      ▄████▄ ▀████▄
█████   ██████      ██████   █████
 ▀████▄ ▀████▀      ▀████▀ ▄████▀
   ▀████▄                ▄████▀
     ▀████▄            ▄████▀
       ▀████▄        ▄████▀
         ▀████▄    ▄████▀
           ▀████▄▄████▀
             ▀██████▀
               ▀▀▀▀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄            
▄▄▄▄▀▀▀▀    ▄▄█▄▄ ▀▀▄         
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄      
█  ▀▄▄  ▀█▀▀ ▄      ▀████   ▀▀▄   
█ █▄  ▀▄   ▀████       ▀▀ ▄██▄ ▀▀▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
█  ▀▀       ▀▄▄ ▀████      ▄▄▄▀▀▀  █
█            ▄ ▀▄    ▄▄▄▀▀▀   ▄▄  █
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
█ ▄▄   ███   ▀██  █           ▀▀  █ 
█ ███  ▀██       █        ▄▄      █ 
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  
▀▄            █        ▀▀      █  
▀▀▄   ███▄  █   ▄▄          █   
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀    
▀▀▄   █   ▀▀▄▄▄▀▀▀         
▄▄▄▄▄▄▄▄▄▄▄█▄▄▀▀▀▀              
              ▄▄▄██████▄▄▄
          ▄▄████████████████▄▄
        ▄██████▀▀▀▀▀▀▀▀▀▀██████▄
▄     ▄█████▀             ▀█████▄
██▄▄ █████▀                ▀█████
 ████████            ▄██      █████
  ████████▄         ███▀       ████▄
  █████████▀▀     ▄███▀        █████
   █▀▀▀          █████         █████
     ▄▄▄         ████          █████
   █████          ▀▀           ████▀
    █████                     █████
     █████▄                 ▄█████
      ▀█████▄             ▄█████▀
        ▀██████▄▄▄▄▄▄▄▄▄▄██████▀
          ▀▀████████████████▀▀
              ▀▀▀██████▀▀▀
            ▄▄▄███████▄▄▄
         ▄█▀▀▀ ▄▄▄▄▄▄▄ ▀▀▀█▄
       █▀▀ ▄█████████████▄ ▀▀█
     █▀▀ ███████████████████ ▀▀█
    █▀ ███████████████████████ ▀█
   █▀ ███████████████▀▀ ███████ ▀█
 ▄█▀ ██████████████▀      ▀█████ ▀█▄
███ ███████████▀▀            ▀▀██ ███
███ ███████▀▀                     ███
███ ▀▀▀▀                          ███
▀██▄                             ▄██▀
  ▀█▄                            ▀▀
    █▄       █▄▄▄▄▄▄▄▄▄█
     █▄      ▀█████████▀
      ▀█▄      ▀▀▀▀▀▀▀
        ▀▀█▄▄  ▄▄▄
            ▀▀█████
[]
morpheus (OP)
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
July 08, 2011, 06:32:01 PM
 #6

Is this a web of trust (exchange part) running over i2p (decentralised)?

Bad news: web of trust systems don't scale.

Dark Exchange is not a web of trust system. However, we planning on implementing a web of trust like system in it. I say "like" since as you've mentioned, web of trust systems don't scale. Thus, it will be something less than a full web of trust, but something you can use to get an idea of who you may be able to trust.

Dark Exchange is a "java" application (written in Clojure) which uses the I2P network to connect peer to peer. We're currently having major issues with the nodes not finding each other. I just finished making the node notification system even more aggressive today. I hope it will finally solve the remaining issues. However, the implementation won't scale and will have to be adjusted in the future.

I haven't released the new code yet as I haven't done enough testing. I'll hopefully have some time tonight to get it out.
genjix
Legendary
*
Offline Offline

Activity: 1232
Merit: 1072


View Profile
July 08, 2011, 11:12:58 PM
 #7

How do you exchange coins to other people? Interested how the algorithm works.

Do you have to trust the person you're exchanging with? How does it ensure that Barry doesn't steal Linda's funds after she sends first?
morpheus (OP)
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
July 09, 2011, 12:06:52 AM
 #8

How do you exchange coins to other people? Interested how the algorithm works.

Do you have to trust the person you're exchanging with? How does it ensure that Barry doesn't steal Linda's funds after she sends first?

There isn't a way to to ensure Barry doesn't steal Linda's funds after she sends first. However, When both Linda and Barry created their accounts, they also created a public and private key pair. All data sent between nodes is signed, so Linda knows Barry is really the one who made the offer in the first place. And Barry knows Linda is really the one who accepted the offer. After that, Linda and Barry must trust each other to complete the trade and not run off with each others funds. The public keys are visible in the application, so it's possible to recognize someone by their name and public key.

In the future, I plan to implement a trust system which will allow Linda and Barry to rate how much they trust each other. They can then use that system determine how much they are willing to risk in a trade. With the trust system, Linda may also be able to tell how much she is willing to trust Steve based on Barry's trust rating for Steve.

The specific algorithm for making a trade is:

1. Barry creates an offer. (An offer is created in Dark Exchange)
2. Linda does a search and finds Barry's offer. She then accepts the offer. (A trade is created in Dark Exchange)
3. Barry verifies Linda is someone he wants to trade with, and confirms the trade.
4. Linda sends the payment, then lets Barry know she sent the payment by opening the trade and pressing the Payment Sent button. (updates the trade as payment sent.)
5. Barry verifies Linda sent the payment and updates the trade as payment received.
6. Barry sends his payment to linda, and updates the trade as payment sent.
7. Linda verifies she has received the payment from Barry and updates the trade as payment received.
8. The trade is complete, and it closed.

This is currently a very manual process, but I hope to integrate Dark Exchange better with Bitcoin and services like Dwolla to hopefully make some of the updates automatic.
amincd
Hero Member
*****
Offline Offline

Activity: 772
Merit: 501


View Profile
July 09, 2011, 03:29:36 AM
 #9

This is very very cool.

I don't know if this is the right place to be proposing this, but how bout using ownership of bitcoins as a proxy for trustworthiness.

So the Dark Exchange node signs its Dark Exchange public key, a long with bitcoin addresses that it claims to have under its control, with the bitcoin private keys that are in the local bitcoin wallet file, and then other nodes check to verify if the ownership claim is valid and assess how many bitcoins the owner of the Dark Exchange node has.

The greater the quantity of coins, and the longer those coins have been at the addresses controlled by the Dark Exchange node owner, the higher the assurance that other nodes have of the person not being a scammer, since the scammer would have to sacrifice permanently spoiling a hard to acquire source of credibility (long term ownership over bitcoins) to do a scam.

It would also prevent spamming of the network with a bunch of sock-puppet nodes that could under-mine any web of trust, because it would be expensive for a scammer to produce credible sock puppets (as it would require each having ownership for a significant amount of time over a significant number of bitcoins).


morpheus (OP)
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
July 10, 2011, 03:13:15 PM
 #10

I've uploaded Beta 3 with more aggressive attempts to download all other destinations in the network. My testing suggests everyone should quickly get all of the destinations in the system.

You can download Beta 3 from: https://github.com/macourtney/Dark-Exchange/downloads
Atom
Member
**
Offline Offline

Activity: 70
Merit: 10

"Basics Of Generational Dynamics" - Look it up!


View Profile WWW
July 12, 2011, 03:49:09 AM
 #11

This is very very cool.

I don't know if this is the right place to be proposing this, but how bout using ownership of bitcoins as a proxy for trustworthiness.

So the Dark Exchange node signs its Dark Exchange public key, a long with bitcoin addresses that it claims to have under its control, with the bitcoin private keys that are in the local bitcoin wallet file, and then other nodes check to verify if the ownership claim is valid and assess how many bitcoins the owner of the Dark Exchange node has.

The greater the quantity of coins, and the longer those coins have been at the addresses controlled by the Dark Exchange node owner, the higher the assurance that other nodes have of the person not being a scammer, since the scammer would have to sacrifice permanently spoiling a hard to acquire source of credibility (long term ownership over bitcoins) to do a scam.

It would also prevent spamming of the network with a bunch of sock-puppet nodes that could under-mine any web of trust, because it would be expensive for a scammer to produce credible sock puppets (as it would require each having ownership for a significant amount of time over a significant number of bitcoins).



This is a great idea, although it means you basically need to have bitcoins for anyone to want to trade you bitcoins which will need to be thought about and overcome.  Maybe it utilizes a moving average to determine a trustworthy level of bitcoin ownership, averaging wallet contents and throwing out the outliers then using a simple under/over and call everything above the bottom 30% trustworthy.  That would scale to any size community and be self-adjusting once you got the ratios down.

@Morpheus - Kudos on the project, and let us know if we can help!  Any interest in joining us on BitTalk to talk more about the project?  We're recording the next episode tomorrow, so drop me a PM if interested.

BitTalk
with Atlas & Atom
A Show for the Bitcoin Universe, Fresh Episodes Weekly!
Episode 3 out now at BitTalk.tv

Liked this weeks episode of BitTalk?  Send us your 2¢ (.02BTC) 
13RVBjpo3xLeDBkB2NM64N8sWK4fariZUu
rizzn
Member
**
Offline Offline

Activity: 108
Merit: 10



View Profile
July 16, 2011, 08:25:12 AM
 #12

As this project gains more adoption, I'd love to see it integrated into a wallet as part of an all in one solution.
morpheus (OP)
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
July 16, 2011, 10:16:38 PM
 #13

I just released a new version of Dark Exchange: https://github.com/macourtney/Dark-Exchange/downloads

I also added a page to wiki describing how to upgrade to newer versions: https://github.com/macourtney/Dark-Exchange/wiki/Upgrading-Dark-Exchange

New for this release:

Notifications are more aggressive which means more nodes should connect to the network faster. Unfortunately this method won't scale, but it seems to be necessary to get the network up and running. I'll have to rework the algorithm as the network grows.

Most of the buttons in Dark Exchange will now run their actions (when appropriate) outside the event thread. This means the program should seem much more responsive.

Searches can be cancelled and the search button now switches to a cancel button while in the middle of a search. This should also make it easier to see when Dark Exchange is in the middle of a search. Before, there was no way to tell.

I've added two new columns to the search table and offers table. They display the wants amount divided by the has amount, and the has amount divided by the wants amount. This should allow you to see the price you're asking for or someone is offering. For example, if you enter that you have 2 bitcoin and you want $27.50, the wants / has column would read 13.75, your asking price for the bitcoin.

'Root' peer issue:

I noticed the 'root' peer had shut down. The root node is the only destination listed in the peers.txt file in your resources directory. It is the first and currently, only destination new installs query to connect to the network. I restarted it and anybody new should be able to connect to the network now. If you could not connect before, try it now.

Also, if you plan to run Dark Exchange pretty much constantly, let me know and I'll add your destination to the peers.txt file. Your help will give new nodes more options when connecting to the network.
sunyag
Newbie
*
Offline Offline

Activity: 30
Merit: 0


View Profile
July 16, 2011, 11:57:54 PM
 #14

...just really excellent, Morpheus. This is a game changer for money changing, and it's one of the most important projects underway.



rizzn
Member
**
Offline Offline

Activity: 108
Merit: 10



View Profile
July 17, 2011, 12:04:45 AM
 #15

The directory structure seems to be completely different, and the run.bat file doesn't execute without errors. Am I doing something really wrong? Previous version opened up fine.

Running Java on Windows Vista.
morpheus (OP)
Full Member
***
Offline Offline

Activity: 164
Merit: 100


View Profile
July 17, 2011, 12:31:29 AM
 #16

The directory structure seems to be completely different, and the run.bat file doesn't execute without errors. Am I doing something really wrong? Previous version opened up fine.

Running Java on Windows Vista.

Did you download the tar under Download Packages or under Download Tags? Download Packages is the official release. The others are bundles of the git repository at specific tags. They won't work if you try to install them.
hashcoin
Full Member
***
Offline Offline

Activity: 372
Merit: 101


View Profile
July 17, 2011, 01:06:34 AM
 #17

FYI you eliminate the trust needed when both things being traded are crypto-items (eg bitcoin for namecoin)

http://forum.bitcoin.org/index.php?action=printpage;topic=22581.0
Atom
Member
**
Offline Offline

Activity: 70
Merit: 10

"Basics Of Generational Dynamics" - Look it up!


View Profile WWW
July 17, 2011, 01:10:21 AM
 #18

Morpheus,
Thanks for being on episode 3 of BitTalk!  You're interview is the first out the gate, and the bitcoin.org forum episode thread is here

BitTalk
with Atlas & Atom
A Show for the Bitcoin Universe, Fresh Episodes Weekly!
Episode 3 out now at BitTalk.tv

Liked this weeks episode of BitTalk?  Send us your 2¢ (.02BTC) 
13RVBjpo3xLeDBkB2NM64N8sWK4fariZUu
philipk
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
July 17, 2011, 06:30:33 PM
 #19

Hey I like this but think it has more potential for selling items.

You could see what classifieds are online in your country & then have user ratings to create a trust system.
blap
Newbie
*
Offline Offline

Activity: 51
Merit: 0


View Profile
July 21, 2011, 02:48:48 AM
 #20

The directory structure seems to be completely different, and the run.bat file doesn't execute without errors. Am I doing something really wrong? Previous version opened up fine.

Running Java on Windows Vista.

Did you download the tar under Download Packages or under Download Tags? Download Packages is the official release. The others are bundles of the git repository at specific tags. They won't work if you try to install them.

Did not run in Windows 7 ultimate or home, PT-BR, 64bit.
The run.bat do not recognize java or something like this in the directory structure or whatever...
I tested the last java (32 bits, Version 6 Update 26), I2P (I2P 0.8.7) and D.E. in Download Packages (Uploaded July 16, 2011).

Code:
C:\Users\x\Desktop\de>run.bat

C:\Users\x\Desktop\de>REM Dark Exchange Launch script

C:\Users\x\Desktop\de>java -cp "resources;lib/*" darkexchange.main

'java' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

C:\Users\x\Desktop\de>endlocal

C:\Users\x\Desktop\de>
Pages: [1] 2 3 4 5 6 7 8  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!