Be prepared and brace yourself. When you read this, you may feel enraged and confused, confused, and angry enough to hit the screen. (Don’t do that.) Consider this a trigger warning..
Bitcoin is a database. period. That’s it. A blockchain is a database that stores past updates so that the current state of that database, a set of UTXOs, can be reproduced. The entire Bitcoin protocol is built on: database. What are valid entries in that database, and what are not valid database entries? Who can suggest items to that database, and how do you ensure that only those users’ items are considered and accepted? What authentication mechanism restricts writing items to this database? How do you regulate database entries so that people can’t create so many entries that they overload or crash the software that manages the database? How do you ensure that people can’t create a single item large enough to cause other denial-of-service issues?
It’s about databases.
Proof of work? The whole purpose of the protocol is to manage who can actually handle database updates. Since Bitcoin is intended to be a decentralized system, it needed a way to update the database in a decentralized manner while also allowing users to agree on all individual copies of the database with a single update. If everyone updates their own copy of the database, there is no way for everyone to agree on a single version of the database. If you rely on a few authorities to handle updates, the update process isn’t really decentralized. The point of POW was to allow anyone to process updates but incur no verifiable cost to do so.
Proof-of-Work is simply a decentralized mechanism for database updates.
Full P2P network architecture? It exists only to propagate proposed database update items (transactions) and final database updates (blocks). Do nodes verify transactions when they enter the mempool? The idea is to pre-filter proposed item updates to the database and ensure they are valid. Are there nodes that check if blocks meet the required difficulty goal? The idea is to pre-filter proposed database updates and verify that they are valid before passing them on to other nodes to update their local copies.
P2P networks exist purely to coordinate multiple copies of the same database.
Bitcoin script? It literally exists for the sole purpose of functioning as an authentication mechanism for database entries. To delete an existing item from the current database state requires a UTXO set, the user proposing that update must provide authentication credentials that meet the script conditions to lock the existing database item. You can only “use” an existing item or UTXO to authorize the creation of a new item in the database. Miners are the only users of the protocol who can create entries without having to meet the conditions that would remove existing entries by meeting the authentication requirements specified in the lock script.
Bitcoin script is just a mechanism to control and limit who can write to the database.
Every single aspect of Bitcoin revolves around a core central function that maintains a database and ensures that the many network participants who maintain separate copies of that database all stay in sync and agree on the current state of the database. All the properties that make Bitcoin valuable as a form of money or a means of payment are: It literally derives from the way it operates as a database..
Many people in this space believe that this database should only be used as a means of payment or as a form of money, and I agree with that view. I too believe that this is the most important use case, and that every effort should be made to scale that particular use case as much as possible without sacrificing the sovereignty and security of being able to interact directly with that database. .
But when you boil it down to the objective reality of what Bitcoin is, it’s still just a database. Those willing to pay a fee denominated in satoshis to create an entry that is deemed valid according to the rules of that database may do so. There is nothing they can do to stop it unless they change what is considered a valid entry in that database. This means that everyone else must also be persuaded to adopt a new set of rules about what is valid.
People are free to compete within the consensus rules and write what they want into this database, as long as they pay the fees required by the mining rules and incentive structure. period. A lot of the things people can and are entering into databases are stupid? yes. Of course it is. The internet is full of stupid things that live in siled databases. Why is that? Because people are willing to pay to put stupid things into databases.
It doesn’t matter whether database users pay a provider to operate it, or whether they allow operators to enter certain entries as part of their work without passing the cost on to the users. These stupid things only exist somewhere in digital form. Because in some ways it pays to do so.
In that respect, Bitcoin is fundamentally no different from other databases. The only difference is that there is no single owner or gatekeeper dictating what is allowed and what is not. Any owner of a copy of the Bitcoin database can allow or disallow whatever they want. The problem is that when you decide to reject what everyone else thinks is acceptable, you break out of agreement with everyone else. Your local database will no longer be in sync with the global virtual database that everyone else follows and uses.
If certain database entries are not allowed, be sure to change the rules by which your local copy validates new entries. But that’s cutting off the nose to spite the face. Ultimately, Bitcoin is based on one simple principle: pay and play. People can play if they pay a fee. That’s how it works.
Ultimately, it is entirely up to every individual what they will and will not allow in their database, but looking at all the semantics and philosophical debates going on, one thing remains objectively true without a doubt: Bitcoin is a database.