Hacker News new | ask | show | jobs
by mightyRodri 1512 days ago
There is no baby. The technology does not solve technical problems that havent been solved better. The only thing bchains does is give ppl with a lot of money to become stakeholders, the possibility to comodify even more parts of the internet. Thats the only upside of the technology, scam ppl for their money.

https://www.stephendiehl.com/blog/against-crypto.html

https://web3isgoinggreat.com/

4 comments

> technology does not solve technical problems that havent been solved better

Critics like Diehl repeat this often, but without ever referencing the solutions. What non-blockchain solution solves the double spend problem when transferring digital assets in a peer-to-peer network? Or, in the case of Ethereum, providing solutions to general-purpose decentralized computation and state (rather than only peer-to-peer payments) with such strong public consensus?

I would love to see the following succinctly solved by a non-crypto and non-blockchain solution:

- User A holds digital asset X (such as a valuable domain name "xyz.eth") and User B holds digital asset Y (such as a valuable sum of stablecoin tokens) and these users wish to exchange them in a single public + cryptographically verifiable transaction (i.e. atomic swap), without relying on the trust (and for-profit services) of a third-party escrow agent.

You're being willfully obtuse here.

> What non-blockchain solution solves the double spend problem when transferring digital assets in a peer-to-peer network?

Literally any trusted central authority or database.

> Or, in the case of Ethereum, providing solutions to general-purpose decentralized computation and state (rather than only peer-to-peer payments) with such strong public consensus?

You haven't actually stated a problem here, you've described a solution in search of a problem.

> User A holds digital asset X (such as a valuable domain name "xyz.eth")

You're mentioning a .eth domain name being bought with cryptocurrency as an example, which is entirely circular. "Hurr durr, betcha can't swap one blockchain thing (.eth domain) for another blockchain thing (cryptocurrency tokens) without using a blockchain" isn't as strong an argument as you think it is. If we were talking about a .com domain name, no blockchain in the world will help you with that transaction.

As usual, “just trust Amazon or Google” which is centrally owned, and not peer-to-peer (distributed/decentralized), and not an answer to my question.

> You're mentioning a .eth domain name being bought with cryptocurrency as an example, which is entirely circular. "Hurr durr, betcha can't swap one blockchain thing (.eth domain) for another blockchain thing (cryptocurrency tokens) without using a blockchain" isn't as strong an argument as you think it is. If we were talking about a .com domain name, no blockchain in the world will help you with that transaction.

Your argument feels in bad faith, but I’ll bite: “.eth” and ENS is a valuable construct for those transacting in the network. These assets do have clear market value, even if you personally feel they shouldn’t.

Nothing is stopping a peer-to-peer network from having a central database administered by the a randomly selected group of peers, for example.

The bigger issues in pure decentralized and distributed networks in finance are around KYC/CFT etc. Who ensures compliance if there is no control about flow of funds, for example.

What you are suggesting sounds like a consensus mechanism. How do you safely choose which peers to assign this responsibility? How do you ensure it is resistant to a Sybil attack?

Suddenly the answers begin to look a lot like Proof of Work or Proof of Stake.

The answer could or could not look like that. In practice people have done this many times throughout history totally without blockchains (or computers) for that matter (e.g., money transfer systems, exchanges, etc.).
So how do you coordinate this so called decentralized transaction? Over the internet through SSL certs that are centrally signed? You're still putting blind trust in something.
Transactions are broadcast with RPC. Once accepted and written to the ledger (ie: after a number of confirmations), you can verify the state of the transaction via your own local node.

It is impossible to completely remove the need for trust. We trust that our computers work as expected, that our modems and routers are not compromised, that RPC endpoints and software is running as expected, that the internet infrastructure in our country is sending messages correctly.

The blockchain isn’t a catch-all solution to our need to trust things in life. But it does allow us to, say, record and alter global state without placing it in the control of a single centralized intermediary.

You trust the private companies/individuals making your hardware and protecting your communications but suddenly trusting a private escrow is heresy? Seems like a weird double standard.

> record and alter global state without placing it in the control of a single centralized intermediary

Paxos solved this in the 90s

> Literally any trusted central authority or database.

But they said peer-to-peer network.

> User A holds digital asset X (such as a valuable domain name "xyz.eth") and User B holds digital asset Y (such as a valuable sum of stablecoin tokens) and these users wish to exchange them in a single public + cryptographically verifiable transaction (i.e. atomic swap), without relying on the trust (and for-profit services) of a third-party escrow agent.

OK, how do they do this? Let's say X has 1M gold in World of Warcraft, and Y has 100M Gil in Final Fantasy XIV. How can X and Y use a blockchain to exchange these atomically?

