No amount of smart contracts can solve the situation where one party says "I shipped you the widgets you ordered; pay me" and the other says "I received a box with a brick in it" -- you need some trusted third party to decide based on reasonable heuristics who is trying to commit fraud, based on e.g. is this the first or the tenth time this has happened.
The contract can hold the money in escrow such that it can only be sent either to the seller or returned to buyer.
The seller and buyer can then both walk the contract through a state machine on agreement (i.e. confirm shipping, confirm delivery, potentially also confirmation for a return process) and when the buyer and seller come to a disagreement (ex: seller attests they've shipped the product and it should be delivered but the buyer asserts they havent/the tracking on shipping is invalid) or one of the participants is non-responsive for a certain amount of time then the contract moves into arbitration.
In arbitration one or more third parties then step in to serve as arbiters/oracles that decide in the favor of one party or the other and commit those decisions to the contract and the contract then derives consensus from those decisions and proceeds to the corresponding state/action of the contract (i.e. refund vs close).
Now your arbiters/oracles/third parties have reputations and you can reason about how trustworthy they are before you enter into the contract.
This means all parties can evaluate their risk tolerance and trust levels before entering the contract/on agreement.
-------
TLDR: Trust is inherent to any system reliant on the physical world. The point of smart contracts, etc is to formally encode those trust assumptions and the procedures of the contract in as trustless of a way as possible and to allow distribution of that trust across parties with most of the coordination overhead being automated/abstracted away.
And importantly smart contracts provide an extremely low friction happy path. In the happy path where all parties are satisfied, it's extremely efficient and responsive. But in every other path, the conflicts, incentives, and resolution procedures are clearly defined for all parties involved.
Read Irrationality, Extortion, or Trusted Third-parties: Why it is Impossible to Buy and Sell Physical Goods Securely on the Blockchain. Or just read the title, it has the main point.
Did you read the paper? The paper is arguing the exact same point I was arguing. To quote the paper:
> Finally, assuming that the parties are rational agents and the smart contract language is Turing complete, we argue that it is impossible to implement the basic sales escrow as a smart contract without trusted third-parties or vulnerability to extortion. In other words, any escrow smart contract has one of the following three demerits:
> – Assuming irrational agents who are willing to punish the other side, even if it is not in their own interest; or
> – Relying on a third-party; or
> – Enabling at least one of the two parties to extort the other.
> In summary, we illustrate that the smart contract and Dapp community is wrong in assuming that the current implementations of two-party escrows have a well-designed mechanism that incentivizes rational actors to be truthful. More shockingly, we show that the smart contracts on programmable blockchains have inherent limitations that make it impossible to implement such a contract. In a sense, this can be considered the first incontractability result on programmable blockchains.
----------
This is exactly what I was arguing.
I never claimed that two party escrow is ideal. I was explicitly saying that two party escrow is an intractable problem and that you must formalise your trust assumptions instead and either accept some level of trusted third parties OR without third parties accept some level of risk of exploitation by one party or the other. Even with third parties there is still risk for exploitation but depending how it is implemented that risk is lesser.
Again this is a matter of formalising trust assumptions and explicitly outlining who you are trusting, what you are trusting them to do, and how much you trust them to do it. And in doing so up front both parties can evaluate their risk tolerance based on the agreed upon contract before progressing.
They agree with your statement in another reply under this submission. So a joke on crypto hype culture, where you either put aside problems and move to next craze or next craze is shoved to everything.