Briar и Bramble: видение децентрализованной инфраструктуры

Ссылка на оригинал - https://dymaxion.org/essays/briarvision.html, автор публикации - Eleanor Saitta

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

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

Briar построен на Bramble. Bramble обрабатывает все основные функции, такие как отправка блоков данных назад и управление контактами, поддержание каналов между пользователями безопасными и без метаданных, синхронизация состояния между устройствами пользователя и обработка зависимостей между частями данных или истечение срока их действия, когда они становятся слишком большими. старый. Помимо синхронизации данных, Bramble позволяет приложениям использовать что-то вроде очередей сообщений для отправки друг другу запросов или для удаленного вызова функций. Briar использует эту функциональность для создания богатой и простой в использовании среды обмена сообщениями.

Bramble уже давний проект. Я начала работать над этой идеей зимой 2011-2012 гг., И Michael Rogers, ведущий разработчик, работал над ее частями для обмена сообщениями дольше. Построить системы, которые не похожи на то, к чему привыкли люди, сложно, а финансировать их сложнее. Тем не менее, мы продолжили работу над проектом, и теперь мы наконец-то запущены - возможно, потому, что мир немного догоняет.

Самым большим отличием приложения Bramble от любого другого приложения, которое вы можете запустить на своем телефоне, является то, что все работает прямо на вашем телефоне, ноутбуке или обоих одновременно. Почти каждое традиционное приложение, которое вы используете на современном телефоне, имеет какой-то серверный компонент, обеспечивающий синхронизацию всех и обеспечивающий авторитетное представление о происходящем. Если вы не можете общаться с сервером, вы вообще ничего не можете сделать - в лучшем случае вы получаете доступ к какому-то «автономному режиму» для взаимодействия с любыми данными, которые вы кэшировали локально, вероятно, только для чтения. Это лучше, чем ничего - система не рассматривает автономность как фактический сбой, но этого недостаточно для того, чтобы работать в автономном режиме как «нормальный».

Приложения Bramble позволяют пользователям работать вместе в автономном режиме. Поскольку нет сервера, нет ничего, с чем можно было бы не общаться. Bramble также понимает, как использовать любые соединения, которые должно иметь ваше устройство, чтобы найти людей, с которыми вы хотите работать. Если вы находитесь в зоне действия Bluetooth или Wi-Fi, Bramble переключится на прямую связь с другим устройством, даже если у вас нет подключения к Интернету. Локальные сетевые подключения одинаковы - Bramble будет напрямую общаться с другими устройствами, когда только может, и выходит только во внешний мир, если это необходимо. Приложения Bramble могут даже запускаться через sneakernet, если им нужно - просто скажите приложению, что вы хотите отправить контакт на USB-накопителе обновлений контакту, а затем попросите кого-нибудь запустить его для них.

Приложения Bramble также предназначены для работы, когда они не могут подключиться к другим системам, с которыми они работают, что позволяет вам делать все, что вы можете в обычном режиме, а затем синхронизировать эти изменения с другими устройствами, когда они станут доступны. Насколько сложна синхронизация, зависит от приложения. В Briar это просто - просто отправляйте и получайте сообщения, находящиеся в очереди, пока вы были в автономном режиме. Если вы достаточно взрослые, чтобы помнить об использовании Usenet с клиента, работающего непосредственно на nntp-сервере, это примерно так, и прямые сообщения похожи на обычную электронную почту, когда мы запускали почтовые клиенты непосредственно на почтовых серверах. Разница, конечно, в том, что вы получаете все современные удобства, а машина сидит в вашем кармане. В некоторых приложениях синхронизация может быть немного сложнее, например, если вы редактировал сложный документ одновременно с другом. Однако даже в такой ситуации Bramble позволяет разработчикам сделать процесс не сложнее, чем основная проблема.

