понедельник, 26 августа 2013 г.

Rangzen: краткая выжимка

По наводке от многоуважаемого vitus_wagner вышел на интересную задумку анонимной P2P-сети. Называется она Rangzen, что в переводе с тибетского значит то ли «свобода», то ли «независимость», то ли ещё что-то в этом духе. Материалы пока есть только на английском, так что лично для себя я набросал кратенькую выжимку, конспект, так сказать.

Итак, сеть Rangzen предназначена для дисидентов таких стран, где мерзкоподлое правительство может опуститься до того, чтобы нафиг вырубить весь интернет (или его большие куски). В результате этого будут прерваны связи, которые нынешние революционеры уже давно привыкли поддерживать через интернет, и революция не состоится.

Чтобы помешать правительству вырубить связь, пользуясь тем, что оно контролирует инфраструктуру, нужно сделать сеть, которая этой инфраструктурой не пользуется. Rangzen использует только смартфоны (полагаю, на Android, ибо он широко распространён и легко доступен), на которые ставится специальная программка. Каждый такой телефон становится узлом сети, а информация между ними передаётся не через операторов связи (их тоже можно вырубить!), а напрямую: Wi-Fi, Bluetooth, да хоть простым обменом флешками.

Разумеется, получившаяся сеть уже не будет интернетом с его мгновенными ответами на запрос. Это будет нечто вроде старого доброго Фидо, Usenet или флоппинет. Но, в любом случае, работать должно.

На каждом узле хранятся все самые свежие сообщения сети. Если у нас в телефоне есть 32 Gb свободного места, которое можно выделить под хранилище, то при размере сообщения в 1 Kb (сеть планируется юзать для микроблоггинга) там поместится 32 миллиона сообщений, по 320 штук на каждого пользователя сети из ста тысяч узлов.

Сеть работает так. Пользователь А приходит на встречу с пользователем Б и, когда их телефоны оказываются в зоне досягаемости друг друга, сообщения синхронизируются. То есть, А передаёт Б все сообщения, которых у Б нет. И наоборот.

Но, поскольку сообщений много, скорость передачи не очень большая, а время встречи ограничено, то передать всё не получится. Значит, сначала надо передать самое важное. Что именно?

Алгоритм определения приоритета сообщений (какие передавать раньше, какие — позже) составляет основу Rangzen. Он основывается на понятии доверия (одним пользователям мы доверяем больше, другим — меньше).

В Rangzen есть два алгоритма определения приоритета. Первый определяет приоритет как процент общих взаимных френдов автора сообщения и узла А. Чем больше общих френдов, тем больше вероятность, что сообщения именно этого автора будут переданы в первую очередь. Если общих френдов нет вообще, то сообщению присваивается маленький, но ненулевой приоритет. Так сохраняется вероятность, что оно хоть куда-нибудь дойдёт.

Второй алгоритм учитывает не только непосредственных френдов, но и «друзей друзей». При этом чем более опосредовано знакомство, тем меньший вес оно имеет.

Сеть анонимна. Каждый узел идентифицируется случайно выбранным в момент создания идентификатором. На узле хранится список непосредственных френдов (то есть, их идентификаторы, конечно). При вычислении процента общих френдов эти списки не разглашаются. То есть, узел А может узнать, что у него с узлом Б 35% общих знакомых совпадают, но кто именно эти общие знакомые — неизвестно. Всё построено на хитрой гомоморфной криптосистеме, которая всё равно интересна только профессионалам.

Для второго алгоритма требуется хранение не только непосредственных френдов, но и так называемых «скетчей доверия», откуда (если конфисковать достаточное количество мобильников) можно при желании извлечь информацию о связях и арестовать подпольщиков. Этот алгоритм пока не считается безопасным.

Сейчас разработчики дорабатывают теоретическую часть, а в конце лета 2014 года планируют выпустить бета-версию программы. Ну, если их, конечно, раньше не приостановят.

Так я понимаю (возможно, в чём-то неправильно) суть Rangzen. И в данный момент меня интересует традиционный академический вопрос: взлетит или не взлетит? Ибо есть аргументы как «за», так и «против».

Комментариев нет:

Отправить комментарий