Hacker News new | ask | show | jobs
by louwrentius 2024 days ago
> In the case of Ethereum, digital scarcity secured by a blockchain enables a turing complete state machine that the world can use.

Does this sentence actually mean anything?

> In the most basic terms, this will remove clearing houses for transactions of assets. In the long term this will lead to novel types of assets, and make ownership extremely liquid.

What does this mean in concrete terms?

> Imagine using your phone to buy shares in a recording artist you just discovered, and selling those shares when they win a grammy. Imagine building a stream of passive income based on the shares you've earned in projects you've worked on throughout your life.

Who wants this?

2 comments

> ”Does this sentence actually mean anything?”

In more traditional software engineering language, it means “you can run stored procedures on an incredibly slow and limited distributed database.”

Also those stored procedures are immutable, written in a language with more holes than Swiss cheese, and you have to use a scammy cryptocurrency to pay for the privilege of running these unsafe programs. The adherents call this “web 3.0” in some kind of ironic joke because it’s nothing like the web.

> Also those stored procedures are immutable, written in a language with more holes than Swiss cheese...

You're probably referencing this fuck up: https://en.wikipedia.org/wiki/The_DAO_(organization)

The huge advantage of smart contracts is that they are supposed to be trustless - you don't need to necessarily trust your business partners because contract is set in stone ... code and will be executed exactly as agreed beforehand.

In reality, you move your trust in your understanding of the code. But then when 18 000+ (probably highly technical) people investing $50 million don't spot the bug in the code, then it calls the whole "trustless" concept into question.

You don't have to go back that far in time, 'hacks' and bugs in 'smart' contracts happen almost every day. Here's a recent $7M loss: https://cointelegraph.com/news/yield-generating-stablecoin-p... and here's a $89M loss less than a week ago: https://decrypt.co/49657/oracle-exploit-sees-100-million-liq...

It's not even the first time that the 'Compound' smart contract has been 'hacked', but that doesn't stop fools from putting more money into it again.

All these fuck ups are called 'hacks', but actually the code is working exactly as intended, it's just that there are so many ways to write smart contracts incorrectly that it's more than likely they all have hidden bugs, just waiting to be exploited.

"I'd like my investment bank to be an immutable, unfixable piece of code that's a sitting duck target for hackers"

-- nobody ever (except Ethereum ideologists)

Because no code in the financial sector has ever screwed up. Oh wait...

https://en.wikipedia.org/wiki/2010_flash_crash

Oh Oops...

https://en.wikipedia.org/wiki/Knight_Capital_Group

Exactly. Now imagine how bad it would be if the code handling this kind of money was on Ethereum where bugs are forever and failures irrevocable.
Have any ethereum "hacks" ever been prosecuted?

It seems like there would be a reasonable argument that taking value from a contract as defined by code (even if not the intention of the programmer) is not theft.

But would be very interesting to see how a court interprets this.

That doesnt sound like an $89 million loss just unexpected liquidations in loan contracts governing that amount of money
Hmm, this reads like something I do understand, thank you.
Turing completeness in layman's terms means you can write programs on it.

Traditionally a computer that most people are familiar with is a single machine, like PC or the device we can hold in our hands. Etherium is a swarm of millions of computers that anyone can add to the swarm.

When people claim Ethereum is turing complete, it means that anyone can launch a program into it, and the "swarm" runs the program. But which node's output is the truth? Without some mechanism in place, a bad actor could claim to have computed an output that serves them greedily.

Ethereum has baked in protocols so that the distributed result of millions of nodes running a program reaches a stasticial consensus.

Being turing complete means that any computable program can run on Ethereum.

So you can imagine writing a program that, say, runs an auction, or performs escrow for contractors, or whatever. You could run doom on it, albeit at an extremely low framerate because you need the swarm to validate each frame.

I hope this explanation helps.

Edit: I swear autocomplete is becoming more forceful over time.

> When people claim Ethereum is turing complete, it means that anyone can launch a program into it, and the "swarm" runs the program. (...) Ethereum has baked in protocols so that the distributed result of millions of nodes running a program reaches a stasticial consensus.

Usually the reason to run something on more than one computing unit is to achieve additive gains - like getting results faster, or processing more data in the same amount of time. This however sounds like a million computers computing the exact same thing. Why would one want to do that? It's a serious question - I'm having trouble imagining a generic use case.

This is to achieve consensus - the N nodes running the smart contract will ideally replace the central authorities that we implicitly trust.

This enables trustless transactions, which gets rid of a lot of business red tape and unlocks productivity.

Only for a really weird technical definition of "trustless". You have to trust that the smart contract does what's intended, in the way you think it does so. So you need to either trust someone who knows the relevant programming language to audit it, or learn enough to audit it yourself. VS legal contracts, where you have to trust a lawyer to audit the contract but at least have the benefit of laws and bar association ethical rules to constrain the lawyer's behavior. Either way, in practice most people will have to trust someone to safely use any smart contract.
The way I understand smart contracts and them being trustless is that they are effectively an escrow.

So yes, each person participating has to do their own due diligence but once the smart contract is live, it is immutable and therefore trustless since it's just code.

> This however sounds like a million computers computing the exact same thing. Why would one want to do that?

It is what it sounds like, and it isn't ideal. In order for the Ethereum network to reach an agreement on the result of a computation, multiple nodes need to do the computation to check each other. How do you decide how many nodes need to do the computation for it to be accepted by the network? That's not an easy question to answer. The simplest and safest way is to require 100% of nodes to do the computation. Safely getting that % down from 100 to increase the throughput of the network is a problem actively being worked on.

As for a generic use case, think of Ethereum as something like AWS Lambda that happens to have native support for transacting assets.

Can you provide an example where a smart contract needs unbounded loops or unbounded recursion? Do you really need Turing completeness to begin with?