State Synchronization allows a new node to join the network by retrieving a snapshot of the application state at its current height, instead of retrieving and replaying all historical blocks. Since application states are generally much smaller than blocks, and recovering them is much faster than replaying blocks, it can reduce the time to synchronize with the network from several days to a few minutes.