I've learned the way to automatically configure a device's IPv6 address. It's based on some flag bits in the RA (router advertisement) ICMPv6 packet.
When using SLAAC (stateless), the device will generate the last 64 bits based on some algorithms (not necessarily EUI-64) , can these bits will be concatenated to the prefix (also 64 bits) to form a global unicast IPv6 address.
When using DHCPv6 (stateful), the device will ask the DHCPv6 server, and the DHCPv6 server will allocate an IPv6 address to this device.
I know that when the all the "A" (autonomous), "M" (managed), "O" (other) bits in the RA packet are set to 1, the device will configure its own stateless address, and at the same time obtain an allocated address from DHCPv6 server.
When I run ip addr or ifconfig on Linux, ifconfig on macOS, ipconfig on Windows, I can see that my device has 2 global unicast IPv6 addresses with same prefixes. One of them is a temporary address. I know this is for privacy considerations.
I'm wondering if these 2 IPv6 addresses of my device are related to the 2 ways of automatically address configuration? For example, the temporary address is configured using SLAAC and the non-temporary address is configured by DHCPv6.