IPv6
In short: The successor to IPv4 with 128-bit addresses (instead of 32 bits) — practically unlimited addresses, written as eight hex groups (e.g. 2001:0db8::1).
In more detail: It not only solves IPv4’s address shortage problem, but also simplifies some network mechanisms (e.g. built-in autoconfiguration, NAT no longer strictly necessary). The switchover has been proceeding gradually for years, because IPv4 and IPv6 aren’t directly compatible with each other.
In Depth
128 bits give an astronomically large number of possible addresses (2^128, more than there are grains of sand on Earth) — in practice this means that address shortage disappears completely as a problem for the foreseeable future. IPv6 addresses are written as eight groups of four hexadecimal digits each, where leading zeros and consecutive groups of zeros may be abbreviated for readability:
2001:0db8:0000:0000:0000:0000:0000:0001 <- full notation
2001:db8::1 <- abbreviated (zero groups replaced by ::)
Beyond the pure expansion of the address space, IPv6 brings several structural improvements: built-in autoconfiguration (a device can assign itself a valid address without a DHCP server, based on the network prefix and its own MAC address), a simplified header (fewer fields than IPv4, which speeds up router processing), and the complete removal of NAT as a necessity — every device can directly have its own globally unique address instead of sharing a public one.
The slow transition is mainly due to the lack of backwards compatibility: a pure IPv4 device can’t communicate with a pure IPv6 device out of the box, which is why the migration has been running in “dual stack” mode for years (both protocols run in parallel) until IPv6 support is established everywhere across the board.
See also: IPv4, IP addresses