Глубокий анализ архитектуры и протоколов консенсуса DxChain

in #ico6 years ago


Место где слоны превращаются в верблюдов.

В этом обзоре я постараюсь провести детальный анализ White Paper DxChain, выяснить, как все работает, и попытаться описать основные особенности в более понятной форме. Если вы уже знакомы с White Paper DxChain и во всем разобрались — вы можете пропустить эту статью, в ином случае вы можете найти здесь ответы на некоторые технические вопросы.

Перед тем как с головой погрузиться в технологию DxChain, я думаю, будет целесообразно взглянуть на основные технологии, на которых базируется DxChain — Hadoop и IPFS.


Hadoop — проект с открытым исходным кодом от Apache Software Foundation, это набор утилит, библиотек, а также фреймворк для разработки и выполнения распределенных программ, работающих на кластерах из сотен и тысяч узлов (ПК, серверов, центров обработки данных и т.д.). Он используется для реализации поисковых и контекстных механизмов многих высоконагруженных сайтов, таких как Yahoo и Facebook. Он разработан на Java в рамках вычислительной парадигмы MapReduce, согласно которой приложение делятся на большое количество элементарных заданий, обрабатываемых на узлах кластера, а затем естественным образом сводимых в конечный результат. Развитие Hadoop началось в 2005 году, и к 2010 году Hadoop была признана одной из основополагающих технологий так называемой «big data».

Структура базы Hadoop состоит из следующих модулей:

  • Hadoop Common — содержит библиотеки и утилиты, необходимые для других модулей Hadoop;
  • Hadoop Distributed File System (HDFS) — распределенная файловая система, которая обеспечивает очень высокую суммарную пропускную способность в пределах кластера;
  • Hadoop YARN — модуль имплементированный в 2012 году, отвечает за управление вычислительными ресурсами в кластерах и планирование заданий;
  • Hadoop MapReduce — реализация модели программирования MapReduce для крупномасштабной обработки данных.


Предлагаю более детально рассмотреть технологию MapReduce: MapReduce состоит из двух шагов (методов): первый шаг, Map — выполняет предварительную обработку данных (фильтрация и сортировку; например, сортировка студентов по имени в списки, один список для каждого имени); второй шаг, Reduce — выполняет операцию сведения (например, подсчет числа студентов в каждом списке, с получением частоты упоминания имен).

«MapReduce System» (также называемая «инфраструктурой» или «фреймворком») управляет распределенными серверами, которые обрабатывают различные задачи параллельно, управляет всеми связями и передачей данных между различными частями системы, а также обеспечивает избыточность и отказоустойчивость,


InterPlanetary File System — это еще одна интересная инновационная технология. IPFS является peer-to-peer распределенной файловой системой, которая в будущем может заменить HTTP и вновь децентрализовать Интернет. Считается, что IPFS не имеет единой точки отказа. Технология IPFS на blockchain предложена проектом Filecoin.


IPFS работает путем подключения всех устройств в сети к одной и той же файловой структуре. Файловая структура представляет собой Merkle DAG (одни из любимых терминов blockchain сообщества), который сочетает в себе древо Merkle (используется в технологии blockchain для обеспечения неизменности), а также направленный ациклический граф (DAG) (позволяет пользователям просматривать предыдущие версии контента на IPFS).

И так, мне нравится, что эти технологии имеют много общего с blockchain и могут показать очень хорошую синергию. Теперь мы можем вернуться к рассмотрению DxChain.

Архитектура DxChain

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


Мастер-цепь — главная цепь с Ethereum-совместимой структурой данных и Proof of Work консенсусом. Задачи пользователя по хранению и обработке данных, а также результаты вычислений инициируются в этой цепи.

Боковая цепь данных (DSC) — данные и файлы, загруженные в сеть DxChain, разбиваются на множество равных мелких частей, а затем загружаются в peer-to-peer распределенную файловую систему, такую как IPFS. Сама боковая цепь данных работает в качестве слоя с экономическим стимулом для участников сети; она не используется для непосредственного хранения данных. Через цепь DSC происходит загрузка и скачивание файлов, а также проверка и хранение метаинформации и хэша для каждого маленького кусочка файла.


Основная задача майнера в цепи DSC является обеспечение хранения метаданных и передача файлов в P2P сеть.

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

Proof of Spacetime (PoSt) (протокол консенсуса) используется в качестве консенсуса в цепи DSC. PoSt эволюционировал из многих предшественников, например технологии Provable Data Possession (PDP), которая была создана для того, чтобы клиент, который сохранил свои данные на ненадежном сервере, мог проверить, что сервер все еще хранит его данные, и они не были загружены третьей стороной. В то время как технология PDP является идеальным решением для облачного хранения, она имеет ряд ограничений для децентрализованных сетей, в частности для проверяемых вычислений. PoSt предполагает улучшение технологии PDP для соответствия децентрализованной среде.

