Author

Topic: Multi-Part / Multi-Signature / Suspense / Release Transaction (Read 546 times)

newbie
Activity: 8
Merit: 0
Hello,

We are building a payment gateway to a proprietary backend management system.  We are seeking to do it in a way that three parties can participate, yet we do not want to hold any Bitcoin during the transit process between parties so that we can firmly say we are not a US Money Services / Money Transmitter.

Here is typical thinking:

TYPICAL TWO TRANSACTION APPROACH
Merchant: Selling goods online for 1 BTC
Customer:  Seeks to buy goods from Merchant for 1 BTC
Processor:  Us, with our software payment gateway wants a fee: .01 BTC

Our goal is as follows.

The customer and merchant agree to transact in Bitcoin including the quantity to move to each other.  Our goal is to get a 1% fee of this amount. We want our software to initiate a request on behalf of the Merchant to the Customer that says:  

"Please pay 1 BTC to this address: 18oCupA6HEoBVy5GpwBkvVVeGrYXj6NXC4"

When our software sees the payment on the blockchain, we want to initiate another transaction as follows:

Merchant sends to Processor .01 BTC as they now have received their gross income of 1 BTC and they will be left with .99 BTC.

CONCERNS WITH TWO TRANSACTION APPROACH
We don't think this will work because we can't act on behalf of the customer to initiate a transaction without their keys.  However, what if there was a way that our software could work with the customer to produce a signed transaction that we then somehow broadcast on their behalf?  What if we provided some type of software to the customer that allows them to have an HD wallet that interacts with our service to package transaction requests?

Is there something in Bitcoin's "scripting protocol" that could have created this second transaction as apart of the initial transaction?


MULTIPLE PARTY TRANSACTION
Is there another way to do this?  For example:

1.  Our software sends request to customer on behalf of the merchant.

2.  Somehow, we procude a request to constitute a multiple party transaction:

3.  The customer sees a request that says: "Please pay .99 BTC to this address: 18oCupA6HEoBVy5GpwBkvVVeGrYXj6NXC4 and pay .01 BTC to this address:
17oudb6HEoBVy5GpwBkvVVegrYXjtrNXC4".

Then, we get our fee and the Merchant gets the net.

CONCERNS WITH MULTIPLE PARTY TRANSACTION
In this case, I think the customer will be confused because it is a non-standard request.  It may feel like something was hijacked and it will create customer service requests for the Merchant.


OTHER APPROACH
Then I keep hearing about Multi-Signature capacities.  Where do I reference this?  Can this function be the answer to our concerns?  We also were thinking about adding a time delay factor for the Merchant to prove delivery to release the funds (like escrow).  Of course, all of us would get paid when the Merchant delivers.


I appreciate any thinking on this.
Jump to: