This week I spent a lot of time researching the various authenticated indexing data structures (Prolly Trees, Merkle Search Trees, HAMTs, etc.) that I wanted to use for implementing Contacts, because I also wanted to use them to solve other issues like deleting and moderating comments and so on.
I've implemented a bunch of those data structures, made a lot of experiments, read a lot, but in the end abandoned the idea of doing it as the main approach for handling data — too many small but important tradeoffs to settle, and it's a bit disruptive for our current architecture.
They still can be very helpful for designing overlay indexes on top of the blob data, that could be shared between peers in a verifiable ways (we've talked about that before), but for now it's not worth spending time on that.
So, I finished writing up the Contacts project, using an approach that is closer to what we are currently doing, without introducing many major disruptions. There're still open questions there, so we should discuss them in Linear.