News for hackers. Stuff that matters.
Re:Immudb 1.0 – open-source, immutable database with SQL and... by jeroiraz on Tuesday May 25, 2021 @10:21AM (#27277092)
the entire state of the database gets captured by a hash value. By having light-weight clients (or auditors) keeping track of it is how tampering is detected in despite of where the database server is running
Re:Immudb 1.0 – open-source, immutable database with SQL and... by exfalso on Tuesday May 25, 2021 @11:17AM (#27277939)
This is insufficient. The strongest guarantee you can get without consensus is that the state of the DB you see on the client is/was a correct state at some point, it doesn't provide freshness/rollback attack prevention, aka that the state you see is in fact the latest one.

Keeping track of the "HEAD" hash on the clients is what consensus protocols achieve. You can also achieve it with trusted counters like the one SGX provides (depends on Intel ME so not exactly recommended, also most probably switched off in cloud environments). Alternative is an implementation of something like https://dl.acm.org/doi/10.5555/3241189.3241289.

You can of course say that it's the clients' responsibility to do this, but in practice they won't and they'll implicitly trust the server state.

Having said this, the project does look promising, we may end up using it in a confidential compute setting where clients can verify the server code running, and we'll add rollback protection on top

Re:Immudb 1.0 – open-source, immutable database with SQL and... by toolslive on Tuesday May 25, 2021 @03:49PM (#27281678)
> aka that the state you see is in fact the latest one.

This is an impossible guarantee. Suppose the state that is sent to you from the server needs some time to get to you. meanwhile the state on the server could have changed. You don't even need a remote server to have this issue. Your thread (where you see the latest state) is put to sleep for a while (sheduler, os, ...) It wakes up. Is the state it observes still the latest? That's impossible to know. The only thing you can do is to refuse future updates if the state they were built upon is not the current state of the database.

Re:Immudb 1.0 – open-source, immutable database with SQL and... by exfalso on Wednesday May 26, 2021 @01:52AM (#27286858)
That's what I meant. If you have many transactions building on a state hash X racing to be committed, only one of them will succeed.

With crypto protocols in general "guarantees" are always prefixed with "if the protocol completed successfully, then ...". For example authenticated DH + e2e encryption guarantees that you will send data to the intended participant only. But an attacker can still disrupt the network packets, so the true guarantee is "if the protocol completed successfully, then you have sent the data to the intended participant only".

Same thing here, you cannot of course guarantee the "latest state", if we want to go into the extreme, one could even argue that actually time doesn't work like that because of relativity/speed of light limitations:D. What you can guarantee is that if your commit protocol succeeded, then it updated the latest state at the time of consensus/monotonic counter update.

Re:Immudb 1.0 – open-source, immutable database with SQL and... by toolslive on Wednesday May 26, 2021 @02:45AM (#27287191)

  > That's what I meant.
Good. Sorry to be picky, but wording is important here and you don't wanna know how often I failed to convince people of the impossibility of exactly that guarantee.

  >  time doesn't work like that because of relativity/speed of light.
You're right.
Re:Immudb 1.0 – open-source, immutable database with SQL and... by capableweb on Tuesday May 25, 2021 @10:43AM (#27277438)
I see. It's a blockchain without calling it a blockchain, so people who hate blockchain can use it without having to realize they use a blockchain.
Re:Immudb 1.0 – open-source, immutable database with SQL and... by jacquesm on Tuesday May 25, 2021 @11:12AM (#27277872)
Blockchain is just a special case of Merkle trees, there isn't anything original about them other than that Bitcoin served as a marketing engine for the term blockchain because some people made a ton of money with it.

https://en.wikipedia.org/wiki/Merkle_tree

Re:Immudb 1.0 – open-source, immutable database with SQL and... by joshuak on Tuesday May 25, 2021 @06:53PM (#27283804)
No block chains are different than Merkle trees entirely. Block chains include previous hashes in each block, whereas Merkle trees, as the name implies are trees of hashes. In Merkle trees blocks do not include the previous block's hash.
Re:Immudb 1.0 – open-source, immutable database with SQL and... by aboodman on Tuesday May 25, 2021 @09:17PM (#27284970)
In git each "block" includes the previous "block"(s)' hash. Is it a blockchain or a hash tree?

I would say that in practice what differentiates a blockchain from other applications of hash trees is a mechanism for consensus, not whether the blocks being formed into a trees conceptually represent time or not.

Re:Immudb 1.0 – open-source, immutable database with SQL and... by joshuak on Tuesday May 25, 2021 @11:53PM (#27286093)
Git is a block chain. Block chains require a previous block's hash to denote sequence. The hash for any block of data can be appended to Merkle tree, even duplicate blocks.

In a block chain it is easy to find history because the link to the history is included. Merkle trees require n-1 additional hashes.

Re:Immudb 1.0 – open-source, immutable database with SQL and... by aboodman on Wednesday May 26, 2021 @01:00AM (#27286556)
Disagree. There are not formal definitions for these terms, but I don't think your definition here is what most people would think of as a blockchain.
Re:Immudb 1.0 – open-source, immutable database with SQL and... by joshuak on Thursday May 27, 2021 @10:38PM (#27311162)
Looking at the wikipedia article I can see where one might be confused.

    A blockchain is a growing list of records,
    called blocks, that are linked together using 
    cryptography. Each block contains a cryptographic
    hash of the previous block, a timestamp, and
    transaction data (generally represented as a
    Merkle tree).
The Merkle tree referenced here is with respect to the organization of the transaction data contained within a block, not the blockchain itself.

Merkle trees are used in various ways within cryptography in general and cryptocurrencies specifically, but blockchains and Merkle trees are distinct data structures with different uses. The colloquial use of "blockchain" has perhaps made the word somewhat ambiguous in some contexts but not in the context of cryptographic data structures, and Merkle trees are in fact formally defined.

Re:Immudb 1.0 – open-source, immutable database with SQL and... by dmacvicar on Wednesday May 26, 2021 @02:15AM (#27287002)
You can visualize how immudb Merkle tree grows as you insert data on https://play.codenotary.com
Re:Immudb 1.0 – open-source, immutable database with SQL and... by ric2b on Friday May 28, 2021 @01:39PM (#27318310)
> there isn't anything original about them

Cool, so let's say we're using this to track financial transactions.

Server A has an Immudb at some state x and server B has an Immudb at some state y. Which one is correct, how do I decide?

Re:Immudb 1.0 – open-source, immutable database with SQL and... by decodebytes on Tuesday May 25, 2021 @03:06PM (#27281009)
Rekor is just that. It's a merkle tree implementation (with extras such as timestamping)

https://github.com/sigstore/rekor

Re:Immudb 1.0 – open-source, immutable database with SQL and... by f38zf5vdt on Tuesday May 25, 2021 @10:54AM (#27277597)
And with git being the most superior blockchain of them all.
Re:Immudb 1.0 – open-source, immutable database with SQL and... by ric2b on Friday May 28, 2021 @01:40PM (#27318322)
Except it has no way to achieve consensus automatically. That's left as an exercise to the reader.
Re:Immudb 1.0 – open-source, immutable database with SQL and... by ForHackernews on Tuesday May 25, 2021 @11:47AM (#27278352)
It's only the actually-useful bits of a "blockchain" without the planet-cooking proof-of-waste consensus algorithm brute-forcing sha256 over and over again.
Re:Immudb 1.0 – open-source, immutable database with SQL and... by ric2b on Friday May 28, 2021 @01:41PM (#27318335)
And also without the useful "automatically achieve consensus between untrusted parties" bit.