Why are existing distribued database technologies such as mongodb not useful for hosting the blockchains of large cryptoapplications, after all they are just distributed key-value stores?

how does something like ethereum nodes actually store data? In some custom database? Why not use existing tech?


The security model of MongoDB assumes that all MongoDB nodes are run by the same entity, and trusts the servers in the cluster to not tamper with the data they're given. There are checksums and such, but those are intended to detect and correct accidental corruption of data, not intentional changes.

How does something like ethereum nodes actually store data?

Bitcoin uses LevelDB to store blockchain data, though this is not sharded for the reasons mentioned above.

I don't know what backend Ethereum uses.

  • Thanks Nick! So in theory it is possible to run a blockchain on top of mongo, as long as you trust the organisation running the database cluster? – Awalias Oct 16 '15 at 9:34
  • 1
    If you trust the org running it, why bother with blockchains at all? – Nick ODell Oct 16 '15 at 9:36
  • 1
    These kinds of systems incur all kinds of engineering costs in exchange for not requiring precisely this kind of trust. If you're going to require this kind of trust anyway, the entire design should be different so that you're not paying all the costs associated with minimizing the trust required. – David Schwartz Oct 16 '15 at 9:52
  • So are there no benefits of running a centralised blockchain? As far as I understand even the centralised authority charged with administering such a blockchain would be unable to spend transactions on the chain that had been signed with some persons private key, if the authority publish the blockchain, then individuals making transactions on it can at least be sure that transactions cant be made on their behalf? – Awalias Oct 16 '15 at 12:39
  • 1
    @Awalias But which key is the transaction signed with? The key from the previous transaction. Trace that back, and eventually you get to a transaction that isn't signed, that generates the coins in the first place. If the central org can rewrite the blockchain, they can absolutely tamper with balances. – Nick ODell Oct 16 '15 at 20:15

How does something like ethereum nodes actually store data?

Taking a quick look at the Go-Ethereum GitHub repository, it seems that Ethereum uses LevelDb--as does Bitcoin Core--.

On another note, to address a few points that were brought up by the OP in an older thread, the benefits of using a blockchain are mitigated once they are implemented in a centralized manner. One of the main allures of the blockchain is that by its very nature, it does not require trust; it is permissionless. To have a central party or authority means you have to trust that central party--thus removing one of the main benefits of a decentralized blockchain--.

TL;DR: There's no real noticeable advantage to using a centralized blockchain over just a simple MySQL database.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.