How is the blockchain different from a read only ( write only once to be specific) DB that follows ACID?
Blockchains add cryptographic signing and limit actions based on those signatures.
How can you trust that the database is really append only? Blockchain provides a way to verify the state of the database and the ordering of the transactions. Beyond that, not much benefit to be had. However, for certain situations, that is a very big benefit!
Sure! So some students of mine were working on a multiplayer video game that was started by a different group of students the previous semester. The first group of students made a design choice that, to over-simplify, basically tracked achievements and milestones on the client side and then synchronized those achievements to the server. Players could cheat the system by sending malicious packets of achievements to the server. Some achievements could only be completed by a single person in the game, so this was a big problem for the 2nd group of students to overcome. Faced with the choice of rearchitecting the game to be more authoritative on the server and less resilient to frequent disconnections, which affected some aspects of the game, or creating a logical and verifiable sequence of in-game events on the server side. The students went with the latter, and implemented a Lamport clock using a blockchain to verify the authenticity of the events, and prevent a rogue student from updating the game later to give themself a bonus. Basically, along with needing an authoritative sequence of events that is protected from user interference, it also needed to be protected from developer interference.
It was kinda similar to that situation a few years back of the EVE online developers playing the game and giving their guild members certain bonuses and special in-game items. The solution there was to fire the malicious developers, but I can’t exactly fire an entire class of students from an educational project.
EDIT: What seems to be the problem here? I was asked to name a situation where a blockchain would be useful and I did? It’s a computer data structure, there are pros and cons that are context dependent like any other data structure. It I so weird to me to receive downvotes because of the politics surrounding a data structure.
It’s distributed so no single entity can take it down. Among many other possible benefits depending on architecture and infrastructure.
It’s far more complex than coins and NFTs. Blockchain is like a new internet. Coins and NFTs are like those shitty GIFs you used to see everywhere. Evocative of old internet, but not the internet itself.
This isn’t true: there are not-distributed blockchains.
The definition of a blockchain is a ledger where every entry is cryptographically signed with a hash of the current entry plus a previous entry. There’s no requirement that this be at all distributed. In fact, QLDB uses a non-distributed blockchain as its audit log.
Blockchain are often used in distributed systems because of the verifiability of the records; its a way of providing security of history in a fundamentally insecure environment. But there’s no requirement that they be distributed, and they add value in non-distributed environments as well - in any case you want to be able to review a history of changes and know that someone hasn’t been cooking the books, for instance.
I’ll give a real-world example. One place I worked we had databases that had data constantly streaming in from many different sources. Something that would frequently happen would be some data issue that would break applications; often, this was bad data from sources outside of our control. Ops*, who’s only priority was to get the applications back up and running, would often track down and directly modify records and fix the data. The issue was that some time later, sometime days later, a customer would call and complain about data being incorrect. By then, it was impossible to figure out what had happened: did we get the wrong data from the source? Did one of the import processes mangle the data? Did someone poke around in the database and change the data? We had no way of telling, and investigations would take many hours, often from several senior people, who would frequently in the end have to shrug and say, “we don’t know.” There were lots of things that could have improved this, with varying levels of success, but a global audit log would have been the first step. A verifiable audit log would have been better, because often it’d come down to us being convinced the data a third party was giving us was bad, and it became an our word vs. their word since we shared the same client. If we’d had a blockchain layer through which every transaction was recorded, we could have rolled back in time and figure out exactly how a record came to be what it was and been able to prove it to the client.
Blockchains are awesome. People who say otherwise have their heads up their asses, and are unable to differentiate between blockchain the technology, and the sometimes questionable uses they’re put to. Iron is used to make guns and bombs; that doesn’t make iron bad.
Edit clarification
-
- “Ops” as in “operations”
Thank you for being in this thread. I felt like I was taking crazy pills with all these other replies. So many people think bitcoin was the first blockchain. And that the paradigm used by crypto is the only type of blockchain there is.
I will never forgive tech bros for making blockchain a buzzword tied exclusively to crypto and NFTs. The amount of lost potential is infuriating
Simple, it’s not. If it were, they’d have been using them for decades (blockchains were invented in the 70s).
The consensus algorithm, which is not the blockchain itself, was invented later. But banks don’t need to reach concensus with themselves. They all maintain their own data, and heavily guard it. So the only bad actor they could have is themselves. And they banks all keep watch each other.