Double Ratchet Algorithm

[4] The Double Ratchet Algorithm was developed by Trevor Perrin and Moxie Marlinspike (Open Whisper Systems) in 2013 and introduced as part of the Signal Protocol in February 2014.

The ratchet was initially named after the critically endangered aquatic salamander axolotl, which has extraordinary self-healing capabilities.

Additionally, it enables session key renewal without interaction with the remote peer by using secondary KDF ratchets.

[8] It does not provide anonymity preservation, and requires servers for the relaying of messages and storing of public key material.

[8] A client attempts to renew session key material interactively with the remote peer using a Diffie-Hellman (DH) ratchet.

Full ratchet step in the double ratchet algorithm. The Key Derivation Function (KDF) provides the ratcheting mechanism. The first "ratchet" is applied to the symmetric root key, the second ratchet to the asymmetric Diffie Hellman (DH) key. [ 1 ]
A gif of a ratchet moving showing that the mechanism can only move in one direction
A mechanical ratchet