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.
> 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.
> 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.
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.
> record and alter global state without placing it in the control of a single centralized intermediary
Paxos solved this in the 90s
Never heard of Paxos, if it could achieve the same problems I've outlined earlier, I'd be curious to see it implemented.
Paxos family of algorithms solves distributed state replication. It is the backbone of the database engines that already power most of the internet.
Compare this to, say, Tezos domains: exchange and transfer of funds settled in ~30 seconds, without any need for currency conversion, across any ".tez" domain in the network, 2.5% commission (or 0% via custom contract), no private data shared with registrar, and very low transaction fees.
Looking at Paxos: it is permissioned, lacks Sybil protection, uses leader-based rather than peer-to-peer data replication, and seems limited in how many nodes it can support. This isn't to say it's useless, but it clearly aims to solve a different set of problems than Nakamoto's consensus mechanism (and, more generally, cryptocurrency networks).
> Compare this to, say, Tezos domains: exchange and transfer of funds settled in ~30 seconds, without any need for currency conversion, across any ".tez" domain in the network, 2.5% commission (or 0% via custom contract), no private data shared with registrar, and very low transaction fees.
You're not comparing the same products. Namecheap probably doesn't sell .tez, and you probably cannot buy a .com via Tezos. There are big differences between TLDs, I didn't even know about .tez websites until today. If I receive a .xyz link I tend to think it's a scam. If I had received a .tez link before today, I would have thought it was just a weird typo.
Beyond this, assuming equivalent products, there's no technical reason for the Tezos solution to be superior. Consider this: whatever Tezos is doing, Namecheap could do the same using the same technology (they don't have tougher requirements, maybe short of regulations, but I don't think you're talking about regulation arbitrage here anyway). They could just use a blockchain but be the sole entity allowed to interact with it.
Namecheap can get away with higher prices, so they do (it's a business). On the other hand many blockchain-based systems are highly subsidized (I don't know if that's the case for the Tezos domain system), making direct comparisons difficult.
If they decide to one day sell crypto domains like ‘.eth’ and ‘.tez’, they will be entering an extremely competitive market; and compete against marketplaces that trade any valid NFT (including domains) like Objkt.com and OpenSea, with commissions around 2.5%, no need for data sharing, and instant settlements. They would also be competing against custom contracts and OSS tools which may take no fees, and other directly peer-to-peer transactions like I outlined in my OP.
The point I’m trying to illustrate here is that there are reasons for choosing a decentralized and peer-to-peer system of digital assets & ownership over a purely centralized system, and blockchain is currently an ideal tech for this application.
You're assuming that the fees you pay Namecheap are representative of their costs. You could also say that Apple will never be able to compete with mid-range Android phones because iPhones are so expensive,. The point of a business is to make money, and the margin represents a big share of the price, so you can't just forget about it. The price / fees don't necessarily reflect anything about the business costs, especially in tech.
Blockchain-based solutions are usually cheap because they're either subsidized (like Uber was very cheap because it was just not profitable), because they offer a strictly worse product (almost no company wants a .tez) or a combination of both.
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.
Suddenly the answers begin to look a lot like Proof of Work or Proof of Stake.
Edit: at it's most basic, reliable coinage was kind of way to create reliable p2p abilities without risk of "double spend". Once the coins were out there, central authority didn't matter so much, i.e., "good" coins were used fair and wide beyond the coining state (e.g., Athenian tetradrachma). Funny add. in some areas people actually allow temporary double spend (so that can be another solution)...
Basically, for on-chain assets, a blockchain solves double spend and also ensures that on-chain funds/assets are correctly delivered (malicious attacks aside). This also exists outside of blockchains, for example in payment vs payment settlement in FX. Banks created CLS precisely to avoid having one part of an FX transaction settle while the other was still outstanding - so other ecosystems with immaterial goods and risky settlement found other solutions/created their own "middle man mechanic".
But they said peer-to-peer network.
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?
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...
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.
> 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.
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).
A successful fork requires a consensus across the majority of developers and users in the network.
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.
That question sounds like an XY problem.
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?
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.
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.
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.
this naming system has value for myself and the millions of other users interacting within the network.
Trusting a central authority (bank) is not a solution to trust-less prevention of double spending.
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?
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.
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.
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.
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.
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.
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.
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.
It is very easy to come to a shared consensus about what address “mattdesl.eth” points to, because the history is recorded on-chain, and can be verified locally. I’m sure the exact valuation of this domain will go up and down, but as long as the the chain and network continues to exist, the asset holds value within the network, regardless of what occurs with ICANN/TLDs.
AKA trust, so we're not transacting only with "a bunch of people that you do not trust".
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.
As a simbling comment desctibed it, "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."
These discussions often circle back to the notion that USDC, ENS, or any other ERC20 or ERC721 (NFT) is "not real" and therefore this problem is not worthy of study.
And yet nobody has an issue with Namecheap marketplace—a centralized ledger that manages token balances and virtual property exchange (domain names), without these token credits/debits ever being realized in your bank account (i.e. you can transact within their virtual dollar system without withdrawing funds to PayPal).
If nobody has an issue with it, why are you talking about an alternative to it? What's the benefit? Also note that Namecheap does sell domains that are then recognized by many other entities, it's not a "virtual property" that only leaves within Namecheap's system, it's something you end up owning in the legal world.
The "not real" argument is that you change your trust model as soon as you reach boundaries. Uniswap etc. are trustless, but only up to the point where the assets traded become real and are redeemed outside of the blockchain and some legal entity can actually back up the value of the tokens you traded. One of the selling points of Ethereum is that you don't need to trust anyone; if that's not the case, as we both agree, what's left? Why do you need Uniswap to be trustless when you rely on legal entities to ensure that what you're trading has some non-fictitious value?
You wrote:
> it can be used as a tool to help build social consensus about certain digital state/records without placing the data in control of a single centralized entity
If I try to parse this, you substitute some blockchain to the laws usually ruling relationships between entities, and instead of a judge, you use smart contracts to decide what happens. But again the scope is too limited to be useful, because the real world doesn't live in a blockchain, and the smart contracts will only rule a tiny part of these relationships. That's the token redemption example above.
this entire far-too-long discussion I’ve participated in stemmed from the notion that blockchain’s goals are already better solved by existing solutions. I asked for any that solves peer-to-peer decentralized escrow of a digital asset like a domain name; so far the primary response have been “you don’t need to do that since you can trust [centralized company].”
I’m gonna have to step out of this thread at this point but thanks for the discussion!
It's more like: you can try, but current blockchain-based systems don't succeed at this, because you do end up trusting one or several entities (you wrote "Using a blockchain doesn't mean you no longer need trust."). So even blockchain-based solutions don't solve this problem, and if they don't, it's unclear what benefit they bring, even years after.
So,
1. "a very minuscule subset of a very minuscule number of activities that people engage in", to quote myself, and
2. flash loans and "HFT" using speculative virtual tokens, so very much a circular reference
> And yet nobody has an issue with Namecheap marketplace
1. First time I heard of it
2. It doesn't pretend to be "redefining finance", or "being a revolution", or "destroying traditional banking", or whatever other bullcrap comes out of "DeFi" and other crypto
3. Never does it say anything about "virtual dollars", all prices are listed in real money, and the deposits you may make into your account are also real money
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.
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 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.
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?
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.
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.
I was just trying to point out that trust is not binary.
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.
You need to trust this other channel through which you're receiving it.
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?
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.
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?
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.
The game should be integrated with the blockchain directly, if I was unclear I apologize. That means, when you open the game, you need to use your wallet to connect to the game. You don't have a "Steam" account or whatever, you have your Web3 identity.
"Transacting digital assets on a particular market (be it a single blockchain or Steam or the WoW Auction House) is a solved problem"
1 of those things is not like the other. The blockchain isn't "a market", it's an economy. An economy with multiple markets... and it's your choice. Steam is a single market, and I have no choices.
If your assets are on the Avalanche blockchain (that's the avax I keep talking about) you can choose to use Trader Joes (https://traderjoexyz.com/trade#/) Pangolin (https://app.pangolin.exchange/#/swap) Sushiswap (https://app.sushi.com/swap) or one of the hundred other choices. If you want to buy items you can use NFT Trade (https://nftrade.com/) Kalao (https://marketplace.kalao.io/) or one of the other hundred choices popping up. It's an economy with choices and competition. Steam is a centralized market that sets the rules, and you either have to take it or leave it. They get to charge a premium for that privledge, and there's no possibility of competition to check that privledge.
Saying you prefer steam, is like saying you'd prefer to buy popcorn from a movie theatre over a grocery store.
But it could just as easily be integrated with a non-blockchain central authority.
And you are still trusting their code to integrate it, so you haven't solved any trust issue. Nothing stops their code from saying "asset transferred" when the asset wasn't actually transferred.
Blockchain solves nothing here. All of this could be accomplished just as well or better without it.
Sure, you could. But then you'e in a feudal arrangement instead of a free economy.
"And you are still trusting their code to integrate it, so you haven't solved any trust issue"
The tokens are trustless, the transaction of those tokens are trustless. How the are tokens used has nothing to do with my ability to freely trade the tokens.
"Blockchain solves nothing here. All of this could be accomplished just as well or better without it."
Well, perhaps you're just not trying to have a good faith discussion. Because I pointed out what it solves, and you keep ignoring it. The blockchain creates the ability to have a free market with many participants without having to be under the control of a central authority. Free markets are unquestionably better, and so I'd say "accomplished just as well or better" is just flat out wrong. A centralized service is not better unless you disagree that a free market economy is superior to feudalism.
The point of the transaction is to use the item, not to own the token. If the item can't be used, then you paid money for nothing (since obviously no one else is going to buy it off you either).