If both assets are defined by the same blockchain protocol, a contract can be written that provides both users the ability to deposit the two assets into it. Only once both assets have been deposited will the atomic swap occur. And at any point before this, a deposit could be safely withdrawn (ie: if other party backs out of deal).

Edit: if your question is “how does this technically look in practice”, here is an example: [1]

[1] https://github.com/niftyhorde/swap.kiwi/blob/master/contract...

You claimed that blockchains solve the problem of atomically transferring digital assets. I gave an example of two digital assets I may like to transfer.

Please tell me how Ethereum solves the problem of exchanging WoW gold for FF14 Gil in a trust less manner.

The problem of transferring digital goods controlled by the same entity in a trust less manner is trivial and solved by many technologies predating Bitcoin. I can already trustlessly sell a piece of copper in World of Warcraft for gold without involving any other third party.

This is a pretty stupid argument; WoW and FF14 gold are not assets defined on the network. The goal of Ethereum is to record Ethereum-based assets (e.g. ERC20, ERC721), not to record the exchange of every asset on the web.

> I can already trustlessly sell a piece of copper in World of Warcraft for gold without involving any other third party.

In this case the third party is Blizzard Entertainment, who can control the state and data.

> In this case the third party is Blizzard Entertainment, who can control the state and data.

And in the case of two Ethereum based assets, the third party is the Ethereum network, which can be forked to control the state and data (as it was after the DAO fiasco).

> What non-blockchain solution solves the double spend problem when transferring digital assets in a peer-to-peer network? Or, in the case of Ethereum, providing solutions to general-purpose decentralized computation and state (rather than only peer-to-peer payments) with such strong public consensus?

That question sounds like an XY problem.

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

Yes, Blockchain does indeed solve the problem it creates.
These problems (the desire to find peer-to-peer systems to transfer and record digital assets) predate blockchain/crypto.
And they were trivially solved by trust.
Trusty ol' FAANG.
What does FAANG have to do with exchanging money?
And believers always pull of this subtle shift in frame: you bring in trust-less peer to peer decentralised networks, and of course there's no other solution, because it's a setting invented by the same people who came up with cryptocurrency. The rest of the world relaxes the trust-less assumption and talks about Web of Trust, about decentralised roots of trust, federation etc.

And this is a rhetorical technique: When we talk about economics, we talk about business or human problems. But the trustless-online-decentralised-ledger problem is a technical one. So the GP was saying "there is no business problem that crypto solves that hasn't been solved in a better way already. And then the crypto-bros come in and say "nuh-uh! If you for whatever reason want to run digital assets on physical infrastructure that needs to be maintained off chain without trusting anyone (say, the person the network depends on for maintaining the power infrastructure) then this is the only solution!".

YES! Well done. This is even useful, in a horrible hellscape where dog eats dog, everyone carries their own portable nuclear reactor and uses unstoppable point to point laser communication to run the internet and we forego all of the efficiency gains offered by using social consensus and democratic decision making to build webs of trust and centralised infrastructure with checks and balances (for example, by having the root certificates expire and be re-legitimised by some social ceremony repeatedly...say in an election). But in the real world, at some point everyone wants to build a society, put some basic trust down and improve living standards. And while people like Putin and the Kims and warlords still alive can fuck this up

1. They generally only survive because they are leeching of the more functional parts of society which uses trust (not unlike crypto with its Ponzi structure)

2. Crypto won't save you from them because they'll physically take away your electricity and/or torture you to get your keys

So what problems that aren't technical toy problems but real business and coordination problems in realistic settings (remember, if you have a state you trust to protect your private property rights, you can probably also use that to run the root certificate and organise the ledger) does crypto solve again?

Consider a simple answer: my ENS domain is one of the few digital assets I own (and have “digital ownership” over) that is not inextricably linked to a single corporately-owned user account (that ultimately has full control over the asset).

Perhaps you do not see a value in that, or do not feel the risks outweigh this benefit, which is fine. We are acting on a different set of interests.

What is is it good for compared to a traditional domain? If it's censorship resistance,if you break the laws of your country using it, how will you hide from the police trying to force you to take down the content?
The whole point of the distributed ledger is that no single entity can “take away” ownership of, say, an ERC721 (NFT, which domains also are) without access to my keys. Websites can de-list this but anybody can still see it clearly indexed in the blockchain state as the system is distributed.

I am not doing this to be censorship resistant from police (who can force me to give up my keys).

The point is that, rather than an asset owned by X company or Y bank, it is owned by me (in a decentralized system). eg: A tech company being acquired or shuttered will have no bearing on my ownership of and ability to transfer this asset.

