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

Пару лет назад в «Хакере» уже была статья о необычных способах хранения и передачи файлов («Как пересылать большие файлы надежно и незаметно?»). С тех пор популярность стал набирать новый метод, который называют «туманом» или «спустившимся облаком» (не путать с bitcoin fog — методом запутывания транзакций). Его суть в том, что функции облачного провайдера может выполнять не какой-то определенный дата-центр, а тысячи компьютеров в единой пиринговой сети. Каждый из них выделяет часть своих простаивающих ресурсов, а его владелец получает за это вознаграждение. Например, он может предоставлять в общее пользование часть свободного места на своем диске и трафик для обращения к нему.

Некоторую популярность удалось завоевать «туманным» сервисам синхронизации файлов — например, BitTorrent Sync (ныне — Resilio Sync) и его свободному аналогу Syncthing. Однако они хороши только для дублирования данных между доверенными узлами. Вырасти до масштабов глобальных P2P-хранилищ им не дают концептуальные ограничения и отсутствие финансовой заинтересованности участников.

Исправить положение взялись другие разработчики распределенных систем. Чаще всего идея этих стартапов состоит в том, чтобы сделать свое туманное облако с блокчейном и хешами. Для этого достаточно разместить его в P2P-сети, которая объединит всех заинтересованных участников. Одни смогут дешево получить любой мыслимый объем дискового пространства, а другие — предоставить его часть за вознаграждение. Блокчейн здесь используется сразу с двумя целями: для гарантии целостности данных и для упрощения взаиморасчетов.

 

Blockchain в хранении данных

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

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

  • полную или частичную децентрализованность. Данные хранятся буквально везде, и нет какого-то определенного места, куда за ними может отправиться АНБ или где их внезапно смоет цунами;
  • высокую избыточность. В случае P2P-сети исчезновение нескольких узлов не играет роли — ты получишь свои файлы от других, даже не заметив проблемы;
  • высокую отказоустойчивость. Вероятность одномоментного отказа всей пиринговой сети близка к нулевой. Какие-то узлы все равно останутся доступными, а остальные синхронизируются с ними при первой возможности;
  • защиту от случайных и преднамеренных модификаций данных. Распределенная база не имеет уязвимостей, типичных для локальной БД. Никакой злодей не повредит ее и не перезапишет существующие блоки;
  • широкую полосу пропускания. Скорость соединения в P2P-сети будет расти по мере появления новых и более быстрых узлов.

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

 

Криптовалюты и другая криптота

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

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

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

Стоимость Datacoin стремится к нулю
Стоимость Datacoin стремится к нулю

Платить криптовалютой за дисковое пространство предлагали и авторы проекта Filecoin (PDF). Однако их Twitter не обновляется уже год, а последняя запись в их официальном блоге и вовсе датируется июлем 2014-го.

Другой подход к хранению данных использовала группа ученых из Microsoft Research. Они сочли технически невозможным совместить криптографическую надежность и «полезные» вычисления и предложили собственную криптовалюту Permacoin. В отличие от Datacoin она выплачивается не за само место, а за скачивание и долговременное хранение фрагментов распределенной базы данных. Периодически запускается проверка загруженного контента по хешам, что и служит основанием для начисления криптовалюты конкретным участникам пиринговой сети.

Пока что эффективнее всего перепродавать чужие дисковые объемы получается у Storj Labs — молодой компании из Атланты. Три года назад ее основатели предложили «новый» метод распределенного хранения файлов, скромно назвав его в честь компании. Она по-прежнему на плаву, а котировки одноименной криптовалюты Storjcoin X понемногу растут и, возможно, поднимутся еще чуть-чуть после очередного упоминания в прессе.

Котировки Storjcoin X
Котировки Storjcoin X

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

Во-первых, хранить сами файлы в блокчейне никто в здравом уме не собирается. Иначе пара порноколлекций положила бы всю пиринговую сеть уже на начальном этапе. Размер цепочки вырос бы до терабайтов, а время ее синхронизации устремилось бы в бесконечность. Поэтому вместо самих файлов в блокчейн отправляются только их метаданные. Объем метаданных в Storj сейчас составляет менее килобайта на файл независимо от его размера. Таким образом, для хранения записей о миллионе файлов в блокчейне потребуется не более гигабайта. Это уже приемлемо, но все равно многовато. В Storj ищут способы более эффективной компрессии метаданных, чтобы ужать распределенную базу еще сильнее. Вполне реально сжать ее в два-три раза, но пока и так сойдет™.

