context

Merkle tree - Wikipedia

A CDRT is a description of a DELTA from one state to another. In addition to describing the mutation itself, a CRDT must sufficiently describe deterministically:

A “merkle diff” is the difference, as a Set of hash addressed blocks, between the state of two merkle DAGs. Stuff like:

Building CRDT views of Merkle Diffs

The primary incongruency between these two terms is that one (CRDT) is assumed to be part of, and therefor has full knowledge of, the transactions in the data structure.

By comparison, a merkle diff is very opaque, it’s just a bag of binary blocks addressed by hash.

But there is an implementation somewhere of the data structure that wrote the diff. Reading the block data in the diff and comparing against the prior state you can arrive at a definition of the operations that can express, in that implementation, each operation that was performed.

Does this mean that every merkle diff makes great CRDT’s? No!

You can author indeterminism into a merkle tree, people do it all the time, usually without knowing they are even doing it.