How can I execute a 3-way escrow with 1 unknown party?

5

1

Good Evening-

I'm trying to execute an unusual 3-way transaction, where in one of the parties is not known at the start.

PartyA would initiate the transaction, and provide funding. My thought was that he would transfer 1BTC to a dedicated wallet.

He'd then also start the transaction, and name Party B as one required signature.

For the third signature, he'd approach 5 random strangers. He'd give them any and all information necessary to complete the transaction (including the private key of the wallet he just made if nec).

The first one who could propose a deal, and convince PartyB to accept it, would receive their share of the money.

For instance, c1 might offer B to split 80/20, where-as c2 offers to split 50/50. PartyB signs the proposed offer from c2, and it can then execute.

It looks like there might be a way to do this with multiple signatures and p2sh, but I'm not quite sure how to make it work yet. Any thoughts or comments welcomed.

user6631

Posted 2013-09-04T03:13:51.400

Reputation: 51

Good Evening to you too sir. I would suggest looking into how the parameters for OP_CHECKSIG works (https://en.bitcoin.it/wiki/OP_CHECKSIG).

John Henry 2013-09-04T17:53:16.487

How do you prevent Party A from approaching his friends, instead of strangers? Are you assuming that Party A is not going to cheat?Nick ODell 2014-10-23T19:10:03.243

Is party A even necessarily a part of the process other than providing the original funding?morsecoder 2014-12-22T22:58:53.007

Answers

1

Yes, P2SH seems to be the way to go here. If you do a redeem script like:

redeemScript: DUP HASH160 {B's pub key id} EQUALVERIFY CHECKSIGVERIFY 1 {c1 pub key} {c2 pub key} {c3 pub key} {c4 pub key} {c5 pub key} 5 CHECKSIG

Hash it and use the P2SH hash as the address. Then you could spend this output with a scriptSig like:

scriptSig: {any one of c1-c5's signatures of the transaction} {B's signature} {redeemScript}

I'd do some testing with these on a testnet network before doing this for real.

morsecoder

Posted 2013-09-04T03:13:51.400

Reputation: 12 624

0

strongcoin.com offer a escrow service:

https://www.strongcoin.com/

you could also use

https://www.bitrated.com/

They provide a platform for transaction arbitration which is open source.

https://coinb.in/multisig/ - This allows you to use the multi-sig functionality in bitcoin which you can use for escrowed trades as well.

I only just stumbled across this one: http://www.coinsigner.com/Howitworks.html but it looks to provide some kind of arbitration,

hafnero

Posted 2013-09-04T03:13:51.400

Reputation: 841

Please don't use URL shorteners.Nick ODell 2014-10-23T19:09:01.830