The only way I can see double deposit escrow working is if the vendor's deposit requirements fall in accordance to some reputation which itself is another variable in the system that must not be gamed. I went with arbiter after talking to vbuterin for now, but with CLTV may change it later so that the buyer can renew an expiring lock on the funds by paying a small fee. ( a more complicated design needing more review and better UI)
If the buyer is the arbiter the seller won't ship, the seller should ensure this before shipping (the only thing extra they need to do)... yes it is a tradeoff and the arbiter has a dynamic reputation built that can be pulled from the blockchain db history by looking at past trades. Perhaps later on I'll use a trustless design through CLTV once i get around to trying it again in the new core (just updated to latest core again today which includes all the unit tests for CLTV).
Even in your design you involve "trust", so the gun logic applies to double deposit aswell. If there is "trust" then deposit requirements begin to fade, just like if you "trust" that the arbiter will do his or her job then no deposit is required from either side (most efficient way to achieve network affect before a fully trustless method is discovered).
So 2 of 2 involves "trust/reputation" to minimize deposit requirements, while 2 of 3 involves "trust/reputation" to resolve deadlocks between parties with no deposit requirements.
Here are my unit tests for escrow if you are curious:
https://github.com/sidhujag/syscoin2/blob/syscoin0.12/src/test/syscoin_escrow_tests.cppThe "only" way?? What are you talking about? It works already. Wanna prove me wrong? Lets enter into an unbreakable contract and you can go ahead and try to break it. See what happens. This is just the standard tired argument that someone will default. Its never happened and we have run 1000s of contracts and if they are the type of person to do that they will be poor quickly.
Also DDE is the only escrow that would work in a "cryptoanarchy" or for that matter in areas with no trust, or situations without trust, governments without trust or just standard barter.
And you are saying the "vendors" deposit? Are you aware there are like 1000s of use cases for this? Its not just for shipping boxes. It can be used in wires, telcom, employment, outsourcing(especially useful here), political contributions(imagine if the politician had to honor their word in a unilateral crowd funding contract), high risk contracts, any unilateral contracts, barter(especially interesting)... cash for coins etc.
Arbiters cannot determine WHO is lying so they are an unnecessary expense. By the time you did 100 deals but paid 100 arbiters 2% congrats, you just lost double the amount a deal would normally cost you... i highly doubt the odds of losing in DDE are more than 1% even. Probably even less. No less than the odds of getting screwed on Ebay which happens a lot and yet the 2 party method is FREE. Does the arbiters at ebay do their job when a person gets scammed? No, they don't... they have a policy that favors one side. Does the court system incriminate more guilty people or innocent people? Would you not have better odds by flipping a coin?
Look, you want the world to stay the way it is then fine. But there was an escrow company in california that ripped of the HUD for like billions, there was escrows disappearing with millions during the meltdown, it happens constantly. Escrow can ALSO collude with buyers/sellers in conspiracy if the price tag is high enough. But not it 2 party escrow, none of that will happen since there is nobody to collude with.
2 of 2 does NOT require trust. Only if you wanted to lower deposits (and even then there is no profit motive since there is still a deposit that you would be losing not to mention future business). And seriously, why would you? I would rather never lower it in my own personal experience because people usually can't be trusted to do their jobs. This escrow style is the definition of trustless.
Why are you using a trusted escrow in a trustless technology?? It makes no sense and no explanation you give me will make sense because its not logical. Then just go use the Dollar, go use Ebay and Amazon, go perform jury duty and judge your peers, just use standard methods of transaction if you think there is no room to improve it.
Mt Gox STOLE .5 BILLION dollars. IF they used Halo for their wire transfers, people would have gotten those wires back!! No fucking bankruptcy protection, hell no, they would have gotten their money. IF any Bitcoin marketplaces that used 2 party escrow (especially darknet) used it then you would never hear about these 100 million dollar escrow thefts in crypto.
MORE THAN 40% of Bitcon has already been stolen do you know HOW? By ESCROW. Sheep marketplace, Silk Road, Mt Gox, Mintpal, Bter, not to mention OTC thefts.
2 of 3 does not resolve deadlocks either because it will REWARD EVIL. If a person is evil, they steal, escrow cannot possibly decide who was right and who was wrong (they guess of course). The guess will reward bastards and the cycle continues. That is not a resolution in my opinion and i know there are people here who share it. Actually everyone should share it because its just logical. Its a better way. And vbuterin is wrong, i thought he was supposed to be a huge cryptoanarchist, why would he not want 2 party escrow?! Its like the best ideas are staring him in the face and he ignores it. You cant put everything in the world on a blockchain. Do you want your social security, photo ID on a blockchain? I would hope not.
Also, like I said 2 of 3 system has a huge vulnerability. The party can pose as escrow and buyer. You said "they cant pose as both because seller wont work with buyer who is also escrow". But of course they can and they WILL.
Let me explain this attack in more depth. Lets use open Bazaar. I decide to make 100 fake profiles in OB. Then I build up their reputations. Then I enter into a bunch of deals, scam the people, favor myself... dont do it too much at once of course. I know the public keys which are mine so there is no way the system can hide this knowledge from me. And if I have a 100 profiles being chosen at "random" would be like being chose all the time. Then finally the attacker enters into 100 escrows with different parties, this can be asynchronous too because there is no way to tell which profile was built up or not. They then take all the money which could amount into 100s or 1000s of bitcoins. OR MORE, just keep attacking forever. Fake profiles are easy to make. Bots can almost do this job(bots can be trained to comment, and basic logic, even built with what to do in certain scenarios). Very tempting too if you live in India, or Zimbabwe and your monthly income is like 20 dollars. So working full time to make 1000s of btc?? Huge incentive to spend all day doing escrows. Easy attack to perform, they control both keys, they knew they could take the coins early but its a long con.
This is why you don't use 2 of 3 in Bitcoin because Bitcoin users are just random people on the internet and have zero accountability and are totally anonymous. Even if you used a way to identify users they can fake those (fake ids are easy to use, hell google images since we are doing this all electronic)
And you said "before a fully trustless method is discovered". 2 of 2 escrow is the ONLY fully trustless method. Why? We dont trust third parties to our transactions, we arrange all the terms beforehand and only deal with our counterparty. Nobody wins from bad acting so only good acting results in a successful deal. An extreme example, you and me we deposit 100 bitcoins each for a cash deal that costs 1 bitcoin. Are you really going to break it? Didnt think so. That is trustless.