“Прекрасные интернеты будущего”: интервью с создателем протокола Cjdns

Интервью подготовлено @parisburns при поддержке автора канала @darkfox_info и участников сообществ @meshnet и @distributed которые сильно помогли придумать интересные вопросы и всячески мотивировали меня.

С американским разработчиком и борцом за интернет-децентрализацию Caleb James DeLisle (CJD) я познакомилась во время парижских протестов весны-лета 2015, получивших название Nuit Debout (“Ночное стояние”). Тогда несколько сотен человек оккупировали Площадь Республики и организовали протестный лагерь. В палатках круглые сутки работали различные комиссии, собирались ассамблеи, обсуждались важные вопросы — от помощи беженцам до подготовки к предстоящему климатическому саммиту COP-21. У лагеря даже была своя меш-сеть и своя “цифровая комиссия”, ответственная за интернет-ифраструктуру, блог, рассылку движения и цифровую безопасность активистов.

Мы на лагере “Ночного стояния” у палатки Цифровой Комиссии. Слева направо и сверху вниз: CJD (слева сверху), Antonio Casilli (известный социолог, исследователь хакеров и троллей), Aaron (CryptPad), Gabriella Coleman (известная исследовательница хакеров, автор первой книги об Anonymous), я (автор канала Parisburns, ныне работаю в Citizen Lab и Delta.Chat), Philippe Esling (композитор, разработчик искусственного интеллекта для целого ряда решений для генерирования музыки), коллега CJD и Aarona. Фото Гарри Халпина. Апрель 2016.

CJD, его коллега Аарон и знаменитая исследовательница хакерской культуры Габриэлла Колман пришли в лагерь послушать Ричарда Столлмана, который выступил с проповедью о значении свободного софта для построения свободного общества. Наш общий друг, криптограф и анархист Гарри Халпин (один из умов, стоящих за LEAP и Riseup, на тот момент работавший в Web3C, откуда он вскоре ушёл по политическим мотивам после истории с DRM), после лекции деда Столлмана потащил нас пить вино и говорить о децентрализации.

Столлман на “Ночном стоянии” (фото @parisburns)

CJD с увлечением рассказал нам о своём проекте — Cjdns или Caleb James Delisle Network Suite, протоколе, позволяющем строить распределённые сети. Протокол поддерживает сквозное асимметричное шифрование — это значит что когда нода А адресует зашифрованный пакет ноде Б, только нода Б может расшифровать его, используя собственный приватный ключ.

Проект заинтриговал меня. Особенно хотелось понять насколько возможно масштабировать такое решение и сможет ли оно как-то помочь активистам защищаться от слежки и блокировок и в целом “вылечить” наши с вами интернеты от раковой опухоли централизации.

Проблемы современного интернета (цензура, слежка, контроль корпораций, растущая централизация) отчасти являются следствием того, что сам стек базовых протоколов устарел. Например, как считает foxcool, автор @darkfox_info и энтузиаст, стоящий за сообществами @distributed и @meshnet, — нам нужен новый протокол IP. Не только долгожданный и многострадальный IPv6, а протокол IP, который бы обладал некоторыми очень важными качествами:

  • IP-адреса не выдаются кем-то, а генерируются на клиенте. Они не привязаны к географии, провайдеру и прочему. Вы можете сохранить адрес даже при переезде в другую страну или сменить его в любой момент при желании;
  • Данные должны быть защищены сквозным шифрованием;
  • Как следствие, будет невозможно анализировать трафик и блокировать его содержимое;
  • Сеть должна строиться и маршрутизироваться без ручного управления. Два компьютера. соединенных посредством WiFi-mesh должны отлично коммуницировать без отдельной ручной настройки адресов, а один из компьютеров при этом может спокойно выполнять транзит трафика далее (если так угодно владельцу, конечно)

Этими свойствами обладает Cjdns. Решение давно популярно в узких кругах. В частности, оно используется в крупнейшей в мире mesh-сети в Сиэтле. Однако, для его взрывного распространения чего-то не хаватает. Через три года после знакомства с CJD (наша дружба и сотрудничество до сих пор продолжаются, в частности, Калеб помог нам тестировать децентрализованный мессенджер Delta.Chat), я решила взять интервью у Калеба.

Совместно с @darkfox_info, @meshnet и @distributed мы провели опрос среди независимых P2P энтузиастов и выбрали самые интересные вопросы к создателю Cjdns, чтобы обсудить этот проект как с технической, так и с полит-экономической стороны.

Рождение cjdns: мотивация, трудности и поиски финансирования.

— Как появилась идея cjdns?

— Когда я жил в горах в Массачусетсе, Интернет у меня был только по модему, и я подумал что бы случилось, если бы все могли участвовать в поддержании сети, выделяя немного инфраструктуры на общий проект. Я думал о том, что мешает созданию и развитию таких решений, и выделил две главные проблемы: во-первых, трудно позволять кому-то пропускать ваш интернет-трафик если вы не доверяете им, и, во-вторых, IP-адреса выдаются по специальной процедуре, она достаточно регламентирована, поэтому тяжело самому в одиночку стать провайдером. Отсюда возникла идея создать такой протокол, который позволял бы как-то решить обе этих проблемы.

— Меш-сети, как и другие децентрализованные системы, нуждаются в определённой мотивации (денежной, репутационной и т.п.), для того чтобы люди в них вписывались и участвовали. Как ты поддерживаешь интерес у тех, кто вкладывает силы и время в твой проект и как ты представляешь себе финансово устойчивую модель для твоего проекта?

— Я очень часто ввязываюсь в долгие “баттлы” по этому поводу. Тут всё зависит от проектов. Например Mastodon (децентрализованная и открытая альтернатива Twitter) умудряется существовать полностью на самофинансировании благодаря индивидуальным пожертвованиям. Но менее “привлекательные” (потому что менее понятные для конечного пользователя) проекты типа OpenSSL долгое время были без денег, и мы все, как юзеры, за это расплачиваемся. Что касается правительственных грантов, они могут помочь софту развиваться, но эта сфера порождает достаточно болезненную динамику, когда люди, старающиеся вести исследования и разработку по-честному, всё время проигрывают тем, кто проводит всё время просто требуя больше и больше грантов. Иногда мне кажется что лучшее решение — это вариант силиконовой долины, где проприетарные технологии строятся на основе компонентов открытого софта и в свою очередь поддерживают эти компоненты, на которых они основаны, просто потому что им самим так проще, чем поддерживать несколько форков. Если бы только я сам знал ответ на этот вопрос…

— Пытался ли ты найти поддержку у фондов, которые помогают свободному п/о? И почему проект не пытается финансово привлечь разработчиков?

— Большинство грантовых программ рассчитано на развитие “цифровой инфраструктуры”, как например OpenSSL. Cjdns больше похож на исследовательский проект, который, хотелось бы верить, однажды повлечёт за собой создание новой цифровой инфраструктуры, но на данном этапе выживание всего мира не зависит от нас. Я не нашёл достаточное количество фондов или грантовых программ, которые могли бы поддержать именно идею cjdns. Возможно, эта технология может развиваться при участии какого-нибудь филантропа-энтузиаста, который заинтересован в идее, или с помощью венчурного капитала — ведь cjdns может сильно изменить рынок интернет-услуг для домашнего интернета, который в США, например, черезчур монополизирован, регламентирован и дорог.

От линуксоидов и IPFS-фриков до “простых юзеров”: технические перспективы cjdns

— Ты планируешь сделать приложение более юзер-френдли? Чтобы иметь несколько версий для популярных дистрибутивов и возможность простой установки для “обычных” пользователей?

