IPFS расшифровывается как Interplanetary File System, что означает межпланетную файловую систему. По сути, это открытый, одноранговый (p2p), распределенный гипермедиа-протокол, который создан, чтобы функционировать как универсальная файловая система для всех вычислительных устройств. Это сложный и очень амбициозный проект, который много значит для будущего развития и структуры Интернета.
Что такое IPFS
Сейчас Интернет не так децентрализован, как это изначально воспринималось и на что возлагались надежды. Также он основывается на некоторых устаревших протоколах, которые привели к множеству проблем: задачи, с которыми сталкивается IPFS, исходят из текущего протокола HTTP.
Если вы знаете, как соотносится HTTP и Интернет, то пару слов в пояснение:
протокол поддерживает передачу данных по всему Интернету. HTTP был изобретен в 1991 году, принят веб-браузерами в 1996. Он устанавливает, как сообщения передаются по Интернету, как браузеры должны реагировать на команды, а серверы обрабатывать запросы. Основа — технология «клиент-сервер», то есть одна сторона отправляет запросы, а другие обрабатывают их и возвращают обратно. Это базовый протокол: так мы можем пользоваться Интернетом.
Отличия между IPFS и HTTP можно понять из схемы:
Хотя HTTP буквально показал нам Интернет, он устарел, и уже более 20 лет все более очевидными становятся его проблемы. Основные из них связаны с массовым увеличением интернет-трафика, что приводит к стрессовым ситуациям, высокой нагрузке:
- Неэффективная доставка контента, связанная с загрузкой файлов с одного сервера за раз,
- Дорогие затраты на пропускную способность и дублирование файлов, что приводит к раздутому хранению,
- Увеличение централизации серверов и провайдеров, что приводит к усилению цензуры в Интернете,
- Короткая история информации, хранящейся в Интернете, и короткие сроки существования веб-страниц,
- Прерывистые соединения.
IPFS предоставляет распределенное хранилище и файловую систему. Вместо загрузки файлов с отдельных серверов в IPFS вы запрашиваете их p2p: предоставляют путь к файлу таким образом, а не через центральный сервер. Это позволяет распределять большие объемы данных с высокой эффективностью, управлением версиями, а сеть становится более устойчивой и постоянно доступной. Она защищена и проверена с помощью криптографического хеширования и распределена по сети одноранговых узлов.
Как работает IPFS?
Концепция IPFS практически аналогична World Wide Web, но больше напоминает кучу BitTorrent-ов, которые обмениваются объектами в одном хранилище Git. Файлы распространяются через протокол BitTorrent.
IPFS действует как комбинация Kodemila, BitTorrent и Git для создания распределенной подсистемы Интернета.
Дизайн протокола дает историческое управление версиями Интернета, как в Git. Каждому файлу и всем блокам внутри него присваивается уникальный идентификатор, который является криптографическим хешем. История версий отслеживается для каждого файла. Это приводит к постоянно доступному контенту, где веб-страницы не исчезают из-за отказавшего сервера или банкротства веб-узла. Кроме того, гарантируется аутентичность контента. При поиске файлов пользователь просит сеть найти узлы, которые хранят контент с уникальным ID-хешем.
Связи между узлами в IPFS принимают форму криптографических хешей. Для этого используется архитектура данных Merkle DAG (Directed Acyclic Graphs). К преимуществам DAG Merkle в IPFS относятся:
- Адресация контента. Содержимое имеет уникальный идентификатор, который является криптографическим хешем файла.
- Отсутствие дублирования. Файлы с одним и тем же содержимым нельзя дублировать и сохранить.
- Защита от вмешательства. Данные проверяются с помощью контрольной суммы: если хеш меняется, сеть узнает, что данные подделаны.
IPFS связывает файловые структуры друг с другом через ссылки Merkle, но каждый файл можно найти по понятным для человека именам. Для этого используется децентрализованная система имен IPNS.
Каждый узел сохраняет только интересующий контент и индексирует информацию о том, кто еще что хранит. Структура IPFS устраняет необходимость в централизованных серверах для доставки контента веб-сайта пользователям. Она дает доступ к контенту локально, в автономном режиме. Вместо поиска серверов, как происходит сейчас, пользователи будут искать уникальные идентификаторы, забирая контент с миллиона компьютеров, а не единого сервера.
Текущая главная реализация IPFS на языках Go: на Python и Javascript. Система совместима с Linux, MacOSX, Windows и FreeBSD.
Это проект с открытым исходным кодом и сообществом, вы можете вносить свой вклад на странице Github. Также можно быть оператором собственного узла IPFS.
Где использовать IPFS
Для IPFS уже есть значимые варианты использования. Но также стоит помнить, что протокол развивается, и по мере его разработки случаев применения появится больше. Новая распределенная P2P архитектура для Интернета имеет свои сложности, но преимущества значительные: от огромной финансовой экономии на хранилищах и пропускной способности до интеграции с распределенными блокчейнами.
IPFS дает более эффективную модель хранения данных. Веб-сайты больше не будут открываться с сообщением 404 из-за отключенных серверов или прерванной цепи HTTP-ссылок. Повышается эффективность анализа больших наборов данных.
Поставщики услуг и создатели контента могут также сократить свои расходы через централизованные инфраструктуры.
Технология может использоваться для:
- архивирования информации в Интернете,
- безопасная доставка больших данных, крупного контента,
- исследования архива,
- блокчейна,
- независимого создания и размещения контента.
Централизация серверов приводит к отслеживанию правительством, распространенности DDoS-атак, цензуре и продаже данных.
Наконец, многие надеются на интеграцию IPFS с технологией блокчейн. Используя IPFS в транзакциях, можно размещать неизменяемые вечные ссылки. Временные метки защищают данные, не сохраняя при этом весь блокчейн, что приводит к уменьшению размера блоков.
IPFS включается в ряд криптоплатформ и имеет большой потенциал в этой области.
Но проект также не лишен критики.
Во-первых, это не единственный проект такого рода и не общая концепция. Также есть Ethereum Swarm, SIA, MAIDSAFE и другие. Протокол, например, разрабатывает Library.
Во-вторых, IPFS связан с Filecoin. Но для децентрализованной модели используется централизованный метод поощрения. ICO этого проекта собрало достаточно денег, но большая часть токенов снова отходи крупным игрокам: новая централизация. Разработчики вносят вклад в систему, но не будут иметь дивидендов от сети, поэтому остается стимул уйти в другие проекты.