Боковая цепь вычислений (CSC) — имеет подобную DSC структуру — это хэш-связанные блоки, которые содержат заголовки, наборы транзакций, контракты сети DxChain и информацию о расположении данных. Транзакции также используют структуру древа Merkle.


Клиент посылает запрос на произведение вычислений в сеть DxChain, и этот запрос распространяется по всей сети. Любой майнер в сети CSC, заинтересованный в выполнении вычисления, потенциально может взять себе задачу. Майнеры (исполнители вычислений, а также те, кто подтверждают валидность вычислений) цепи CSC загружают код и данные в DxChain Virtual Machine (DVM). Код исполняется в виртуальной машине, включая параллельные вычисления и проверку вычислений. После выполнения задачи майнер-исполнитель отправляет подтверждение в CSC для обновления состояния задачи и получает вознаграждение.

CSC использует два вида протоколов консенсуса для разных типов вычислений, два разных подхода в разработке процесса валидации (проверки).

Verification game (протокол консенсуса) — в теории, Verification game представляет собой фреймворк, который позволяет смарт-контрактам безопасно выполнять любые вычислительные задачи без необходимости доверия. Кроме того, по сравнению с вычислениями в смарт-контрактах в сети Ethereum, Verification game значительно снижает количество избыточных вычислений производимых узлом.

В Verification game майнеры выполняют разные роли с разными функциями. Основные роли это: Solver (тот, кто проводит вычисления), Challenger (тот, кто пытается оспорить результаты вычислений) и Judge (арбитр).

Насколько я понимаю (так как эта часть WP изложена достаточно запутанно, или это плохой перевод с китайского) — Judge выполняет очень маленький объём вычислений, необходимый исключительно для проверки результатов вычислений Solver и Challenger, путем проведения нескольких раундов проверки. Так как Judge производят лишь небольшое количество вычислений, они проверяют результаты между собой посредством протокола консенсуса PoW.

Протокол Verification game не доверяет и не полагается на репутацию его участников и не требует доверенной стороны в системе. Для выполнения задач Solver и Challenger требуется наличие токенов в депозите. Недобросовестные майнеры теряют свой депозит. Такая механика штрафов с течением времени потенциально устраняет ненадежных майнеров.

Provable Data Computation (протокол консенсуса) — в этом протоколе команда DxChain предлагает статистический подход к доказательству правильности вычислений. Прежде всего, предлагается определить количество одинаковых результатов, получение которых дает уверенность в правильности вычислений. В примере WP указывается, что целесообразно использовать 7 одинаковых результатов.

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

Оба протокола имеют свои преимущества и недостатки. Verification game имеет сильное доказательство. Тем не менее, это сложный интерактивный процесс, который не так легко реализовать. PDC имеет слабое доказательство, но его достаточно для большинства распределенных вычислений. PDC очень прост в применении к распределенным вычислениям.

DxChain использует Verification game и PDC для различных сценариев.

Набор инструментов Hadoop в сети DxChain

Для облегчения вычислений в сети DxChain команда проекта намерена разработать и имплементировать такие инструменты из Hadoop как: DPIG, DHive и DMahout.

PIG — это набор высокоуровневых языков для анализа данных. PIG поддерживает операции с базами данных и анализ неструктурированной информации. PIG является идеальным инструментом для анализа, а также анализа на лету, если данные хранятся в виде обычного текста,.

Hive облегчает чтение, запись и управление большими объемами данных, находящихся в распределенной базе, с использованием SQL. DxChain поддерживает базы данных, а SQL используется для выполнения операций, связанных с бизнес-аналитикой.

Mahout является основой для запуска алгоритмов машинного обучения, включая Canopy Clustering и Principal Component Analysis (Метод главных компонентов) и тд.

ОК, это были те технические вопросы, в которых мне было интересно разобраться, для понимания общей архитектуры проекта DxChain. Я надеюсь эта статья помогла и вам лучше разобраться в проекте.

Больше информации вы найдете — https://www.dxchain.com/

Моя реферальная ссылка — https://t.me/DxChainBot?start=8m59ad-8m59ad

Sort:  

Congratulations @anny-goes-crypto! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes received

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Congratulations @anny-goes-crypto! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes received

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Congratulations @anny-goes-crypto! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

You got your First payout

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Coin Marketplace

STEEM 0.17
TRX 0.13
JST 0.028
BTC 59325.16
ETH 2609.11
USDT 1.00
SBD 2.41