> Диапазоны IP-адресов и домены в таких независимых сетях кто выдаёт и курирует? А зачем курировать?
Вариант раз. Просто, хоть и не надежно: ID = random() (ID - некий "адрес" в рамках сети). При например чем-то подобном IPv6, адресного пространства адресов в 128 бит вполне хватит чтобы random хапнутый случайно, методом "от балды" никогда бы не пересекся с кем-то еще. Многие оверлейные сети (DHT и подобные) именно так и назначают юзерям идентификаторы (как правило 128...160 бит). И работает ведь, фигле. Без центральных ауторитей, прикиньте? :)
Вариант два. Усиленный. Вася может захотеть взять ID Пети злонамеренно. Что не прикольно - кто угодно может запретендовать что он - Петя. Можно чуть усложнить. Пусть Петя генерит пару ключей pubkey и privkey. Как и все остальные. А как ID выбирается уже как hash(pubkey), при том hash() должен быть криптографически стоек, ессно. При этом распределение адресов тоже будет более-менее рандомное, 128...160 битов опять же хватит всем, конфликтов адресов в сети не будет. НО занять *произвольный* адрес в сети просто так от балды - уже не получится: всегда можно будет криптографически проверить, а есть ли у претендента на идентификатор ID собссно секретный privkey, доказывающий что он не верблюд а натурально обладатель этого самого ID (который и сгенерил ту пару ключей). Т.е. как минимум на уровне "адресации" исключить подлянки и выдать каждому уникальный ID который неподделывабельный другими и не совпадает с остальными адресами - вполне можно.
Для людей правда удобнее DNS-like имена и там все чутка сложнее при желании обойтись без центральной ауторити, но тоже варианты есть.