20 ms·
The channel names are unique per server. Knowing the channel name isn't enough to infer what name it represents so you can't just go and register the name on ot
by Uptrenda 3y ago
The channel names are unique per server. Knowing the channel name isn't enough to infer what name it represents so you can't just go and register the name on other servers after observing channel names. The only way to know what a channel name represents is to do a lengthy computation for a possible name, tld, password (optional), and server. Depending on uniqueness -- this might not be practical.
The idea of having masked names was only to prevent race conditions in the initial registration process. After the channel names are registered they are unavailable for other attackers to register and since a verifiable delay has to be done on the name to compute it -- there is adequate time to register the name across multiple servers.
A malicious server can reuse a channel name and have it hijacked by an operator. But the system also ties in ECDSA signatures with a basic threshold consensus algorithm across servers. So having a few servers (or even many) wouldn't allow a malicious third-party to compromise a name.
- charcircuit 3y ago>The channel names are unique per server. But there is not a limit for how many channels can exist for a single domain. >After the channel names are registered they are unavailable for other attackers to register Yes, but an attacker can use a different channel name for the same domain. >So having a few servers (or even many) wouldn't allow a malicious third-party to compromise a name. An attacker could associate their own key with that domain any number of times across any number of servers.
- Uptrenda 3y agoI'm not sure I understand what you mean. One channel is registered per server, for one name. Successful registrations require a super majority of those registrations to succeed. Lookups can be limited to a sub-set as long as the result number is at least greater than the minimum failure threshold for a successful registration. >Yes, but an attacker can use a different channel name for the same domain. >An attacker could associate their own key with that domain any number of times How?
- charcircuit 3y ago>How? You literally just register the name again. In the rare chance you conflict just reroll the random nonce and try again.
- Uptrenda 3y agoThe nonce isnt random. It's deterministic.
- charcircuit 3y agoThe time lock is pointless then. This is what I meant by random crypto making it hard to understand. This blog post would be simpler to understand if you started out without any crypto. If I were to write it I would start with the case of a single IRC server. Then explain a channel is a key and the topic is the value. The first person to register a key on a server can control the value. Then to expand this approach to multiple severs you introduce the idea of using a kdf of the key concatenated with the irc server's identity.
- Uptrenda 3y agoThe time-lock acts as a way to ensure names aren't revealed the moment channels are registered which would create a race condition where attackers could hijack names by registering them on other servers. The channel name is something like time_lock(name_meta_data, server_details) -> deterministic channel name based on the parameters passed to the function (output is unique per server.) Just like if you used a hash function you get the same output for the same input. Since the time lock needs a certain amount of compute to elapse (and a certain amount of time to do it) -- it allows time for the name owner to register the appropriate channels on other servers.