Bitcoin Forum
May 23, 2024, 04:56:23 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: How does Multi-sig escrow for merchants work in the real world?  (Read 1359 times)
btctraderr (OP)
Full Member
***
Offline Offline

Activity: 120
Merit: 100


View Profile
August 03, 2014, 10:50:37 AM
 #1

Ok, so my understanding is that Multi-sig escrow can effectively provide the ability for a 'chargeback' in the case of a 2 of 3 wallet with one party being say, a Coinbase as the arbitrator. See the situation below assuming a 2 of 3 transaction with a theoretical merchant processor in the middle:

1.Alice wants to buy shoes and sees the shoes she wants on bob's online store
2.Alice send Bob 1 BTC
3.Bob see's the Payment and sends the shoes in the mail.
*Bob has not been paid yet as Coinbase need to sign it?*
4.Alice wants to return the shoes as they did not fit. Alice sends back the shoes.
5.After Bob confirms receipt of shoes Coinbase sign the transaction to reverse it and probably take a small fee.
6. Alice gets her money back and Bob takes a fee for the handling costs.

So.....Bob does not get actually get paid until step 6 correct? What if a merchant prices their goods in fiat (like everyone), if they the handling fee in BTC and the BTC price has dropped 20% they've lost out. Bob has to send the goods without actually receiving the payment?

Maybe I'm not explaining it correctly but how can Escrow function well if the funds are sitting there in BTC for an extended period of time, no merchant will use that.

trynmpo
Sr. Member
****
Offline Offline

Activity: 322
Merit: 250



View Profile
August 03, 2014, 11:08:41 AM
 #2

Ok, so my understanding is that Multi-sig escrow can effectively provide the ability for a 'chargeback' in the case of a 2 of 3 wallet with one party being say, a Coinbase as the arbitrator. See the situation below assuming a 2 of 3 transaction with a theoretical merchant processor in the middle:

1.Alice wants to buy shoes and sees the shoes she wants on bob's online store
2.Alice send Bob 1 BTC
3.Bob see's the Payment and sends the shoes in the mail.
*Bob has not been paid yet as Coinbase need to sign it?*
4.Alice wants to return the shoes as they did not fit. Alice sends back the shoes.
5.After Bob confirms receipt of shoes Coinbase sign the transaction to reverse it and probably take a small fee.
6. Alice gets her money back and Bob takes a fee for the handling costs.

So.....Bob does not get actually get paid until step 6 correct? What if a merchant prices their goods in fiat (like everyone), if they the handling fee in BTC and the BTC price has dropped 20% they've lost out. Bob has to send the goods without actually receiving the payment?

Maybe I'm not explaining it correctly but how can Escrow function well if the funds are sitting there in BTC for an extended period of time, no merchant will use that.



I am also supporting & anxious to know about the solution of your fact, it can be go both ways if price dropped seller will lose his money, if price rises buyer feel he lost some extra chunk and with this scenario BTC will surely lose its credibility. BTC price needs to be stable to maintain its credibility and worldwide acceptance in a long run.
fbueller
Sr. Member
****
Offline Offline

Activity: 412
Merit: 275


View Profile
August 03, 2014, 04:57:06 PM
 #3

I'm writing bitwasp, an open source multisig marketplace.. I've been puzzling over this for a while, wondering how best to approach it.

Its actually tricky to deal with this, because once a user signs a transaction, that signatures captures the who and the how much. Say you opted to try and hedge against price variation (if you expect to go up this makes sense) If you want to change it a day or two later because the price has varied, you'd need the first used to sign again.

Bitwasp Developer.
Envrin
Sr. Member
****
Offline Offline

Activity: 318
Merit: 251



View Profile
August 03, 2014, 05:16:33 PM
 #4


It doesn't really work that great for escrow.  You can't put a partially signed transaction on the blockchain, so escrow would have to work exact same as we do now with fiat.  You send funds to an arbitrator, they hold the funds, then release them accordingly once the transaction is completed and/or dispute resolved. 