So again, what can you do with it? What's the usage except "I have it and you can't"?

Because, if you use it to point to an IP, who's giving you that IP?

An asset has value, just because you call it an asset doesn't make it one.

Wait, are you saying that scenario has been solved (or is solvable in the future) by blockchain? Where can I learn more? Is eth even a real TLD?
.eth is a TLD for crypto addresses (the system is called ENS). Instead of saying, send it to 0x827DCAB38F00624466A99211e9c5a48b9D6Ec14D or whatever I can say "send it to myname.eth". The ENS is an NFT, so all the NFT infrastructure can be used to manage it. NFT's are generic digital assets so any marketplace can do the swap. The major downside is that gas on eth is SUPER expensive, when I regestered my ENS name, it cost $5 for the name, and $200 for gas. On the other hand, ETH is an obsolete chain (there is a v2 coming, and L2's are starting to come on, but V1 is obsolete... lets be honest), and some new more modern chains solve the problem better. I have a .AVAX name (not fully deployed yet) which cost $15 for the name (which has a weird public notice period thing, kind of interesting) and $.15 for gas. Again, it's an NFT, so I can use any of the numerous marketplaces to buy and sell it.
double spending problem, anyone ?
Every banking system ever? At vastly lower energy waste, at higher transaction rates, and with all the legal protection of centuries of well developed needs.
> trust-less

Trusting a central authority (bank) is not a solution to trust-less prevention of double spending.

>Trusting a central authority (bank)

Strawman?

A bank is not a central authority any more than large mining pools are central authorities. Or China (when it controlled enough BTC to double spend at will).

The banking system is vastly distributed. Trust is a giant network of accountants, central banks, regulators, investors, and lots more that help ensure there is no double spending. There are checks all throughout the system, ledgers, reports, audit trails, and, unlike BTC, when something is actually stolen, lots of protections and methods to claw back stolen money.

BTC can be double spent via majority control, so double spend protection is at best a statistical claim, just like real banking.

A large problem with Bitcoin is developers were unaware of modern (or even ancient) banking and money systems and have tried to reinvent simple money with all the same problems that mankind moved from millennia ago.

Then people unaware of the why of modern money systems think crypto solves an important problem that modern economies and users don't care about, while ignoring all the problems modern systems solved as if they don't exist.

And honestly, in all my life, I have never heard of anyone in the normal banking system double spend. So chalk one more up to the Bitcoin make believe event crowd. How many double spend events have you performed in your entire life via normal banking?

Why does it need to be trustless? And why is it worth paying such a premium for it?
For me, bitcoin solves very real problems that I wouldn't be able to solve without it: getting paid circumventing Putin's banking system.
What does the Russian president have to do with anything in that context?
He is a dictator who controls money flowing in and out of country, using the tax revenue to fund his regime and wage war. He can't tax or block bitcoin payments, or steal proceeds by forcing foreign currency sale at a very unfair exchange rate.

Bitcoin helps live without paying taxes and fund opposition without repercussions. In fact, cryptocurrency payments are the only way for Russians to fund anti-Putin opposition. So anyone who says that cryptocurrencies are useless, please, kindly, stop saying this nonsense. If you are lucky to be born in a first world country you simply don't know how easily banking can be used to suffocate a person in a (lawless) cashless society. Bitcoin is a hedge against that, and a powerful one.

What technical solution do you have for multiple parties needing to transact where they do not trust each other and cannot depend on a third party or the court system for dispute resolution? I'll wait.
If you’re transacting with a bunch of people that you do not trust then the payment rails are the least of your problems.

Your comment just feels like typical crypto-booster vague handwaving to me - can you give an actual example of such a situation where the existing third parties that alreayd exist to solve these kind of problems cannot be used? Be concrete.

I gave an example here[1].

The typical answer is "just trust a third-party service" which side-steps the constraints in the question.

FWIW there is a variety of reasons you may not want to use a service like escrow.com — they take a cut of the exchange, operate as a for-profit business in a particular US-based jurisdictions, only operate on a limited set of currencies, request personal/private data sharing, and tend to settle the transaction in days, not seconds or minutes.

[1] https://news.ycombinator.com/item?id=31190423

Your example only works because you're considering an asset that lives in the blockchain itself. So it doesn't apply to anything physical, as in this case, you need a trusted channel to transfer the asset anyway, and a blockchain doesn't solve that.

Even considering only these digital assets, you have an implicit notion of trust. The xyz.eth representation on the Ethereum blockchain is considered valuable because most people think it does represent what people expect to find at xyz.eth. But the ICANN can change this at any moment by adding .eth to https://en.wikipedia.org/wiki/List_of_Internet_top-level_dom... and this will all be gone.

Humans don't live in a blockchain, and blockchain rules don't apply outside of it, so you can't solve this boundary problem. Or rather, you solve it by trusting whoever's in charge of this boundary.

The whole point is peer to peer transfer of digital assets and digital state that is recorded on-chain. The goal is not “how to transfer a physical asset.”

These assets do have market value (despite your own personal feeling on what they “should” be worth) and so users do wish to find ways of interacting with and trading them without an intermediary.

The TLD/ICANN is irrelevant, as “.eth” is a construct for Ethereum clients, not HTTPS clients.

And yes, we build trust of, say, an immutable contract address originated by a human, and continue to trust in it years later because (a) the ledger is incredibly expensive to dismantle and (b) we can cryptographically verify this on our own local node.

> The whole point is peer to peer transfer of digital assets and digital state that is recorded on-chain. The goal is not “how to transfer a physical asset.”

Yes I understood where you were going. Just pointing out that the scope of the problem you're solving is way smaller than that of a generic transaction, to the point that it has very little relevance for pretty much anything real.

> The TLD/ICANN is irrelevant, as “.eth” is a construct for Ethereum clients, not HTTPS clients.

What do you think would happen to the value of the xyz.eth domain registered on Ethereum if ICANN decided to have .eth as a TLD and somebody made a website on a xyz.eth reachable natively via mainstream browsers?

This value would decrease, independently of what actually happens on the blockchain. Value doesn't exist independently from the real world.

Trusting a certain smart contract about what's at xyz.eth rather than another is also arbitrary and is a matter of social capital, again something that's not embedded within the blockchain.

> of digital assets and digital state that is recorded on-chain. The goal is not “how to transfer a physical asset.”

Even with "purely digital assets" you have the trouble with oracles that provide you with data and whom you must explicitly trust, and with trust in general (when someone sells you NFTs that may or not be stolen from someone else).

The sum total of "p2p transfer of digital assets and digital state that is recorded on-chain between parties [without intermediaries - d.] that don't trust each other" is a very minuscule part of a very minuscule subset of a very minuscule number of activities that people engage in.

I always thought the grocery supply chain was a good example use case. Multiple parties (seed origin, farmer, fertilizer manufacturer and/or dispenser, pesticide manufacturer and/or crop duster, harvester, transporter(s), grocery association, grocer) who all handle any given tomato, all with incentive and opportunity to lie to some other members along the chain, but not to their immediate neighbors. Plus, even who the members ARE is not necessarily known from the beginning (eg the destination country for produce in the EU is decided based on market conditions when it's already en route). And the end consumer (or their representative in the grocery store) cares about the entire origin chain. (By which definition(s) is this tomato organic? How was this chicken treated? What was this cow fed? What's the real carbon cost? Etc)

In order to solve this in a centralized way, you need to sign up and authenticate literally all the farm organizations in Europe, and all the competing grocers and transport companies. They all need to sign that they trust the third party service to be a fair and neutral record keeper... the third party company which has enormous financial incentive to cheat, on behalf of literally all its customers.

But with distributed ledgers with attestation, the record is unfalsifiable. Each tomato can have its own blockchain with attested entries from each fertilization, spray, and transporter, all added and attested at the point where lying is hard and the value of the lie is low.

You could achieve this with paper and signatures for each tomato, but it would be a lot of paper.

This is a very good example of the typical argument that shows the critical flaw.

The flaw is that there is never any way to actually tie the real world to the Blockchain. It's literally impossible. You can have all the fancy mathematically proven Blockchain records you like, but it's just impossible to tie that to an actual tomato or actual pesticide.

We have track and trace system already for crops and they have the same problem: all the paperwork in the world can't prevent someone from, say, weighing a box of tissues instead of the box of cigars you intend to sell. In the end you need to trust someone.

I'm a huge blockchain advocate, but I 100% think this is an important point people need to understand. The blockchain is a great solution for pure digital assets. Its an awful solution for physical stuff.

I think this is a holdover of thought from bitcoin. Bitcoin wanted to be a currency for our real world economy. It never became more than that for many reasons. ETH (and now more modern chains) have become more than currencies. They are digital economies. Physical items are foreign goods in a foreign jurisdiction the local economy has little control over.

Even within crypto, different L1's are like foreign economies, and moving assets cross chain is complicated.

How do you tie real world tomatoes to NFT tomatoes? Who verifies this? How do you tie an NFT of a grassfed chicken to a real world grassfed chicken? Who verifies these chickens are actually grass fed?
You don't understand. People didn't have tomatoes and grass-fed chicken until Blockchain came along and solved these problems. /s
> all with incentive and opportunity to lie to some other members along the chain, but not to their immediate neighbors

