Usually, when using BGP, you can choose (or your device chooses four you) a router ID from one of your assigned public IP addresses.
Now, let's admit you only run IPv6. As the router ID is still a 32 bits number, it can not be copied from a loopback's address.
The draft-dupont-durand-idr-ipv6-bgp-routerid-01 brings a start of an answer, suggesting to use your AS number suffixed with a locally allocated part. But that works only for 16 bits AS numbers.
So, how to choose a RID for your devices ? Randomly ? If so, how would devices react in case of collision (both ends of a BGP session use the same RID) ?
PS : the issue also concerns OSPF, but then you only have to design a coherent RID allocation scheme. Which you can not do when using BGP to peer with other ASes.