I followed your feed, so I can see your posts now. I might unsubscribe at a later point though. No hard feelings, I'm just trying to keep the ssb fire hose manageable. But thank you for reaching out, I value all comments on these posts.
Surely the certificate (h7, h45, h0123, h01234567) proves only that the messages supposedly prior to m6 were created before the certificate, not necessarily before the message. Otherwise it would also prove that h7 was known before m6, which is backwards.
The (h7, h45, h0123, h01234567)
certificate for m6
fully validates m6, but it can only be created once m7
exists. It does not declare that h7
existed before m6
, it just uses a path through the merkle tree that happens to include m7
. This certificate (one you also add h0
, h01
) encodes the creation order of the first eight messages. It doesn't say that m7
existed before m6
, it says that m6
existed before m7
.
If m7
isn't known yet, you need to create a different certificate - that's what the third post is all about.
To prove that a message was created after certain other messages, I think the certificate has to be part of the message itself, contributing to its hash, doesn't it?
Not exactly. A certificate is just a collection of hashes. These hashes refer to the original message, and are indeed signed. There's a large number of possible certificates (at the very least one per message). So if all of these were put into the feed, we'd get a blow-up in feed size. The beauty in this mechanism is that these hashes verify each other, so you can just pick the subset you actually need.