3 Comments
Oct 27, 2020Liked by adlrocha

Thanks for this introductory article; I find it interesting that hash-addressed storage is suddenly entering the gestalt. I'm still trying to figure out the use-case for these centralised merke-proof databases though; their value seems to be in proving to _others_ that such-and-such hasn't been corrupted. The problem with Merkle trees is that you can only prove that such-and-such a tree is not corrupt; you can't prove that it is the 'right' tree. It'd be very easy for a corrupt engineer (or CEO) to compute a new ledger and quietly dispose of the one with incriminating evidence of some sort of corporate fraud.

Perhaps the value of these databases is for an auditor or other third-party oversight entity to run the ledger. Now it's starting to look an awful lot like... A blockchain ;-)

I also think there's no problem in storing huge blobs in these databases. I think it's fairly cheap to compute hashes for them (and even if it were expensive, you have to calculate the hash anyway, and computing the merkle proof after that is super cheap). As long as the tech can handle it, and there isn't any economic barrier (e.g., expensive hosted data storage, gas cost on a public blockchain) I don't see an issue.

I also think there's exciting opportunity for distributed versions of this that don't use blockchain. I can think of one really popular example: Git! It's essentially a hash-addressed, immutable, merkle-proof-secured, distributed key/value store. In fact it's the hash addressing that makes it so great for a distributed system; as a monotonically increasing data set, it adheres to the CALM principle (Kleppman and Alvaro), which means that coordination and consensus protocols aren't even needed for use in a distributed system. (Note: branch pointers are the only exception; as non-monotonically-increasing data points they do require coordination, which usually looks like human agreement to not clobber the remote with `git push -f` 😉)

Expand full comment

I ike to at least imagine a world in which authenticated data is easily distributed around. I started working on something similar to the described databases, with a different take: each "block" is a read-only SQLite database: https://github.com/ivoras/daisy . And as an important step, starting and cloning / distributing databases is "daisy newchain ..." and "daisy pull ..."

Expand full comment