Ask HN: Why Prefer Blockchain over Distributed DBs?
As an engineer myself, I haven't been really able to understand what advantages do blockchains offer over general distributed databases? It can be lack of knowledge as well but to me blockchains just seem like extremely inefficient form of DBs
The only comment I have seen is that they allow decentralization. But then why would it make sense for them to use for private companies, banks etc. ?
Note than I am not talking about Bitcoin, Ethereum etc. I am more interested in the basic tech on which these platforms are built.
10 comments
[ 2.7 ms ] story [ 29.4 ms ] threadIn most cases it doesn't. For the most part, it is a solution in search of a problem.
Blockchain is a horribly inefficient write once database. It basically trades efficiency for decentralization.
The obvious problem is who pays for this inefficiency. If a central authority pays, any "decentralization" is just a ruse.
The only practical way found thus far to pay and still maintain any real decentralization is by minting money --- crypto. Unless you are or want to be involved with crypto, you probably don't need blockchain.
PoW consenus that you see in Bitcoin has extreme adversarial assumptions. Raft is on the other side of the spectrum; it's just bare-bones state machine replication and simply trusts the elected leader.
The thing is, your adversarial model can lie somewhere in between these extremes. That can be the case for bank networks or supply-chain management and isn't necessarily inefficient (Hyperledger Fabric). I'm not really familiar with private blockchains, I think they are just a rebranding of public key infrastructure.
I personally think permissionless DLTs are much more interesting, and actually deliver on our expectations of decentralization. Whether certain flavors of PoS will be sustainable is yet to be seen.
Imaging I want to build a p2p forum. There is an administrator, multiple moderators, members and visitors.
Visitors can only have read access. members can post, moderators can delete. administrator can promote members to moderators.
Can this be supported by distributed db?
I have checked a few, I didn't see they support that. Most assume the peers have the same permissions to access the db. They may be useful in a trusted environment, not in a untrusted environment.
Apache Cassandra is a database used by Facebook. It has converging databases. If you're used to normal SQL databases, it would be like a way of replicating information across lots of copies. Updates are done in really strange ways. Imagine a Facebook comment or status update. That gets a time associated with the data, and the database copies slowly converge to a common truth.
> gets a time associated with the data
it's easy to fake a timestamp in an untrusted network.
These are developer tools, not end user apps. They aren't designed for direct exposure to end user validation. Most apps making use of a distributed db have a UI of some sort that can act as proxy to implement access control.