this post was submitted on 13 Aug 2023
20 points (68.5% liked)

Asklemmy

43803 readers
753 users here now

A loosely moderated place to ask open-ended questions

Search asklemmy ๐Ÿ”

If your post meets the following criteria, it's welcome here!

  1. Open-ended question
  2. Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
  3. Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
  4. Not ad nauseam inducing: please make sure it is a question that would be new to most members
  5. An actual topic of discussion

Looking for support?

Looking for a community?

~Icon~ ~by~ ~@Double_A@discuss.tchncs.de~

founded 5 years ago
MODERATORS
 

As a foreword, yes I am very aware of resources like https://web3isgoinggreat.com You don't need to spam the comments with the link.

I am not asking about your general opinions on why crypto kittens is a jerk fest for crypto bros. Please cut the automatic generic rant on why cryptocurrencies is the sandbox of brainless dopamine monkeys. I am asking about your sentiment on a specific scenario, that tries to solve a real problem.

This is just an example, for oversimplification.
In a trust-less environment, one person shares some of their cloud space for a fixed amount of time, with another person they don't know much.

The person asking for the cloud space, promises that they will use it only for X,Y or Z. They both agree to leave all the data in clear text (it is easy to prove whether there has been a breach of trust).
If the person doesn't respect their engagement, they must be penalized. In this scenario, there is no legal tool to ensure this.

Enters the smart contract. The individual asking for a share of the cloud space, deposits a certain amount of ETH in a smart contract. The smart contract itself ensures that the owner of the cloud space will NEVER have access to the deposit fund.
Both individuals sign the smart contract. After a fixed amount of time, the depositor can retrieve their deposit back.
However, if for somewhat reason the depositor breaks their engagement (and do something outside X,Y, Z), the person sharing their cloud space can refuse the refund of the deposit.
Both individuals must then reach a consensus, or the deposit will stay frozen on the smart contract forever.

In this case, would the use of a smart contract be a reasonable solution to you?

you are viewing a single comment's thread
view the rest of the comments
[โ€“] rentar42@kbin.social 44 points 1 year ago* (last edited 1 year ago) (1 children)

I promise this isn't a generic anti-crypto rant, but rather a specific anti-crypto rant:

There are many projects in this space that try to replace what they perceive as flawed legal systems with perceived "perfect" (or at least better) digital, automated systems.

And I definitely understand that urge: there are many problems with various legal systems ranging from annoying (like being slow and very disparate around the world) to massive (biases, lack of access for those who need it most).

So aiming to improve that situation is understandable. And being pessimistic about the chances of fixing those systems with the "normal approaches" (i.e. politics) is equally understandable.

Where these projects usually break down though is that they generally lack an understanding of what makes legal systems so hard to get right: no one has found a reliable way to encode a non-trivial part of the law into something that a computer can decide reliably and without wrong decisions. (there are of course other difficulties, but this is the most lenient one for the current topic).

People with a technical background (which includes me) are often frustrated how laws and legal documents like licenses are at the same time both written in an arcane inaccessible language and also very much prone to interpretation. We assume, based on the languages we interact with, that a sufficiently complex language should allow a strict, formal interpretation of some truth value ("was this contract followed by both parties?").

But the reality is that contracts (just like most laws) are intentionally written with some subjective language to both account for real world deviations and avoid loopholes.

It's incredibly easy for a law to apply when it's not meant to (or the opposite: to present a law as not being meant to apply to a certain situation when the authors were very aware of the implications) or to not apply due to some technicality.

And for all the wrong in legal systems that exists we have not yet found abetter way to solve this than (hopefully neutral) arbitrators that interpret the text and underlying intentions.

And all the crypto schemes categorically decline that: their stated goal is to not have a human in the loop anywhere. That would be fine if they also solved the above problems in some other way, but none that I know of even attempt to do that. They simply pretend that perfect, decideable contracts are possible (even easy!) and never unfair.

Whether that error is based on ignorance or on something more sinister is up to the reader to decide.

[โ€“] kurogane@sopuli.xyz 7 points 1 year ago* (last edited 1 year ago) (2 children)

I 100% agree with you. Thank you for sharing a piece of thought that is so often overlooked.
This is a very tricky world we are in.

One grievance I have against traditional finances especially, is its inflexibility. Say that you want to fairly share a donation, or even a tip between two individuals.
With current system, they need to either build their company, or at least be contractors in the same country. One receives the funds, and splits it with the other, by the means of expenses and invoices.
If they fail to do so, it ends up in court.
The whole thing takes time and money. And we need to be sure that they are in the same country, bonded by the same laws.

With cryptocurrencies, someone makes a donation in ETH, and in a matter of minutes, both individuals receive their share with 100% certainty the share has not been modified. Agent A could be in Venezuela for what I care, while agent B is Australian. At the end of the day, it doesn't matter.
I concur this is a very specific problem, but one of those reasons why smart contracts shouldn't be discarded as a whole.

[โ€“] rentar42@kbin.social 11 points 1 year ago* (last edited 1 year ago) (1 children)

Even in very specific instances the smart contracts can only ever observe the Information they are given and have to assume that all that information is correct. What if the donation was done fraudulently or in error?

These systems have no way to undo these transactions (by design). They simply move all the "error handling" or "fraud prevention" to outside of the system.

And yes: if you can pretend that errorsor fraud don't happen, then one can design much simpler sysfems
But those assumptions don't make errors or fraud go away.

Edit: another aspect that the "traditional Systems" have at least some provision for is to prevent abusive or one sided contracts from being entered or at least enforced. For some the lack of those safeguards is a feature. For me it's terrible. Tons of contracts happen between unequal parties so the law has to protect the weaker one more.

[โ€“] kurogane@sopuli.xyz 1 points 1 year ago

It is easy to set a time frame within which the funds are not distributed, and the donator can reclaim them back. I think that in this specific case, it boils down to whether the developer of the smart contract knows what they are doing, and acting in good faith. Fortunately, the opensource nature of smart contract allows anyone to double check the quality of a contract.

On the other hand, you have a strong point. Not everyone has the time, motivation, and knowledge to check whether a contract has the correct functionalities. The platforms and tools acting as intermediates are rare, not mature enough, and often straight scammy for now.

[โ€“] perviouslyiner@lemm.ee 7 points 1 year ago* (last edited 1 year ago)

Mandating that parties to a contract should all be on the same blockchain is surely no different than telling them that they all have to follow Australian law?

And in fact this is quite common - if you look at some contracts that you've agreed to in the internet age, they will usually specify a legal system - e.g. Delaware law or English law - to be used when interpreting the contract.