<p>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.</p>

<blockquote>
  <p>How does something like ethereum nodes actually store data?</p>
</blockquote>

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

<p>I don't know what backend Ethereum uses.</p>

CC BY-SA 3.0
2015-10-16T09:34:36.680Z
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
CC BY-SA 3.0
2015-10-16T09:36:53.103Z
If you trust the org running it, why bother with blockchains at all?
Nick ODell
CC BY-SA 3.0
2015-10-16T09:52:33.687Z
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
CC BY-SA 3.0
2015-10-16T12:39:36.213Z
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
CC BY-SA 3.0
2015-10-16T20:15:57.423Z
@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
CC BY-SA 3.0
2015-10-16T09:27:19.327Z
2015-10-16T09:27:19.327Z
Nick ODell
<blockquote>
  <p>How does something like ethereum nodes actually store data?</p>
</blockquote>

<p>Taking a quick look at the <a href="https://github.com/ethereum/go-ethereum/search?q=leveldb&amp;unscoped_q=leveldb" rel="nofollow noreferrer">Go-Ethereum GitHub repository</a>, it seems that Ethereum uses LevelDb--as does Bitcoin Core--.</p>

<p>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--. </p>

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

CC BY-SA 4.0
2018-07-12T18:22:38.537Z
2018-09-22T00:46:06.477Z
2018-09-22T00:46:06.477Z
Dowland Aiello
<p>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?</p>

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

<database><ethereum>
Why are existing distributed database technologies not applicable to cryptocurrencies
Awalias
# Why are existing distributed database technologies not applicable to cryptocurrencies

(Asked by: username_0 on 2015-10-16)

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?

**Tags:** database, ethereum


---

## 2 answers

### Answer by username_1 on 2015-10-16. Score: 2

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.

> **Comments:**
> **username_0**: Thanks username_1! 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?  
> **username_1**: If you trust the org running it, why bother with blockchains at all?  
> **username_2**: 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.  
> **username_0**: 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?  
> **username_1**: @username_0 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.  

---

### Answer by username_3 on 2018-07-12. Score: 1

> How does something like ethereum nodes actually store data?

Taking a quick look at the [Go-Ethereum GitHub repository](https://github.com/ethereum/go-ethereum/search?q=leveldb&unscoped_q=leveldb), 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.


---