— В прошлом я избегал разработки готовых версий для пользователей не имеющих технической подготовки. Я хотел дать возможность всем, кто использует cjdns, что-то вложить в cjdns, чтобы это был справедливый обмен. Технари могут участвовать как минимум в баг-репортах или делать патчи, чтобы их фиксить. Люди не технических специальностей могут участвовать иначе, но эти способы участия гораздо менее понятны руководителям технических проектов. Я не пытаюсь отгородиться от пользователей, которые не являются программистами, но я был бы рад если бы все, кто использует cjdns, как-то помогали ему двигаться вперёд. Хотя конечно я считаю, что любой проект, неспособный хоть как-то адаптироваться к нетехническим пользователям, — это провал. Мы надеемся что нам удастся найти взаимно выгодные условия, при которых все вкладываются в проект, а не только “используют”.

— Насколько блокчейн-технологии близки твоему представлению о децентрализации? Планируешь ли ты использовать блокчейн в твоих проектах?

— Отличный вопрос. Мне кажется, у блокчейн-технологий есть большой потенциал: они могут организовывать и координировать людей совершенно новым способом. Я не упустил бы возможности использовать эту технологию если она действительно “к месту”, но мне не кажется, что блокчейн может магически решить все проблемы в этом мире. В контексте cjdns это могло бы помочь найти решение как мотивировать перемещение данных с одного места на другое, но над техническим воплощением этого надо ещё поработать.

— Когда ты планируешь нормальную версию под Android?

— Я надеюсь, что в будущем смогу проводить больше времени за cjdns, но я правда не знаю на что я буду тратить это время. Обычно мне нравится фокусироваться на “фундаментальных” элементах и делегировать работу над приложениями другим. Возможно, это не лучший вариант. Я не знаю.

— Ты не пытался добиться включения cjdns по умолчанию во все Linux-дистрибутивы, чтобы Linux-компьютеры могли пириться между собой через cjdns?

— Cjdns уже доступен для многих дистрибутивов, но не я компилирую эти версии. Что касается реальной интеграции с Linux, это будет тяжело и неприятно: я стараюсь держаться подальше от сотрудничества с людьми, стоящими за дистрибутивами, потому что там много стрёмной политики.

— ProtocolLabs (создатели IPFS и LibP2P) поддерживают cjdns в своих сетях и запланировали создать протокол-стек для “нового интернета”, в котором есть место и cjdns. Ты с ними сотрудничаешь? Есть ли совместные планы?

— Они очень хорошие люди, и я понимаю почему они хотели бы пользоваться cjdns. Мы раньше общались и возможно будем и дальше общаться, но всё зависит от того в какую сторону будут развиваться наши проекты.

Дайте мне распределённые сети, и я изменю мир: может ли cjdns помочь спасти интернет и общество?

— Многие связывают надежды на лучший мир именно с децентрализацией как общества, так и технологий. А есть ли у cjdns какая-нибудь политическая или этическая мотивация?

— Это сложный вопрос. Я американец, живущий в Европе, и я вообще не считаю себя радикалом. То есть, я не думаю что революция вообще приведёт к чему-нибудь хорошему. Моя мотивация в том чтобы сделать вещи более эффективными. Я считаю что дорогой и медленный интернет — это то же самое, что коррупция в госорганах. Обе эти вещи мешают нормальному функционированию общества. Моя цель на самом деле — просто сделать вещи чуть более эффективными, и мне кажется что все, кто не вовлечены в коррупцию, разделяют эту цель. Однако мы не всегда согласны какими именно способами можно её достигнуть.

Выступление CJD на 32c3 — о том как мы “потеряли интернеты” и мир

— Думаешь ли ты, что cjdns может помочь решить проблему интернет-цензуры?

— Cjdns в его нынешнем виде, возможно, не очень хорош для предотвращения цензуры, но если бы нам удалось найти немножко криптовалюты, чтобы профинансировать инфраструктуру для хранения и передачи данных, мы могли бы создать чёрный рынок для “данных без цензуры”, который, согласно либертарианской философии агоризма, в свою очередь подтолкнёт правительства к либерализации политики в области цензуры и свободы слова.