There's no requirement for multisig there though.  That 1 BTC must leave Alice's wallet, then a new transaction must be created by the arbitrator once the deal is complete.  Multisig is meant more for security, not escrow.

inBitweTrust
Hero Member
*****
Offline Offline

Activity: 658
Merit: 501



View Profile
August 03, 2014, 05:25:53 PM
Last edit: August 03, 2014, 05:39:45 PM by inBitweTrust
 #5

What if a merchant prices their goods in fiat (like everyone), if they the handling fee in BTC and the BTC price has dropped 20% they've lost out. Bob has to send the goods without actually receiving the payment?

Maybe I'm not explaining it correctly but how can Escrow function well if the funds are sitting there in BTC for an extended period of time, no merchant will use that.



If you are doing multisig escrow the contract is with BTC and not Fiat. The amount of BTC cannot lose 20%. If it has lost 20% in USD it may have gained 10% in value against gold  or the Argentinian peso.... the value of Bitcoin to other things is all relative.

Additionally, I think people overly emphasize the volatility of Bitcoin. People may assume they lost purchasing power in BTC with a transaction when they could have bought BTC for less independently but that is all hindsight bias. No one has a crystal ball and knows exactly when to buy so if BTC loses 10-20% in purchasing power for a week than recovers and gains 10-20% in value than what is the big deal.

All this means is you should diversify your assets and never use your BTC when it has less purchasing power when you acquired or purchased it.  

inBitweTrust
Hero Member
*****
Offline Offline

Activity: 658
Merit: 501



View Profile
August 03, 2014, 05:31:21 PM
 #6


It doesn't really work that great for escrow.  You can't put a partially signed transaction on the blockchain, so escrow would have to work exact same as we do now with fiat.  You send funds to an arbitrator, they hold the funds, then release them accordingly once the transaction is completed and/or dispute resolved.  

There's no requirement for multisig there though.  That 1 BTC must leave Alice's wallet, then a new transaction must be created by the arbitrator once the deal is complete.  Multisig is meant more for security, not escrow.



That isn't how multisig escrow arbitration works. The escrow does indeed sit locked in limbo on the blockchain until m of n keys unlock the funds. This isn't anything like traditional escrow where there is counter party risk involved with concern that the arbitrator can directly run off with your funds.
 
You never send funds to an arbitrator, they only get a partial key. You don't need the arbitrator to release the funds either, they only are introduced in the less than 1% cases if there is a dispute.

Here is some more info-
https://www.bitrated.com/faq.html

Envrin
Sr. Member
****
Offline Offline

Activity: 318
Merit: 251



View Profile
August 03, 2014, 05:37:08 PM
 #7

That isn't how multisig escrow arbitration works. The escrow does indeed sit locked in limbo on the blockchain until m of n keys unlock the funds. This isn't anything like traditional escrow where there is counter party risk involved with concern that the arbitrator can directly run off with your funds.
 
You never send funds to an arbitrator, they only get a partial key. You don't need the arbitrator to release the funds either, they only are introduced in the less than 1% cases if there is a dispute.

Sorry, and you're completely right.  I knew it was too late, and I was too tired to be posting.  Long day. Smiley

fbueller
Sr. Member
****
Offline Offline

Activity: 412
Merit: 275


View Profile
August 04, 2014, 12:22:07 PM
 #8

I have sellers say 'ithis item costs 1btc' or else 'I want 500 in USD'. Software then converts and works out the cost in bitcoins. I use btc as the judge of value throughout my app, and convert fiat amounts into btc as of the most recent exchange rate. When a buyer accepts, I calculate all fiat amounts to btc and give them that total (plus fees).

Should we be teaming up here and trying to issue guidance? I'm sure people who have implemented this know how difficult it was, maybe we should try work out fair, community driven guidelines on points like how each marketplace treats price variation, etc. Should everyone just say that prices are final as of when the order is accepted, and multisig address is revealed to the buyer?

Who is actually coding this stuff ATM? Pm me please.

Bitwasp Developer.
Pages: [1]
  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!