The minute you connect your blockchain to an app frontend you now have a degraded blockchain, one that cannot even in principle guarantee immutability, trustlessness, and decentralization – at least not for assets that the app's customers actually care about.
I get a lot of pitches for crypto-backed startups in my inbox these days, and virtually all of them suffer from fundamental problems. I've never been able to perfectly articulate the basis for my skepticism until just now. The problem is "degraded blockchains."
Let's back up and look at the promises of blockchain technology. I remember the day the Bitcoin whitepaper was first published – I read it cover to cover and was filled with excitement at the promises, only to be disappointed ever since. Blockchains are supposed to deliver the following things:
For blockchain enthusiasts, the problem with "fiat" systems like traditional banks or PayPal (or any other conventional digital asset, currency or otherwise) is that you are completely at the mercy of a single entity not to screw you over. The only record of your assets depends on a company-owned database (centralization) that they have absolute control over (trust), and that company can change those records anytime (mutability). Sure, there's all kinds of "soft" safeguards such as laws and regulations and the company's own reputation amongst consumers, but there's nothing that "physically" secures your assets.
Blockchain is supposed to fix these things because no single person owns the ledger, every node in the network has a full copy (decentralization), cryptographic hashing / mining makes it statistically impossible to forge transactions (immutability), and the protocol is designed in such a way that this can all be mathematically verified as sound without needing blind faith in any single source of authority (trustlessness).
It is a far from settled question that Blockchain can even deliver those promises within its own ecosystem, but let's just grant them for the sake of argument. The main problem is that I have yet to see an offering that connects a blockchain to a meaningful sources of value in the outside world without substantially breaking these three key promises.
In short, the minute you connect your blockchain to an app frontend you now have a degraded blockchain, one that cannot even in principle guarantee immutability, trustlessness, and decentralization – at least not for assets that the app's customers actually care about.
Here's what I mean. Let's imagine some NFT-backed game where I collect digital creatures. My ownership record of my digital Pikachu is stored on the blockchain.
It's immutable – no one can reverse this transaction!
It's decentralized – every other player has a verifiable record of my ownership!
It's trustless – no one in this blockchain can screw with my asset!
But, that's not quite true. What's stored on the NFT is a number, a mere digital IOU. In effect, the record stored on the blockchain is nothing but a pointer. The actual digital wealth that pointer references is stored entirely outside the blockchain – it's embodied on the servers of the game that brings my little digital creature to life and gives it context and meaning, and therefore value, to me.
If the app is using bog standard databases as intermediaries then the blockchain is super degraded. But even if you swear up and down that you are reading directly from the blockchain and don't have a trace of SQL anywhere in your stack, you still aren't avoiding the problem. The only thing that connects blockchain-stored numbers to the app itself is... trust.
Trust in a centralized, mutable, service.
Nothing stops the application developer from swapping out the blockchain backend with literally anything else, be it a standard database, or even another blockchain. And yes, even ethereum-based platforms that try to run scripts through on-chain smart contracts run into this problem. Nobody has yet found out how to cram an entire app entirely inside the confines of a blockchain without having to connect it to an external service that gives it meaning. Or if they have, I've yet to see it.
It may very well be possible to surmount this problem, but what I can tell you is that I've asked every single blockchain-backed game startup that's come across my desk how they will solve this issue and not a single one has given me a satisfactory answer. This may very well be an unsolved problem that will require a research breakthrough to overcome.
If you think your app can overcome the degraded blockchain problem, I would love to hear it!