Logical clocks are mechanisms for capturing chronological and causal relationships in distributed systems. Lamport introduced logical clocks using timestamps assigned to events to define a "happens before" relation between events. Vector clocks extend logical timestamps to capture causality more accurately by maintaining a vector of timestamps, with one entry per process. Matrix clocks further extend this idea by maintaining a matrix to represent processes' knowledge of other processes' logical clocks.