— А что насчёт альтернативы GAFAM (Google, Apple, Facebook, Amazon, Microsoft)? Может ли cjdns помочь пользователям хотя бы частично освободиться от монополии этих гигантов?

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

— Ты имеешь в виду cjdns не должен запрещать доступ к этим сервисам “по умолчанию”?

— Да, конечно, потому что это вообще не наше дело. Как автомобиль, например, который не должен отказываться везти вас в казино, несмотря на то что, между нами говоря, ехать в такие места — не самая лучшая идея.

— Ты планируешь создать какой-либо community-driven ресурс, поддерживающийся сообществом, например, сервис, на котором можно было бы найти публичные данные о рейтинге cjdns-нод и другую информацию? Ведь полезно знать к чему мы подключаемся и что мы не влезаем в какой-нибудь дата-центр на Лубянке.

— Мне кажется, этим должен заниматься кто-то другой, а не я. Я конечно могу постараться проверять, что люди, участвующие в работе cjdns-нод, честны в своих намерениях. Но я хотел бы заметить, что cjdns изначально разработан таким образом, что люди могут подключаться хоть к Лубянке, хоть к полицейскому участку, но полиция в любом случа не сможет читать их сообщения.

CJD против “анкапов” — SquatConf 2016

— У тебя есть ещё один классный проект Cryptpad, которым пользуюсь лично я и многие знакомые мне активисты. Откуда возникла идея Cryptpad и связан ли он с Cjdns?

— Cryptpad это проект, который я создал на базе компании где я работаю. СryptPad как раз-таки создан с целью помочь людям защититься от GAFAM и других крупных игроков, собирающих пользовательские данные. CryptPad бросает вызов устоявшемуся стереотипу, согласно которому все облачные сервисы должны собирать огромное количество пользовательских данных, а пользователи должны слепо верить что эти сервисы не будут использовать данные против них. CryptPad шифрует всё насколько это возможно на стороне клиента перед тем как слать эту информацию на сервер, так что сервер не знает что именно ты пишешь. Это как Signal но для совместной онлайн-редактуры документов.

— Cjdns набирает популярность в России. В Телеграме есть специализированные чаты, где активно обсуждается твой проект (@distributed и @meshnet). Люди возлагают большие надежды на новые децентрализованные протоколы как средства защиты от цензуры, слежки и прочих издержек государственного контроля. Что бы ты посоветовал твоим российским пользователям?

— В наше время так называемые “правящие элиты” приходят, так сказать, к состоянию “морального банкртоства” (moral bankruptcy), что означает, что их легитимность стремится к нулю. Мы видим что государственные деятели абсолютно нечестны в своих поступках и по отношению друг к другу, и по отношению к гражданам. Например, они принимают законы по совершенно иным причинам, нежели те, о которых они публично заявляют. Мне кажется, мировые элиты нечестны сами с собой и не в состоянии признаться себе в том кто они на самом деле. Они рассказывают себе сказки, в которых оправдывают все ужасы, ими содеянные. Однако коррупция может по-настоящему задеть общество на глубинном уровне только если ей удаётся добраться до человеческих сердец и сделать людей циничными. Существует множество вещей, которые мы можем делать, чтобы изменить мир к лучшему, но мне кажется, что самое главное — радикально отказаться от лицемерия и лжи. Тогда вы сможете смотреть в глаза “сильных” мира сего и знать, что вы честны, а они — нет, и сила будет на вашей стороне, будь то на уличных демонстрациях или за компьютером, на “крипто фронте”.

Узнать больше о CJD и его идеях:

Репозиторий cjdns: https://github.com/cjdelisle/cjdns

Подписывайтесь на @parisburns и @darkfox_info!

Подключайтесь к нашим беседам в @meshnet и @distributed

Поддерживайте распределённые сети и децентрализацию на техническом и политическом фронтах!

за лучшими криптомемами — @cryptachan