4 ms·
I went on their website and tried to understand how immutability is enforced but I couldn't find anything. I'm sceptical, but particularly because they make a
by timdaub 5y ago
I went on their website and tried to understand how immutability is enforced but I couldn't find anything.
I'm sceptical, but particularly because they make a deliberate comparison to blockchain that I doubt they'll be able to deliver.
The PoW immutability of e.g. BTC and ETH is strong as it yields the following guarantees for stored data:
- Immutability of the BTC blockchain is protected through all cummulative work that has happened on a specific branch of the chain. Even if someone replayed BTC, it'd take millenias to recompute the work on an average machine
- The immutability isn't enforced on a file level, as I suspect it is with immudb. Immutability is enforced through the network that has additionally shown to have conservative political views too. You can go, sync a BTC node and change the underlying level db. Still that won't change the network state. Immutability on a single system is physically impossible if e.g you consider deleting the file as mutation.
- immudb says "it's immutable like a blockchain but less complicated", but Bitcoin isn't more complicated than some sophisticated enterprise db solution.
- I think immudb should be maximally upfront what they mean by immutability: It seems they want to communicate that they're doing event sourcing - that's different from immutability
Finally there's a rather esotheric argument. If you run an immutable database as an organizatiom where one individual node cannot alter the network state but you have (in)direct control over all nodes: Isn't it always mutable as you could e.g. choose to swap out consensus?
So from a philosophical perspective, then immutability can truly only occur if mutability is out of an individual's control.
Why do I have the authority to say this? Because I too have once worked for a database with blockchain characteristics called https://www.bigchaindb.com https://www.bigchaindb.com
Edit: The best solution that also has a theoretically unlimited throughput is this toy project: https://github.com/hoytech/quadrable https://github.com/hoytech/quadrable
Conceptually, it computes a merkle tree over all data and regularly commits to Ethereum. Through this commitment the data may still change locally: But then at least would be provably tampered. So I guess for databases, the artibute we can really implement is "tamper-proof".
- jandrese 5y agoThe big question is if someone gets on your DB server and wants to change a record how does the software prevent them from altering a record and then recomputing the remainder of the chain?
- layer8 5y agoThat’s presumably out of scope. The scope of the guarantees is restricted to the operations made available by the database API. Just like the ACID guarantees of regular relational databases are.
- thebean11 5y agoWhich makes any blockchain comparison extremely stupid since it doesn't even attempt to solve the same threat model..
- layer8 5y agoI’d say the attribute is "tamper-proof history", not "tamper-proof data (current content)".
- thebean11 5y agoI may be missing something but I don't think this prevents rollbacks. Can a client prove that the server rolled back / lost data?
- layer8 5y agoOnly by storing (a hash of the) previous state client-side and comparing with the audit log for the current state, i believe.
- thebean11 5y agoIs that enough to prove a rollback happened? How do you validate that hash without the data?
- jeroiraz 5y agothe hash is cryptographically signed by the server. So whatever state the database is, there must be a proof from the signed state up to the current one. Otherwise, the client application should handle this situation with care, as the database may be compromised.
- layer8 5y agoThose signatures don’t prevent or expose or otherwise impede server-side rollbacks. They are thus immaterial to the question raised.
- jeroiraz 5y agois out of the scope of immudb to prevent rollbacks if someone gain access to the filesystem. But even if that happen, immudb sdks will detect such situation when requesting a proof
- TomSwirly 5y ago> but Bitcoin isn't more complicated than some sophisticated enterprise db solution. It is, however, hundreds of thousands times slower as a database.
- timdaub 5y agoAt least for money transmission use cases that's a rather weak argument considering that my local bank calls me in person to confirm transactions above 2k EUR.