• concept used in distributed systems to provide a way of ordering events without relying on synchronized physical clocks
  • logical clocks proposed by leslie lamport in 1978
    • one of the most well-known logical clock mechanisms
    • each process in the system maintains its own logical clock, which is a simple counter
    • the logical clock is incremented by 1 for every event that occurs within a process
    • when a process sends a message, it includes its current clock value in the message
    • when a process receives a message, it updates its clock to be the maximum of its current clock
      • and the received clock, and then increments the clock by 1
  • logical clocks help establish causal relationships between events
    • if event A occurs before event B
    • then the logical clock of A will be less than the logical clock of B
    • however, if two events are concurrent, i.e., there is no causal relationship
    • their logical clocks might not indicate a specific order
  • while logical clocks provide a partial ordering of events based on causality
    • they do not guarantee a total ordering of all events
    • to achieve total ordering, other mechanisms are required
  • modern cryptographic techinics include