Привет, Хабр!
В данной статье рассмотрим незаслуженно забытую тему децентрализованных облачных вычислений, проведём анализ существующих решений и попробуем ответить на главный вопрос - почему мастодонты AWS / Azure до сих пор остаются единственным production-ready решением для облачных вычислений, не оставляя шансов децентрализованным пулам мощностей?
Определение и область применения
Начнём с области применения. Облачные вычисления применяются для широкого спектра задач:
Работа backend'a и хостинг веб-сайтов, мобильных и десктопных приложений
Обучение и инференс нейронных сетей, проведение computing-heavy вычислений для исследовательских задач в различных областях
Облачный гейминг, рендеринг
И множество других требовательных к вычислительной мощности задач
Вариантов их решения условно два: покупка и содержание собственного сервера, либо обращение к услугам облачных провайдеров. Второй вариант имеет множество плюсов: произвольная локация сервера, набор различных конфигураций, техническая поддержка, гарантии стабильной работы.
Минусы тоже есть: высокая цена, тонкая настройка конфигурации невозможна - можно попасть в промежуток между дешевыми, но недостаточными, и дорогими, но избыточными конфигурациями, самый актуальный - для граждан и бизнеса стран, находящихся под санкциями, вариант зарубежных облачных провайдеров сопряжен с рисками и головной болью с оплатой.
А что же децентрализованные вычисления? Это тот же AWS, только машины расположены не в множестве централизованных серверных в ряде регионов мира, а в домах / гаражах / серверных множества людей по всему земному шару, а каждая машина / кластер будет являться нодой сети блокчейна. Гарантом сделки будет выступать не централизованная корпорация, а смарт контракты, платим не картой, а токенами сети.
Плюсы и минусы этого подхода ниже.
Польза и вред
В децентрализованных вычислениях может принимать участие практически любое устройство: старый компьютер на пентиуме, мобильный телефон, майнинг ферма, любительский GPU кластер, современный домашний ПК. А расположены они могут быть в любом месте с электричеством и интернетом.
Это предоставляет арендаторам вычислительных мощностей феерический выбор конфигураций и локаций - можно арендовать мощности престарелого ПК слесаря дяди Васи, а можно арендовать рендер ферму дядюшки Джона из Северной Америки.
Ограничить вам доступ к вычислениям никакие санкции, ограничения и запреты не смогут - блокчейн живет своей жизнью.
Привлекательна и потенциальная стоимость таких услуг - косты и желаемая маржа частных энтузиастов арендодателей мощностей в разы ниже, чем у корпоративных серверов.
Распределенные системы потенциально могут решить задачу скейлинга мощностей «чем больше – тем быстрее» гораздо эффективнее централизованных провайдеров. Множество различных нод в распределенной сети для подобных задач могут сработать эффективнее реплицированных серверных инстансов, к примеру, в AWS.
Сказка, не правда ли? Но чудес не бывает, поэтому без минусов не обошлось.
У дяди Васи отключили электричество / интернет, и ваши вычисления улетели коту под хвост. Сэкономили? Да. Рады? Маловероятно.
Облачные провайдеры обладают необходимой инфраструктурой для обеспечения бесперебойной работы ваших вычислений, а вот нода из децентрализованной сети - очень вряд ли.
Ваши данные и алгоритмы представляют коммерческую ценность? Дядюшка Джон может оказаться любопытным. Возможно он захочет посмотреть, что же вы крутите на его ноде. И ваши данные / алгоритмы будут скомпрометированы.
К мастодонтам AWS и Azure в этом плане доверия, конечно же, в разы больше.
Посмотрим, что из существующих решений нам сейчас доступно.
Актуальные децентрализованные решения для вычислений и хранения данных
Начнем с периферии.
Вычисления, как правило, берутся не из воздуха, а производятся на основе данных, которые где-то хранятся. Порой эти данные могут иметь очень внушительный размер. Какие есть решения децентрализованного хранения данных?
IPFS (InterPlanetary File System) — технология распределенной файловой системы, основанная на DHT (Distributed Hash Table) и протоколе BitTorrent. Она позволяет объединить файловые системы на различных устройствах в одну, используя контентную адресацию.
Обладает высокой пропускной способностью, хранение бесплатно. Однако удаление файлов не предусмотрено, да и вообще хранение файла в сети кем-то, помимо автора, не гарантированно. Оплата для хостеров не предусмотрена.
Есть альтернативные технологии, хранение в которых не бесплатно.
Например, Sia, Storj, Ethereum Swarm, MadeSAFE.
Чтобы обеспечить надежность хранения, используются различные проверки, например, proof of storage (доказательство принятия файла), proof of retrievability (доказательство, что файл в наличии и может быть извлечен). Пользователь платит за хранение, а хостеры получают награду. Плюсы - хранение файлов гарантированно, их можно удалять, пропускная способность высока, надежность хранения засчёт финансовой мотивации. Минусы - не бесплатно и, как правило, совсем не дешево.
С хранением понятно, а что же вычисления?
Единственный относительно известный и развивающийся сервис, найденный мной - iExec.
Схема работы от авторов представлена на рисунке.

На бумаге все выглядит крайне пристойно: децентрализация, безопасность данных, выбор конфигурации и локации, прозрачность взаимодействия хостер / арендатор. Внутренняя валюта - токен RLC, используемый для оплаты и вознаграждения хостеров.
А что же на деле?
А на деле есть нюанс - для нейросетей и других «обычных» вычислений это решение не подойдет. Только dApps, только Web 3.0. Но сервис вполне рабочий - в пуле есть мощности для аренды, их даже кто-то арендует и что-то с ними делает.
Узкоспециализированная, конечно, но вполне жизнеспособная (и живущая) система.
А где же провайдеры децентрализованных «обычных» вычислений?
Досконально прошерстив гугл могу со всей ответственностью заявить - ready-to-go решений в этой области мной обнаружено не было. Проекты на бумаге, замороженные, концепты и гипотетические проекты есть, но когда они попадут в реальную жизнь и попадут ли - большая загадка.
Заключение
Что мы получаем в сухом остатке?
Распределённый реестр, он же блокчейн, выглядит применимым к задаче облачных вычислений. Децентрализованные облачные вычисления имеют право на существование и точно могут найти своих потребителей, но с текущими проблемами (которые довольно сложно решить) шансы на конец гегемонии AWS и др. облачных решений крайне малы.
Недостаточно спроса (по причине рисков и проблем), недостаточно предложений - ведь их рождает спрос. Не будут же хостеры просто так включать свои машины в сеть вычислений, если в ней никто особенно и не вычисляет. Выстреливших проектов не наблюдается, развития и обсуждения темы - тоже.
С хранением файлов всё несколько более радужно. Инфраструктура есть, решений немало, спрос есть как минимум со стороны dApps - не будет же децентрализованное приложение хранить данные на централизованном файлохранилище.
И не будем забывать - в стезе децентрализованного хранения и обмена файлами есть крайне успешный мастодонт uTorrent :)
От себя добавлю, что мне, как ML ресёрчеру, было бы очень интересно воспользоваться децентрализованной сетью GPU кластеров для обучения нейросетевых моделей, если бы такое решение существовало... Но увы и ах - пока это невозможно.
Будем наблюдать за развитием этой отрасли.