Для чего-то простого, такого как редактирование, мы уже привыкли видеть преимущества таких вещей, как общие документы Google, и легко понять, как это может быть более полезным, если вам не нужно беспокоиться о быстром подключении к Интернету (или при все) сотрудничать. Аналогично, одно из удобных условий использования сообщений Briar заключается в том, что вы можете продолжать отправлять и получать сообщения от друзей, даже если вы, скажем, садитесь и выходите из поезда метро, ​​где нет сотовой связи. Другие случаи еще более интересные, хотя. Если вы - команда, работающая вместе на местах с системой поддержки принятия решений, которая помогает вам делать что-то вроде распределения ресурсов, вам нужно, чтобы она работала на основе всей имеющейся у вас информации, даже если вы не можете подключиться к ней. внешний мир.

Доверие является критической проблемой с Bramble. Первоначальные варианты использования Briar всегда были средством коммуникации для людей, подвергающихся риску, будь то журналисты, политические активисты, люди, пытающиеся работать вместе, чтобы организовать профсоюз, или работники секс-бизнеса или жертвы домашнего насилия, которым необходимо зарегистрироваться на друзья, чтобы оставаться в безопасности. Когда вы работаете с центральным сервером, вы также получаете центральную точку контроля и наблюдения. Более совершенные централизованные системы связи используют сквозное шифрование, поэтому сервер не может видеть, что вы говорите, но сервер всегда может видеть, с кем вы разговариваете и когда. Подобные метаданные часто более опасны для опрошенных пользователей, чем фактическое содержание сообщения. Хуже того, централизованный сервер может помешать вам говорить, выборочно или полностью.

Одна из критических проблем многих старых систем защищенных сообщений, таких как PGP или S / MIME, заключается в том, насколько трудно пользователям понять, кому они доверяют. В Briar пользователи принимают решения о доверии так же, как люди в реальном мире - по одному человеку за раз. Как и в реальном мире, вы можете представить одного друга другому, но вы не можете создать такие длинные цепочки транзитивного доверия, которые затрудняют понимание происходящего. Для организации, использующей Briar, легко иметь «вводного», задачей которого является обеспечение того, чтобы все в организации познакомились со всеми, с кем им следует поговорить. Однако, в отличие от централизованных систем, Briar для работы не требуется нечто подобное.

Briar также серьезно относится к анонимности. Во многих ситуациях очень важно иметь возможность выступать или организовываться, не позволяя даже тем людям, с которыми вы работаете, связывать вашу работу с вашей общепризнанной правительством идентичностью. Briar работает с Tor по многим причинам - это позволяет нам удостовериться, что мы можем, например, пройти через брандмауэры - но мы также поддерживаем его по причинам анонимности, позволяя пользователям гарантировать, что они когда-либо общаются только с определенными контактами (или кем-либо) через Tor. Даже без использования Tor единственный способ определить, для кого предназначен Briar-трафик, - это если вы видите, как он его получает, или если вы являетесь получателем. Пользователи также могут иметь несколько идентификаторов в системе, в комплекте с отдельными наборами контактов - скажем, один идентификатор для общения со своими друзьями, а другой - для активизма. Это может помочь людям, которым необходимо разделить свою работу по соображениям безопасности, защитить себя, своих сверстников и свое сообщество. Мы прилагаем все усилия, чтобы не допустить утечки информации между идентичностями, которые используют люди, но мы также работаем над тем, чтобы все это было как можно более простым и легким в использовании, поскольку системы безопасности, которые могут использовать люди не понимаю, не помогает им вообще.

Каждое приложение Bramble может предоставить своим пользователям один и тот же набор гарантий безопасности и компромиссов, и пользователи могут выбрать, хотят ли они использовать какое-либо приложение со своей обычной идентификацией и набором контактов, или отключить его и использовать только с некоторыми из них. В то время как в Briar каждый контакт обычно является другим человеком, приложения Bramble не должны работать таким образом - узел системы также может быть всем кодом.

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