And how does blockchain prevent them from lying?

> you need to sign up and authenticate literally all the farm organizations in Europe, and all the competing grocers and transport companies. They all need to sign that they trust the third party service to be a fair and neutral record keeper

Instead they all need to sign up onto the blockchain and lie directly on the blockchain

> Each tomato can have its own blockchain with attested entries from each fertilization, spray, and transporter, all added and attested at the point where lying is hard

Fertilizer put on the record that tomatos are fertilized.

Sprayer put on the blockchain that tomatos were sprayed.

Transporter put on the record that tomatos were transported.

You arrive at the shop to find rotten potatoes instead.

How did blockchain help?

Also note that in this current world that is so horrible according to you you arrive at a shop to find tomatos that have passed all inspections and have been delivered to you. What eaxctly does blockchain intend to solve?

My suggestion is: "grow up".

All of human society is based on trust, and it works just fine and has for centuries.

Who would even want to live in a trust less society? That sounds like hell.

I might trust someone enough to give them $20. I might not trust someone enough to enter my credit card details on their webpage.
That's why we have things like paypal and temporary virtual credit cards.

Many kinds of fraud attack the fallible human element, not technology. And blockchains cannot change that, as you can see with a glance at crypto news.

The technical solution to that is temporary CC numbers, not a giant crypto chain.
Sure, that's one technical solution, assuming you can get a card.

I was just trying to point out that trust is not binary.

Trust is a short-cut for the complexities the physical world presents. But in a purely digital world you can build things that doesn't NEED the short-cut. And that's a new capability. It let's you build things not possible before. DeFi exists because trustless transactions are possible. Not everything can and should be trustless, it's just a tool not a new society. But it's SUPER useful.
This is not a technical solution.
Growing up is also realizing that some problems require non-technical solutions :).
Sure, but it also makes it not an answer to the question which was asked.

And just because the technical solution to a technical problem might not be (/isn’t) a good/practical solution to the practical problem that the technical problem is inspired by, doesn’t make interest in the technical solution illegitimate.

That only holds if you donate your BTC. In practice you want to buy something with it. How do you guarantee that you do receive the thing you're buying once you've given your BTC?

You need to trust this other channel through which you're receiving it.

Are you implying that block chains solve this?

So, I can buy a car from someone I don't trust by using a blockchain, with no need to rely on courts or other third parties?

A digital car... yeah.

The more i've tried to hack with smart contracts for physical stuff, the more I realize that's not what it's good for. But if you stop thinking of the physical world, and only think of the digital world, and you use a modern chain (I use avax). It works pretty good. I think there's a few missing pieces of infrastructure still, but the people who "are in it to build, and not for the money" (I include myself in this) stick around to build what I consider the first purely digital economy.

Ok, then how can I buy a World of Warcraft mount from another player I don't trust by using my Final Fantasy 14 money and a block chain?

Or, if that's too silly, how do I buy a .com domain name in exchange for some ETH, assuming neither I nor the seller of the domain name trust each other?

These are all digital goods, so can avax help me do it?

The games needs to be built to allow this, however here's how it works for games that do implement it.

This is using the C-Chain. Most games now would use a subnet (which is like a parallel blockchain integrated with the mainnet, but cheaper transactions)

1. Dev Create an ERC721 contract for WoW items

2. Dev Create an ERC20 contract for Final Fantasy 14 money

3. ANYONE can Create a liquidity pair for the Final Fantasy ERC20 with AVAX in one or more of the numerous dex's (since i'm using avax, probably using Trader Joe's)

4. Players Swap Final Fantasy money for AVAX, use AVAX to purchase WOW NFT at any of the numerous NFT marketplaces.

Sure, if I'm allowed to change the games, I can link them even without a block chain. Transacting digital assets on a particular market (be it a single blockchain or Steam or the WoW Auction House) is a solved problem, and is not helped in any clear way by adding a blockchain in the middle.
Don't sell illegal drugs?

Sure there are countries with no functioning legal systems and extreme levels of corruption but most people affected by that would probably have a hard time using blockchain technologies directly and would have to rely on 3rd parties anyway.

Why don't you give your answer to these questions first? I'll wait.
Obviously given the context here, various blockchains meet these requirements.
So you're claiming this is a rare case for which Blockchain is useful, but outside this rare, niche case normal banking is better?
When you rig the questionnaire to arrive at the exact answer you were looking for to begin with...
When you use bitcoin, you actually rely on a third party to validate your transaction. A banking organisation can also be a third party.