It's kind of a mindset shift, but with logical clocks you kind have to let go of the concept of ordering with one global universal time - it's just not feasible to do accurately with clock skew.
They're purely used to provide a partial order of events - partial because the system cannot say for sure whether some events happened before or after each other.
Even more fundamentally, it’s not possible because of physics. The passage of time is relative!
Not as important for terrestrial applications, but useful to consider as a theoretical limitation.
But you're bang on the money with the physics analogy. Lamport himself says that his knowledge of special relativity helped him come up with the concept.
This seems to be such a nice construction, but I don't know its name.
Just like any other physical measures. You don't measure nearly any of them with a wristwatch (only proper time/aging) but with a device that is constructed according to the definition of that physical measure.
This said, in a truly decentralized setting, where CRDTs make most sense, logical clocks are not useful as they are not not byzantine fault tolerant. You need merkle trees.
If we see every field as f(x,y,z,t) what do you mean you can't "change" x,y,z without changing t?
If you mean changing the x,y,z argument values, you can (you're just evaluating a different point in space).
If you mean changing the evaluated function value at a given x,y,z it's kinda tautological that it stays constant for a constant x,y,z,t.
Imagine there is an object recorded at location x,y,z at time t. This is all we know.
If I later tell you the object was recorded at location x,y,z, you have no idea what time it was captured. If I later tell you the object was recorded at any location other than x,y,z (even if only z changed by some epsilon) you know that that it was captured at some time other than t.
If you guarantee the second recording I'm showing you was not taken before time t, you know it is a more recent recording, because it would be not earlier than and not equal to time t.
So when time stops, everything else stops. It is tautological when you think about it, but I find that it's an easy way to explain why logical clocks work.
Am I wrong to reason this way?
byzantine fault tolerance is fun and all but it's a niche use case
You can only trust the nodes that you control. That's not what I'd call a decentralized system.