Full decentralization and censorship resistance. In the case of DNS services there’s still an organization of some kind that you’re having to trust to not mismanage your registration. Both now in their current form and in any future form the organization may take.
ENS, on the other hand, is just a smart contract running on Ethereum. Its behaviour is programmed, not dependent on any human decision making. To censor it you’d need to block Ethereum as a whole.
How does your FLOSS software solve the Byzantine Generals problem? If two different people want to use the same domain name, how is it determined who gets it? These are the things that blockchains contribute a solution to.
It’s not enough that the software that everything’s running on is free/libre. Determining who gets a scarce resource (unique names) is the real difficulty here.
Call me a Luddite, call me ignorant, the simple answer is we don’t need to solve the Byzantine generals problem for privacy because we are able to work indecently I.e. if it’s floss we can compile ourselves. I don’t need to trust anyone when I can vet the code and roll my own with it.
TL;DR: the Byzantine general problem isn’t a problem.
It isn’t a problem when you’re just running software on your own computer and have no need to communicate with anyone else.
But that’s not the case for domain names. It wouldn’t work at all if we each had our own private little parallel universe, it defeats the whole purpose of a domain name system. We all need to agree on which names are associated with which IP addresses.
I’m not trying to promote blockchains as a one-size-fits-all universal solution for every problem. That’s silly, no technology is a universal solution for every problem. Blockchains are very good at solving a specific subset of problems, and DNS names IMO is one of those. When you need everyone to agree on a particular fact and you don’t want to designate some particular authority to be “in charge” of validating that fact then that’s exactly what a blockchain is for.
I agree with pretty much everything you said, except the conclusion. For DNS, we don’t need distributed consensus, we have ICANN and that seems to work pretty well. We’d only need a blockchain if we needed to replace ICANN for some reason.
So assuming ICANN exists, you only need to trust registrars, which are regulate both by ICANN and whatever municipality they operate in.
Building a separate system to ICANN may be desirable in an abstract sense (ICANN kinda sucks in some ways), but it’s a bit too disruptive for too little gain since it would force everyone to go repurchase domains, leading to mismatches with the current system, causing confusion and enabling fraud. That’s a pretty high cost for minimal gain.
In other words, just because we can doesn’t mean we should. And this is coming from someone who is interested in crypto (mostly Monero) and distributed computing in general.
Let’s say that your computer has the IP address 1.2.3.4. When you register for a DNS name, let’s say bolexforsoup.com, you tell the DNS registrar to associate that name with your IP address. So later when my computer wants to communicate with your computer it asks the DNS system “what’s the IP address for bolexforsoup.com?” And it tells me “1.2.3.4”, which I can then use for communicating. The DNS service is not something you’re running yourself, it’s a service that someone else is running. That’s the problem here. Your computer can be completely 100% FLOSS, you can be a master programmer who can manipulate your computer at will, but if my computer wants to talk to bolexforsoup.com the only way it can know the IP address for it is to ask DNS for it. That happens outside of your control. As we’re seeing in this case with anti-piracy laws, this is something that an outside force - a government, a company, maybe even a lone malicious hacker - can interfere with if they want to stop me from reaching your computer.
Full decentralization and censorship resistance. In the case of DNS services there’s still an organization of some kind that you’re having to trust to not mismanage your registration. Both now in their current form and in any future form the organization may take.
ENS, on the other hand, is just a smart contract running on Ethereum. Its behaviour is programmed, not dependent on any human decision making. To censor it you’d need to block Ethereum as a whole.
FLOSS software is not dependent on trusting an organization. That’s a significant part of the appeal.
What else?
How does your FLOSS software solve the Byzantine Generals problem? If two different people want to use the same domain name, how is it determined who gets it? These are the things that blockchains contribute a solution to.
It’s not enough that the software that everything’s running on is free/libre. Determining who gets a scarce resource (unique names) is the real difficulty here.
Call me a Luddite, call me ignorant, the simple answer is we don’t need to solve the Byzantine generals problem for privacy because we are able to work indecently I.e. if it’s floss we can compile ourselves. I don’t need to trust anyone when I can vet the code and roll my own with it.
TL;DR: the Byzantine general problem isn’t a problem.
It isn’t a problem when you’re just running software on your own computer and have no need to communicate with anyone else.
But that’s not the case for domain names. It wouldn’t work at all if we each had our own private little parallel universe, it defeats the whole purpose of a domain name system. We all need to agree on which names are associated with which IP addresses.
I’m not trying to promote blockchains as a one-size-fits-all universal solution for every problem. That’s silly, no technology is a universal solution for every problem. Blockchains are very good at solving a specific subset of problems, and DNS names IMO is one of those. When you need everyone to agree on a particular fact and you don’t want to designate some particular authority to be “in charge” of validating that fact then that’s exactly what a blockchain is for.
I agree with pretty much everything you said, except the conclusion. For DNS, we don’t need distributed consensus, we have ICANN and that seems to work pretty well. We’d only need a blockchain if we needed to replace ICANN for some reason.
So assuming ICANN exists, you only need to trust registrars, which are regulate both by ICANN and whatever municipality they operate in.
Building a separate system to ICANN may be desirable in an abstract sense (ICANN kinda sucks in some ways), but it’s a bit too disruptive for too little gain since it would force everyone to go repurchase domains, leading to mismatches with the current system, causing confusion and enabling fraud. That’s a pretty high cost for minimal gain.
In other words, just because we can doesn’t mean we should. And this is coming from someone who is interested in crypto (mostly Monero) and distributed computing in general.
…what? I’m not sure you understand what I mean by compiling on my end. Why would that preclude my being able to communicate with other people?
Let’s say that your computer has the IP address 1.2.3.4. When you register for a DNS name, let’s say bolexforsoup.com, you tell the DNS registrar to associate that name with your IP address. So later when my computer wants to communicate with your computer it asks the DNS system “what’s the IP address for bolexforsoup.com?” And it tells me “1.2.3.4”, which I can then use for communicating. The DNS service is not something you’re running yourself, it’s a service that someone else is running. That’s the problem here. Your computer can be completely 100% FLOSS, you can be a master programmer who can manipulate your computer at will, but if my computer wants to talk to bolexforsoup.com the only way it can know the IP address for it is to ask DNS for it. That happens outside of your control. As we’re seeing in this case with anti-piracy laws, this is something that an outside force - a government, a company, maybe even a lone malicious hacker - can interfere with if they want to stop me from reaching your computer.
So then nothing related to NFTs at all but instead a specific application of a specific blockchain…
An ENS name is represented by a token that follows the ERC-721 standard. It is literally an NFT.