Что такое IPFS (Межпланетная файловая система)?

Привет, друзья. Мы часто с вами обсуждаем будущее экономики относительно развития интернета и захватывающие инновации, которые могут сыграть ключевую роль в ее формировании. Одной из ключевых технологий может стать Межпланетная файловая система (IPFS). Это одноранговая (p2p) система обмена файлами, цель которой — кардинально изменить способ распространения информации по всему миру. IPFS состоит из нескольких нововведений в протоколах связи и распределенных системах, которые были объединены для создания файловой системы, не похожей ни на одну другую. Таким образом, чтобы понять всю широту и глубину того, что IPFS пытается достичь, важно понять технологические достижения, которые делают это возможным.

Протоколы связи и распределенные системы

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

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

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

Межпланетная файловая система (IPFS)

IPFS пытается устранить недостатки модели клиент-сервер и HTTP-сети с помощью новой системы обмена файлами p2p с открытым исходным кодом. Эта система представляет собой синтез нескольких новых и существующих инноваций. Сотни разработчиков по всему миру внесли свой вклад в развитие IPFS и вот ее основные компоненты.

Распределенные хэш-таблицы

Хэш-таблица представляет собой структуру данных, которая хранит информацию в виде пар ключ/значение. В распределенных хэш-таблицах (DHT) данные распределяются по сети компьютеров и эффективно координируются для обеспечения эффективного доступа и поиска между узлами. Основные преимущества DHT заключаются в децентрализации, отказоустойчивости и масштабируемости. Узлы не требуют центральной координации, система работает, даже когда узлы выходят из строя, а DHT могут масштабироваться для размещения миллионов узлов. Вместе эти функции приводят к тому, что система, как правило, более устойчива, чем клиент-серверные структуры.

Блок обмена 

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

Меркле DAG

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

Отдельные блоки данных называются «конечными узлами», которые хэшируются для формирования «неконечных узлов». Эти неконечные узлы затем можно объединять и хэшировать, пока все блоки данных не будут представлены одним корневым хэшем. 

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

Системы контроля версий IPFS

Еще одна мощная особенность структуры Merkle DAG заключается в том, что она позволяет создавать распределенную систему контроля версий (VCS). Наиболее популярным примером этого является Github, который позволяет разработчикам легко, совместно и одновременно работать над проектами. Файлы на Github хранятся и управляются с помощью Merkle DAG. Это позволяет пользователям независимо дублировать и редактировать несколько версий файла, сохранять эти версии и позже объединять изменения с исходным файлом.

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

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

Самосертифицирующаяся файловая система (SFS)

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

IPFS основывается на этой концепции для создания межпланетного пространства имен (IPNS). Это SFS, использующая криптографию с открытым ключом для самосертификации объектов, опубликованных пользователями сети. Ранее мы упоминали, что все объекты в IPFS могут быть однозначно идентифицированы, но это также распространяется на узлы. Каждый узел в сети имеет набор открытых ключей, секретных ключей и идентификатор узла, который является хэшем его открытого ключа. Поэтому узлы могут использовать свои закрытые ключи для «подписи» любых объектов данных, которые они публикуют, и подлинность этих данных может быть проверена с использованием открытого ключа отправителя.

Почему это важно

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

Он также используется в качестве дополнительной файловой системы для общедоступных цепочек блоков и других приложений p2p. Сейчас может потребоваться несколько долларов для хранения килобайта данных в смарт-контракте Ethereum. Это является серьезным препятствием, а в настоящее время наблюдается массовый рост новых децентрализованных приложений (DApps). IPFS совместима со смарт-контрактами и данными блокчейна, поэтому может добавить надежную и недорогую емкость хранилища в экосистему Ethereum. Попытка сделать данные блокчейна Ethereum изначально доступными в IPFS — это отдельный протокол, известный как IPLD (межпланетные связанные данные).

Проблемы IPFS

Несмотря на впечатляющую производительность IPFS, некоторые проблемы еще не полностью решены. Во-первых, адресация контента в IPNS в настоящее время не очень удобна для пользователя. Типичная ссылка IPNS выглядит следующим образом:

ipfs.io/ipns/QmeQe5FTgMs8PNspzTQ3LRz1iMhdq9K34TQnsCP2jqt8wV/

Эти ссылки могут быть сокращены до более простых имен с использованием системы доменных имен (DNS), но это создает внешнюю точку отказа для распространения контента. Тем не менее, контент по-прежнему доступен через исходный адрес IPNS. Некоторые пользователи также сообщают, что IPNS может быть медленным при разрешении доменных имен с задержкой до нескольких секунд. 

В IPFS также мало стимулов для узлов для поддержки долгосрочного резервного копирования данных в сети. Узлы могут выбрать очистку кэшированных данных для экономии места, то есть теоретически файлы могут в конечном итоге «исчезнуть» со временем, если не останется ни одного узла, в котором хранятся данные. На текущих уровнях это не является существенной проблемой, но в долгосрочной перспективе резервное копирование больших объемов данных требует сильных экономических стимулов.

Завершение

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

На этом все и до новых встреч!

Материалы по теме

bitcoin

Bitcoin (BTC)

$ 70,452.00
ethereum

Ethereum (ETH)

$ 3,550.69
cardano

Cardano (ADA)

$ 0.658963

Новости

Лидеры мнений

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь