#ContentAddressing is cool but I don't think we've really explored enough variations of what the unit of content addressing is. IPFS takes everything to be flat and with a singular representation - every thing has one global representation. one could imagine content addressing indicating a given thing and its context - eg. a thing as shared with this subset of people, a thing as it relates to this other thing, etc. this is necessary to make content addressed systems not be at least implicitly immutable/trade off hard with privacy.
coupled with a generalization of #MerkelDAGs along those lines, one would still be able to take advantage of the deduplicating effects of content addressing - say that I distribute an encrypted subsection of a graph, with the hash being of the encrypted binary blob and the ACL- or capability-like thing that describes who can decrypt it. when decrypted, that blob contains a Merkel DAG, which can then recursively contain other blobs+contexts that can be both a) shared and rehosted by all peers that can see them b) without everyone needing to know the contents of every recursive subgraph.
so, one could resolve as much of the recursively encrypted graph as one was supposed to, and since the edges of the graph don't need to strictly refer to an object with a unique hash, you don't have the same problems that lack of cycles presents with flexible data representation.
#contentaddressing #merkeldags #p2p