I have some understanding of how this works:
- There's a non-profit organisation called ICANN at the top who basically controls everything and assigns TLD (top level domains like .com) and so on to registries.
- Registries host different TLDs and keep track of all domains under them.
- Registrar is an ICANN accredited company that can sell domain names. When you buy abcd.net from say Google domains, Google basically files your domain name with the .net registery.
As far as I know, you can't buy a domain from ICANN directly because they don't sell stuff? Only registrars can.
In practice there are registrars that charge you the actual price of the domain + a small registration fee (15 cents maybe) in a transparent way without any markup. An example is cloudflare.
Also in practice stay away from GoDaddy. They're one of the most horrible companies I know. Porkbun, cloudflare, namecheap, namesilo, Google are all usually moderately priced good options. You can find details of all registrars for a tld and their prices using tld-list like: tld-list.com/tld/nameoftld.
Hope that helps :)
I mean I'm not a fan of their other services but they have been pretty okay as a domain registrar. Gandi is pretty decent too :) My favourite is prokbun.