С Bramble мы надеемся сделать создание децентрализованной системы столь же простым, как и создание централизованной. Люди строят системы так, как они делают сейчас, потому что двадцать лет работы сделали это легко. Хотя простые случаи децентрализации не слишком сложны, заполнение таких деталей, как безопасность, доверительные отношения или обеспечение прозрачной работы приложений, когда у пользователя несколько устройств, требует гораздо больше работы. Bramble обрабатывает детали и предоставляет разработчикам единый набор возможностей для разных платформ. Несмотря на то, что мы не рассчитываем сделать все возможное для создания децентрализованной системы и быстрого и грязного веб-приложения за один скачок, у нас есть преимущество в гораздо лучшем понимании того, куда мы хотим идти. Есть несколько вещей, которые действительно трудно децентрализовать - например, поиск в масштабах Интернета,

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

В большинстве стран мира Интернет не является ни быстрым, ни надежным. Разрешение людям сотрудничать локально означает, что они могут тратить меньше денег на пропускную способность и продолжать работать даже в случае частых отключений. Транспортная гибкость означает, что любой набор систем связи, доступных локально, может быть адаптирован для использования с децентрализованными приложениями, даже если это означает USB-накопитель и мотоцикл. Во многих случаях сети даже намеренно разрушают, чтобы помешать группам организоваться. Мы видели это снова и снова в разных контекстах, и мы не только хотим, чтобы люди могли продолжать работать в условиях политических репрессий, мы считаем, что знание того, что отключение Интернета будет иметь незначительное влияние или вообще не повлиять на целевые группы, может отговаривать власть имущих от разрушения жизни всех остальных.

Приложения Bramble предназначены не только для людей, которым необходимо поставить безопасность на первое место. Хотя мы считаем, что они будут более полезными, чем статус-кво для всех, мы считаем, что случаи использования помощи при бедствиях - это еще одно конкретное место, где Bramble может оказать необычное воздействие. Инфраструктура может выйти из строя по множеству разных причин. В случае крупномасштабного бедствия группы крупных международных НПО используют тяжелые дорогостоящие спутниковые системы, чтобы обеспечить возможность подключения каждой группы на местах. Пропускная способность в этих системах дорогая, и для их настройки требуется некоторое время. Часто команды, работающие в критические первые 36 часов после аварии, вынуждены делать это практически без подключения. Во многих странах местные организации будут работать вместе с международными группами, и у них редко есть бюджет на повсеместную спутниковую связь.

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

Одним из ключевых свойств децентрализованных систем является то, что при необходимости они могут быть объединены обратно в централизованные версии. Вы можете сделать это, только если спроектируете сначала для децентрализации. Если развертываемая инфраструктура требует от вас централизованного управления, по крайней мере, часть вашей организации должна быть централизована, а поддержание децентрализованных структур вокруг этого ядра потребует значительного объема работы. Мы видели, что это вызывает реальные проблемы, когда децентрализованные политические группы борются за контроль над этим ядром, отвлекаясь от работы.

В мире помощи при стихийных бедствиях одной из постоянных проблем являются усилия по реагированию, ограниченные организационными силами. Это часто означает, что критически важные данные не передаются так быстро, как это необходимо, и решения не принимаются в координации с другими организациями. Это верно, даже когда люди на земле работают бок о бок друг с другом. Когда ИТ-системы делают невозможным интеграцию инфраструктуры помощи на лету, стимулов для решения организационных или логистических проблем становится меньше. В некоторых ситуациях у вас есть внешние команды, развертывающие в сообществах, которые имеют на местах квалифицированные ресурсы с местными знаниями, такие как FEMA в США, развертывающие в сельской местности, где есть добровольные пожарные отделения и EMT. Даже когда люди предварительно квалифицированы и легко проверяются, это ' Трудно интегрировать их в усилия. Децентрализация инструментов, используемых командами для совместной работы, может ускорить такую ​​интеграцию.

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