Во-вторых, весь код в Storj открытый. Никаких секретов — бери и смотри. В-третьих, Storj неплохо документирован. В августе 2014 года сооснователь и исполнительный директор Storj Labs Шон Уилкинсон опубликовал вместе с Джимом Лоури статью «Метадиск: приложение для децентрализованного хранения файлов на базе блокчейна» (PDF), где описаны основные принципы будущего Storj.

Главной целью проекта было создание «принципиально новой и общедоступной платформы распределенного файлового хранилища», более надежного и более рентабельного, чем традиционные облака на базе крупных дата-центров. Так появился Metadisk — простое приложение для широкого круга пользователей и программные интерфейсы, которые позволяют добавить P2P-хранилище к любому проекту. Их объединил сервис Storj, который сегодня почти дорос до юзабельного уровня. Сегодняшнее состояние Storj детально описывается в более новой научной работе Уилкинсона и его коллег (PDF).

Другие интересные свойства Storj касаются одноименной криптовалюты. Сначала в Storj использовалась Datacoin, но потом появилась своя — Storjcoin X (SJCX). Обычно в любом блокчейне валюта генерируется в процессе майнинга, который требует значительных вычислительных ресурсов. Генерация нового блока считается доказательством проделанной работы (PoW, proof of work), и за нее начисляются виртуальные монетки. Заработанную криптовалюту можно передавать как внутри той же децентрализованной сети, так и в других сетях (через биржу) или обменивать на традиционные валюты.

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

Общее количество SJCX жестко ограничено алгоритмом, а желающих получить эти монетки все больше. Если сама идея распределенного хранения данных выгорит, то котировки SJCX продолжат расти и дальше.

Отсутствие майнинга в теории позволяет сдавать в аренду место на накопителе любого устройства с процессором. Сейчас есть готовые клиенты для Windows, Debian Linux и macOS. Но поскольку исходники открыты, есть возможность портировать их на все что угодно, включая NAS и роутеры с прошивками вроде OpenWRT и DD-WRT.

 

Миграция на Ethereum

В марте 2017 года владельцы Storj объявили о том, что планируют перевести свою криптовалюту с блокчейна Bitcoin на Ethereum. Шон Уилкинсон приводит целый список достоинств Ethereum по сравнению с Bitcoin и обещает в скором времени опубликовать подробный план миграции. Пока известно лишь, что владельцы SJCX получат взамен старых монет новые по курсу 1:1.

Именно c блокчейном Ethereum сегодня связано все больше распределенных баз данных и уникальных сервисов. По заказу Банка России ассоциация «Финтех» создала систему идентификации клиентов Masterchain. Acronis разработала универсальное программно определяемое хранилище данных (SDS, software-defined storage). Microsoft и вовсе предлагает модель Ethereum Blockchain as a Service (EBaaS), которую легко может опробовать любой разработчик.

Подробнее об Ethereum и о концепции умных контрактов ты можешь узнать из темы номера «Хакера» за июль 2016 года.

 

Подключаемся к Storj

Присоединиться к сети Storj и сдавать диск в аренду несложно. Заходишь в раздел Rent your drive на сайте проекта, скачиваешь клиент Storj для своей операционки и запускаешь его. Некоторые антивирусы будут ругаться на виндовый клиент Storj, но их реакция выглядит как ложноположительное срабатывание эвристики при столкновении со слишком уж необычной программой.

Storj
Storj

При первом запуске Stroj Share потребуется ввести номер кошелька для получения Storjcoin X. Он указывается в формате Bitcoin, поэтому можно использовать существующий или создать новый — например, на Counterparty. Авторизация там адская. Сервер генерирует парольную фразу из двенадцати случайных слов, которые затем надо вводить по одному с экранной клавиатуры. Считается, что это повышает безопасность, но мучений масса, а современные кейлоггеры все равно обходят эти хитрости.

Продолжение статьи доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все статьи на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта, включая эту статью. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи одну статью

Заинтересовала статья, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для статей, опубликованных более двух месяцев назад.


2 комментария

Подпишитесь на ][, чтобы участвовать в обсуждении

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

Check Also

Как сделать игру. Выбираем движок и пишем клон тех самых «танчиков»

С каждым днем игры становятся все сложнее и навороченнее. Быть инди, а точнее соло-разрабо…