Validating decentralized content delivery with Substrate
Валидация в децентрализованном мире — один из важнейших механизмов. По всему миру проекты пытаются ускорить и упростить валидацию без ущерба для безопасности. Андрей Навойчик, Engineering Manager at Cere Network, рассказал про валидацию данных и полностью децентрализованное хранилище на Polkadot Weekend в Тбилиси. Сделали конспект его доклада!
Текущие проблемы с данными в Web3

Смарт-контракты и блокчейн-кошельки дают возможность создавать децентрализованные ID и проводить распределенные транзакции без границ. Но у большинства DeFi-приложений все еще есть централизованные компоненты. Это горячая проблема, которую нужно срочно решать.
У текущих проектов по децентрализованному хранению данных есть ряд проблем: медленная доставка файлов, за скорость приходится много платить, неудобная инфраструктура без тегов и т.д.
Мы пришли к выводу, что сейчас необходим децентрализованный Amazon Web Services (AWS) и Cloudflare. Без этих элементов не может идти и речь о Web3.
Как работает протокол Cere

В протоколе есть два важных компонента:
- Decentralized Data Cloud (DDC). Тут важное понятие нода хранения (storage node) — она отвечает за хранение данных и объединяется в сеть с другими нодами.
- блокчейн дает возможность, помимо хранения данных, управлять ими, передавать и защищать их неизменность. Также в блокчейне можно запустить смарт-контракты, что расширяет спектр возможностей. Мы запустились на Substrate, потому что он очень удобен для разработки модулей и выстраивания логики. Также Substrate подошел из-за интероперабельности. Неплохо было бы со временем выиграть слот в Kusama или Polkadot. Плюсом является опенсорс и наличие большого комьюнити, которое увеличивается. Майннет Cere был запущен в мае 2021 года: 60+ валидаторов и 800+ номинаторов.
Про dApp будущего

Каким мы представим dApp в мире, где решены все проблемы, связанные с децентрализацией и инфраструктурой. Например, разберем проблемы гейминговых и стриминговых сервисов в DeFi. Чаще всего эти сервисы пользуются платформами для хранения и обработки данных/контента и платят за это огромные комиссии. Apple/Google маркеты берут по 30%, музыкальные стриминги зарабатывают не так много — остальное уходит паблишерам, на лицензии и тд. Также существует большая проблема с цензурой.
Можно представить, что в будущем все будут подключаться к онлайн-играм через блокчейн-кошелек, получая доступ непосредственно к игре и глобальному лидерборду, а паблишерам и девелоперам не нужно думать об архитектуре. Также блокчейн дает защиту от проблемы с единой точкой отказа. Также такая система эффективно противодействует цензуре.
Как доставлять данные быстро

Нам не пришлось выдумывать велосипеды, так как до нас уже создали идеальный сервис для этого — decentralized CDN (sCDN, decentralized content delivery network). Мы реализовали это через добавление CDN-ноды. Основная задача этой ноды — передавать данные. Также нода умеет работать как web-сервер. Но как настроить валидацию и анализ данных в децентрализованной среде? Также важно мотивировать участников, чтобы они не прекращали поддержку сети.
Content Identifiers (CID) Это айдишник, который присваивается контенту при помощи хэширования, который можно использовать для авторизации. Это уникальный, расширяемый хэш.
Как опубликовать контент в Web3

Давайте представим, что нам от лица NeFFlix нужно опубликовать фильм на децентрализованной платформе.
-
Начинаем конфигурировать сторадж для фильма, записываем все конфигурации в смарт-контракт (предоплата, газ и т.д.)
-
Настраиваем канал (можно настроить несколько раундов публикации фильма. Например, доступ для команды, потом для премиум-подписчиков, потом для всех)
-
Чтобы юзер смог посмотреть фильм, ему нужно воспользоваться channel-токеном

-
Пользователь может скачать файл с CDN. При этом CDN делает свои внутренние проверки газа, контента, срока истечения канала. CDN-нода также записывает результаты анализа данных, подписи, тайм стемпы и т.д.
-
Ноды сами отправляют репорты в смарт-контракты о результатах работы. Валидаторы идут в CDN-логи и проверяют активность каждой ноды, прежде чем отправить данные в смарт-контракт.
-
Хост может конфигурировать доступ к видео так, чтобы его смотрели и платит за это. Но модели можно настраивать любые: подписки и т.д.
-
Все данные кодируются приватным ключом пользователя.

Про валидаторов
Тут валидаторы существуют по таким же правилам, как и валидаторы блокчейнов. У Substrate есть очень крутая функция — offchain worker. В него можно обернуть любые задания, которые не помещаются в обычный блок. Например, такая тяжелая работа, как перевыбор номинаторов, требует достаточно места.
Полезные ссылки
Cere Website - https://core.network
Cere Docs - https://docs.cere.network
Cere Blockchain Explorer - https://explorer.care.network
Cere Blockchain Mainnet Stats - https://stats.cere.network
CID - https://github.com/multiformatsicid#tcid-content-identifier-specification
BLAKE2 - https://en.wikipedia.org/wiki/BLAKE_(hash_function)#BLAKE
Substrate Smart Contracts - https://substrate.io/developers/smart-contracts/
Substrate Offchain Operations - https://docs.substrate.io/fundamentals/offchain-operations
