Hacker News new | ask | show | jobs
by mattdesl 1516 days ago
> 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.

6 comments

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.).
If this has been done many times in a way that solves my original question (decentralized escrow), there should be some concrete examples you can point to besides blockchain/crypto systems.
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

A centralized escrow is not heresy; it involves a different set of trade-offs. In some cases the decentralized escrow might be more appealing. To go back to my original example of a domain transfer, the exchange can occur in a matter of seconds or minutes within a blockchain, rather than 1 to 20 business days with escrow.com.

Never heard of Paxos, if it could achieve the same problems I've outlined earlier, I'd be curious to see it implemented.

> 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).

I think more importantly the integration with Ethereum network is done by third parties, so even if WOW hooks into eth, your eth assets are worthless without depending on blizzard to maintain that integration. So what was gained?
"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"

ETH Classic still exists, but the community came to the agreement that forking was the best way to deal with the issue. The only person who lost on that agreement was the hacker. Where as Blizzard can do whatever it wants. Surely you can see how a forked blockchain was a more democratic process than a centralized database.

A company like Blizzard that might define ERC20WoWGold can fork the blockchain to try and alter a record on their contract, but it would have little effect.

A successful fork requires a consensus across the majority of developers and users in the network.

> 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?
“We don’t need peer-to-peer digital assets when we can just trust [insert major tech corporation]” tends to be the common answer to my earlier question a couple comments up.
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.

you point an ENS name to an address (a public key hash). in a system built on private/public keys, it can be useful as an alias. the “IP”, or address in this case, is my own, because it is directly generated from a 24 word seed phrase.

this naming system has value for myself and the millions of other users interacting within the network.

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.