Remix.run Logo
NickNaraghi 2 days ago

I love watching the HN comment hivemind speedrun the history of blockchain innovation every time this comes up. You just reinvented smart contracts on Ethereum, keep going :-)

gavinsyancey 2 days ago | parent | next [-]

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.

OneDeuxTriSeiGo 2 days ago | parent | next [-]

That's exactly the point of smart contracts.

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.

FabHK 2 days ago | parent [-]

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.

http://arxiv.org/abs/2110.09857

OneDeuxTriSeiGo 2 days ago | parent [-]

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.

pyrolistical 2 days ago | parent | prev [-]

That’s just a bad contract. Now consider one that mints you an NFT

bhickey 2 days ago | parent [-]

I can't actually tell if you're touting monkey jpegs or making a really funny joke.

forgotpwd16 2 days ago | parent [-]

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.

XorNot 2 days ago | parent | prev | next [-]

Smart contracts can only enforce things which happen on the chain.

No smart contract can prove you were not actually delivered your goods without trusting someone else.

gobip 2 days ago | parent [-]

Yes, it's called an oracle on the blockchain.

Kbelicius 2 days ago | parent [-]

So blockchain requires trust in third parties. What is the point of it then?

OneDeuxTriSeiGo 2 days ago | parent [-]

I outlined it over in another comment[1] so I'm not gonna copy it all over but the point isn't to eliminate all trust. The point of trustless architectures (of which blockchain and smart contracts are one) is that you are eliminating implicit trust.

You are taking all the implicit trust, lowering it into explicit trust assumptions, and formalising who is allowed to make what decisions when, what happens when they do, and how the other parties are permitted to respond.

You are moving all of those implicit assumptions about how a contract, interaction, or relationship work and formalising them into something explicit and upfront so that all participants can evaluate their risk tolerance and trust levels prior to agreeing to a given contract or interaction.

And of course you are also sprinkling in a heavy dose of automation to smooth out the complexities of these explicit, mechanised contracts such that the happy paths are buttery smooth and the unhappy paths are at the least bearable and correspond to the contract you signed on to at the beginning of your interaction.

TLDR: It's low trust automation + formalising implicit assumptions into explicit ones.

1. https://news.ycombinator.com/item?id=46181371#46192445

Kbelicius a day ago | parent [-]

Clicked the link but ctrl+f doesn't find any posts by you.

> The point of trustless architectures (of which blockchain and smart contracts are one) is that you are eliminating implicit trust.

That is also the point of laws and contracts as we have them today. How does, explicitly, blockchain improve on that?

> You are moving all of those implicit assumptions about how a contract, interaction, or relationship work and formalising them into something explicit and upfront so that all participants can evaluate their risk tolerance and trust levels prior to agreeing to a given contract or interaction.

What implicit assumptions aren't removed by laws and contracts as we have them today that are removed by blockchain and smart contracts?

> And of course you are also sprinkling in a heavy dose of automation to smooth out the complexities of these explicit, mechanised contracts such that the happy paths are buttery smooth and the unhappy paths are at the least bearable and correspond to the contract you signed on to at the beginning of your interaction.

Without any examples of what is being automated, how and what it is that is made buttery smooth... you really aren't saying anything here. Can you expound on any of those claims?

TLDR: By what you said the only thing that blockchains and smart contracts bring is a new medium to write contracts on.

OneDeuxTriSeiGo 20 hours ago | parent [-]

Ah sorry. I tried to link it in the context. The exact reply is here:

https://news.ycombinator.com/item?id=46192445

--------

> That is also the point of laws and contracts as we have them today. How does, explicitly, blockchain improve on that?

It's essentially automated tooling. The happy path (i.e. buyer and seller are in agreement) "just works" but when there's a disagreement you can rely on the contract to walk through all of the conflict resolution paths with whatever level of complexity the contract builds in for consensus from multiple third parties, etc.

i.e. It's tooling that replaces manual bureaucratic arbitration with state machines and consensus algorithms.

For two party smart contracts this means there's no third party but there's an inherent risk of exploitation by one party or the other by the design of the contract. It's inherent to two party contracts relying on any physical exchange but if you trust the party the contract is weighted in favor of, it cuts out any opportunity for arbitration and the complexity that comes with that. Now the only trust assumption is the two parties trust in each other.

For contracts with some arbitration process however things get more complicated. Who all is involved in arbitration. Who does the buyer trust. Who does the seller trust. What's the reputation of one of these arbiters? This reputation can be loosely represented as a set of markets for the arbiter with demand from sellers and demand from buyers. If those two markets are out of sync from each other that suggests an impartial arbiter and both parties can reason about that.

> What implicit assumptions aren't removed by laws and contracts as we have them today that are removed by blockchain and smart contracts?

Well. Part of it is that laws are an inherently fuzzy thing and how they are upheld is entirely dependent on a long running and constantly evolving chain of interpretations from past court decisions. And of course how they are upheld in a specific case comes down to how well lawyers are able to convince a judge or a collection of jurors who were more or less selected at random with anyone semi-literate about the law thrown out ahead of time. So it boils down to "who is best able to sway the opinions of this random collection of people who are as illiterate about the law as the lawyers could manage to get them". Which mostly just boils down to feelings.

Of course contracts often go to arbitration instead of to court proper so it's a different case there but arbiters are single authorities that almost universally side with the bigger entity (i.e. whoever is paying them to handle arbitration). So unless you are two large orgs, arbitration is inherently biased.

So an alternative is a largely automated system where multiple third parties who are selected ahead of time by the buyer and seller can be relied upon for arbitration and where their decision is for all intents and purpose final. The buyer and the seller have equal decision making power in the selection of these third parties and they can evaluate the reputations of these third parties prior to entering the contract.

i.e. you are moving away from trust in a large system with a thousand moving parts all performed by infallible people swayed by emotions and an endless process of appeals OR a single arbiter almost always paid by the larger party who will always rule in their favor. Instead putting your trust into a strict set of automated rules with a formal analysis of outcomes backing it + some optional assortment of selected third parties + a consensus mechanism for those third parties.

> TLDR: By what you said the only thing that blockchains and smart contracts bring is a new medium to write contracts on.

Yes. It is exactly that. A new medium to write contracts on. Manual bureaucratic systems and thousands upon thousands of people working in a complex legal system are replaced by a machine. Humans are still in the loop of course but only for making specific decisions at specific times in the process.

And at the time of agreeing to the contract the relevant parties can ideally rely on tooling to explicitly outline at what points each party is taking on a degree of risk, the likelihood of that risk, and the process for moving forward in those cases.

An extremely reductive TLDR is that the goal is to take a system that relies on an army of lawyers and legal analysts and reduce it down into something digestible and navigable by a single lawyer (or even a well educated layperson) with all the existing complexity abstracted away by formal methods tooling.

baq 2 days ago | parent | prev | next [-]

I love watching cryptobros speedrun the history of finance :-)

UltraSane 2 days ago | parent | prev [-]

smart contracts need some link to reality that has to be.... trusted.