Author

Topic: Marketplace that can't steal your money. IF... (Read 1149 times)

newbie
Activity: 5
Merit: 0
Otherwise, accepting a BIP32 extended public key from users would be great. God knows how long away that will be. Or even, clients issuing BIP32 keys to anticipate the need for recurring transactions/pubkeys between people, and for better support for multisig. I'd love a QR scan/bitcoin URI for pairing/signing a multisignature address, it's something I'll be working on after a mountain of other work.

Why not give the option to use BIP32 extended keys? Not supporting them because of perceived lack of support from other tools just propagates the problem of no support. I use a BIP32 chain for
getting payments, even though it means that my 'wallet' is mainly a bunch of shell scripts. Because you only need to get the private key when crafting spend tx, private key management is simple because you can just store one encrypted file with your extended private key, and ask for it when needed.

Also, there is support for using bip32 to do multi-signature work in my new program, pymultisigtools -- https://github.com/Zah6ooheew/pymultisigtools -- which will see a new release shortly after I figure out a user interface for signing multiple transactions at once.
sr. member
Activity: 412
Merit: 287
I'm working on a multisig ebay.. All open sourced. It looks awful at the moment since it uses old bootstrap and I'm not a particularly good UI developer.. working on improving that lately. Basically buyers give a pubkey per order, vendors keep topping up a list, and the admin has an electrum MPK there to continually generate order pubkeys, and addresses to receive payments for registration on.

I suppose it wouldn't take much to modify into an exchange, but at the moment it doesn't consider unconfirmed transactions at all. I wonder would people use an exchange that took a full confirmation to get your funds since, it's all on the chain?

At the moment it assumes the users will sign for themselves and paste the tx onto the site. Hoping to improve this once I clear some stuff off my todo list..

Javascript would be a nice solution, using BitCore to generate BIP32 keys from a passphrase and the necessary key for signing. But people don't like JS at all. I'll probably do this for my own, but it complicates the issue of allowing buyers/sellers to communicate and restore the funds for others.

Otherwise, accepting a BIP32 extended public key from users would be great. God knows how long away that will be. Or even, clients issuing BIP32 keys to anticipate the need for recurring transactions/pubkeys between people, and for better support for multisig. I'd love a QR scan/bitcoin URI for pairing/signing a multisignature address, it's something I'll be working on after a mountain of other work.
member
Activity: 102
Merit: 10
Are we talking about markets for buying goods or exchanges from/to fiat?

If you are talking about a market for items, this setup is bizarre. Why would you have a server generate your keys, ever? Key generation is not something you trust to anybody.

The correct way to do this is to use 2 of 3. Each purchase needs three keys: buyer provides a public key, vendor provides a public key, market provides a public key. This is then used to create an address for payment for each sale.

Market gets hacked? They only have one signature. You get hacked? Only one signature. Vendor hacked? Only one signature.

Normal transaction? Market signs tx to pay vendor, vendor completes tx with their signature.
Cancelled order? Market signs tx to refund buyer, buyer completes tx with their signature.
Disputed transaction? Market signs tx, gives to buyer or vendor to complete depending on situation.
Market obliterated by aliens? Tx is signed by buyer and vendor, in whichever order works best.

Main problem: people tend to lose their keys. Don't ask me how they lose important stuff like that, but it is the main problem.

I was talking about marketplace exchanges.
But you points are nice.
I believe that will find its creator and customers.

But here "The correct way to do this is to use 2 of 3. Each purchase needs three keys" you meant "two keys" right?
newbie
Activity: 5
Merit: 0
Are we talking about markets for buying goods or exchanges from/to fiat?

If you are talking about a market for items, this setup is bizarre. Why would you have a server generate your keys, ever? Key generation is not something you trust to anybody.

The correct way to do this is to use 2 of 3. Each purchase needs three keys: buyer provides a public key, vendor provides a public key, market provides a public key. This is then used to create an address for payment for each sale.

Market gets hacked? They only have one signature. You get hacked? Only one signature. Vendor hacked? Only one signature.

Normal transaction? Market signs tx to pay vendor, vendor completes tx with their signature.
Cancelled order? Market signs tx to refund buyer, buyer completes tx with their signature.
Disputed transaction? Market signs tx, gives to buyer or vendor to complete depending on situation.
Market obliterated by aliens? Tx is signed by buyer and vendor, in whichever order works best.