Подобные сдвиги могут позволить мерам по оказанию помощи при стихийных бедствиях привязываться к местным рынкам, а не только доставлять поставки из-за пределов региона, помогая уменьшить влияние мер реагирования НПО на региональные рынки. Прямо сейчас приток товаров, который происходит, когда крупные НПО реагируют на кризис, может разрушить экономику местного бизнеса. Обеспечение того, чтобы все удовлетворяли свои потребности, проверяли поставки и чтобы мелкие производители все еще могли доставлять товары в срок, является огромной проблемой координации, которая должна происходить при отсутствии или отсутствии заранее построенной инфраструктуры. В настоящее время это подталкивает НПО к центральному управлению и массовому обеспечению. Тем не менее, люди с самым глубоким пониманием того, что их потребности, непосредственно затронуты. Поскольку смартфоны становятся все более распространенными, Идея о продвижении координации ресурсов в сообществе становится более возможной. Во многих случаях может быть возможно предварительно развернуть приложение для координации через приложение типа 311 / city services, которое может дать дополнительные функциональные возможности на лету в случае аварии. С другой стороны, вместо использования системы, подобной этой, только в случае стихийного бедствия, она может быть просто повседневной частью местной торговли, при этом НПО может просто покрывать расходы на поставки и контролировать потребности, даже не вмешиваясь напрямую. Подобные системы будет намного проще построить на Bramble, где архитектура системы может соответствовать архитектуре проблемы. может быть возможно предварительно развернуть приложение координации через приложение типа 311 / city services, которое может дать дополнительные функциональные возможности на лету в случае бедствия. С другой стороны, вместо использования системы, подобной этой, только в случае стихийного бедствия, она может быть просто повседневной частью местной торговли, при этом НПО может просто покрывать расходы на поставки и контролировать потребности, даже не вмешиваясь напрямую. Подобные системы будет намного проще построить на Bramble, где архитектура системы может соответствовать архитектуре проблемы. может быть возможно предварительно развернуть приложение координации через приложение типа 311 / city services, которое может дать дополнительные функциональные возможности на лету в случае бедствия. С другой стороны, вместо использования системы, подобной этой, только в случае стихийного бедствия, она может быть просто повседневной частью местной торговли, при этом НПО может просто покрывать расходы на поставки и контролировать потребности, даже не вмешиваясь напрямую. Подобные системы будет намного проще построить на Bramble, где архитектура системы может соответствовать архитектуре проблемы.

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

С Bramble мы хотим позволить людям создавать системы, которые работают более человечно. Мы не хотим предлагать фиксированные решения, а скорее наборы частей, из которых люди могут легко создавать системы, которые имеют смысл для их жизни. Построение безопасной, децентрализованной и гибкой инфраструктуры лежит в основе другого видения того, как мы все можем жить вместе. Bramble и Briar находятся в стадии разработки. Мы бы хотели, чтобы вы протестировали их и, возможно, даже приняли участие:  https://briarproject.org.


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

Еще раз спасибо! 
Eleanor Saitta
2016.2.29
Хельсинки

Не нашли ответ на свой вопрос? Возможно, вы найдете решение проблемы на нашем канале в Youtube! Здесь мы собрали небольшие, но эффективные инструкции. Смотрите и подписывайтесь на наш youtube-канал!

Смотреть на Youtube

Руководства и обзоры

1 Что нужно восстановить?

Видео

MP4, AVI и HD видео хранятся на телефоне и / или по ошибке удаляются вместе с фотографиями и другими медиафайлами.

Контакты

Номера телефонов друзей и знакомых из приложения «Контакты Android», журналы вызовов; Восстановление SIM-карты.

Фото

Удалены файлы JPG / PNG из Галереи Android; фото, загруженные на мобильный, файлы повреждены после восстановления.

Смс и сообщения

Чаты WhatsApp и Facebook, текстовые сообщения в соцсетях, информация на сим-карте

2 Где пропали файлы?

На sd-карте

Фотографии и документы хранятся на SD-картах. Часто на них случайно удаляются файлы

На телефоне

Программы для восстановления не распознают внутреннее хранилище телефона как диск, но есть другие решения.

На USB флешке

Эти небольшие устройства хранения данных часто выходят из строя или на них появляются ошибки чтения.

На HDD или SSD

Несмотря на то, что настольные платформы становятся все менее популярными, проблема потери файлов всегда оставалась.