Main problem: people tend to lose their keys. Don't ask me how they lose important stuff like that, but it is the main problem.
legendary
Activity: 1358
Merit: 1001
https://gliph.me/hUF

@Newar why do you think it is so dead?

The way the trading works on there makes it impossible to trade for day traders and bots. Additionally orders are limited to the sellers choice and that means if you want to buy bigger amounts of coins you have to do several trades with different partners.

On top of that process is extra cumbersome as when you click an offer the seller needs to approve of it (IMHO this is an unnecessary step, it would be easier if the bank details would be displayed straight away, as on bitcoin.de for example).

I also get the impression that even after MtGox many prefer the "old financial world" system of a forex- or stock-like trading system where you need to send your funds to a third party first (and in some cases they still keep it there for extended periods of time). It's perceived easier to trade, as once the funds are on the site you can just click-click-click and you're done. With systems like bitalo, bitcoin.de and bitoin-otc the process is more involved, but also safer for your funds as in they are not stuck with a third party you need to trust and is on the other side of the world. Instead you trust your direct trading partner, which has it's issues too of course.

The advantage of exchanges like bitalo could be regulatory as they never touch user's fiat. It works more like Ebay. So the licensing could be easier in the future when we get to a point where bitcoin is more regulated across the world.

But for now low volume means little word of mouth and unless they pull a marketing campaign, that won't change. I don't know if you followed how Kraken started, but that was their problem in the beginning too. Exchanges need volume to succeed.
full member
Activity: 168
Merit: 100
They cannot steal you money if they are not in active orders, in fact it would almost be impossible.
member
Activity: 102
Merit: 10
Ok, you got me Smiley

They cannot steal you money if they are not in active orders.
edited first post.
sr. member
Activity: 252
Merit: 250
They can't steal your money having only one key.

All they can is only steal money which are on active order. When transaction is signed with your key.

Perfect !

Then what you said is contradictory with this

Marketplace that can't steal your money.
member
Activity: 102
Merit: 10
They can't steal your money having only one key.

All they can is only steal money which are on active order. When transaction is signed with your key.
sr. member
Activity: 252
Merit: 250
@joshraban76 sorry, didn't get your point.
Didn't you miss that "2. There are 2 private keys needed to sign transaction."?

@Newar why do you think it is so dead?

No problem.

You say

3. One key is stored on the Marketplace server.

What if

1. The server is hacked ?
2. The owner is greedy and decided to seal ?
member
Activity: 102
Merit: 10
@joshraban76 sorry, didn't get your point.
Didn't you miss that "2. There are 2 private keys needed to sign transaction."?

@Newar why do you think it is so dead?
sr. member
Activity: 252
Merit: 250
You said, the second key is stored on the marketplace server.

Then your point about the marketplace is hacked or owner is stealing your wallet is invalid.
legendary
Activity: 1358
Merit: 1001
https://gliph.me/hUF

You might find this interesting:

https://www.bitalo.com/exchange
member
Activity: 102
Merit: 10
Guys, I know this idea is flying in the air since MtGox crash.

Could you please tell me (for free) what do you think about multisignature marketplace?
I will explain what do I mean.
1. User registers, gets his private keys to his marketplace wallet.
2. There are 2 private keys needed to sign transaction.
3. One key is stored on the Marketplace server.

That means marketplace can't do any transactions using your wallet without you. So you are protected from:
1. Marketplace hacked.
2. Marketplace owner - cheater.
3. Your account hacked.

So actually you even can use it as an HD wallet and coldstorage your keys Smiley
And you can trade immediately without sending money(coins) to market and waiting for 6-10 confirmations.

What if you want to place an order?
You sign your order with your key, if order will trigger marketplace would sign it with their key to withdraw your money.
UPDATED: Only in this case marketplace can cheat you (theoretically)

I don't want to hear questions "how would you?". Just assume I know how to make it.
How do you think, anybody needs this kind of service?

Thanks a lot!

Edited.
I just realized that this topic is probably for Marketplace forum. Admin, sorry, if needed please move it there.
Jump to: