Открыть сервис

Распределённый DAG

Распределённый DAG — это математическая модель в виде ориентированного ациклического графа (DAG), вершины и рёбра которого хранятся и обрабатываются на множестве независимых вычислительных узлов (серверов, кластеров, устройств), объединённых сетью. В отличие от классического DAG, который целиком помещается в памяти одного процесса, распределённый DAG представляет собой фрагментированную структуру, где каждый узел отвечает за подмножество вершин и рёбер, а синхронизация и консенсус между узлами обеспечиваются специальными протоколами. Эта модель широко применяется в распределённых базах данных, потоковой обработке данных, а также в некоторых криптовалютных системах (например, IOTA, Hedera Hashgraph) в качестве альтернативы блокчейну.

Основные характеристики

Ориентированность и ацикличность

Как и любой DAG, распределённая версия сохраняет свойство отсутствия циклов: не существует пути, который начинается и заканчивается в одной и той же вершине. Это гарантирует, что порядок обхода графа всегда определён, что критично для транзакционных систем и вычислительных конвейеров. Ацикличность позволяет строить топологическую сортировку, даже если граф распределён по узлам.

Распределённое хранение

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

Асинхронность и параллелизм

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

История возникновения

Идея использования DAG в распределённых системах возникла как ответ на ограничения блокчейна (низкая пропускная способность, высокое энергопотребление, проблема масштабирования). Первые теоретические работы по распределённым DAG-структурам появились в начале 2010-х годов в контексте потоковой обработки данных (Apache Flink, Apache Spark). Однако практическое применение в криптовалютах началось с публикации в 2015 году протокола Tangle (IOTA), где DAG использовался для записи транзакций без майнинга.

В 2016 году компания Swirlds представила алгоритм Hashgraph, основанный на распределённом DAG с виртуальным голосованием. В 2018 году появились проекты Avalanche (протокол консенсуса на основе DAG) и Fantom (платформа смарт-контрактов на DAG). В последующие годы распределённые DAG стали основой для многих систем децентрализованных финансов (DeFi) и корпоративных решений.

Архитектура и компоненты

Вершины (узлы графа)

В распределённом DAG вершины могут представлять:

Рёбра (зависимости)

Рёбра задают отношение «предшественник — последователь». В распределённой системе рёбра могут быть:

Протоколы консенсуса

Для того чтобы все узлы пришли к единому мнению о структуре DAG, применяются различные алгоритмы:

Механизмы репликации

Распределённый DAG может использовать:

Применение

Криптовалюты и блокчейн-альтернативы

Наиболее известное применение распределённого DAG — это криптовалюты, стремящиеся преодолеть недостатки блокчейна:

Потоковая обработка данных

В системах реального времени, таких как Apache Flink, Apache Spark Streaming и Google Dataflow, распределённый DAG описывает конвейер обработки: источники данных, операции преобразования и приёмники. Каждый узел кластера выполняет часть графа, а рёбра представляют потоки данных между операторами.

Научные вычисления и CI/CD

Распределённые DAG используются в системах управления задачами (Workflow Management Systems), например, Apache Airflow, Luigi, Prefect. Здесь DAG описывает зависимости между шагами обработки данных (ETL-процессы, машинное обучение). Каждый шаг может выполняться на отдельном узле кластера.

Базы данных и распределённые реестры

Некоторые распределённые базы данных (например, Amazon QLDB, Cosmos DB) используют DAG для журналирования изменений. В отличие от блокчейна, DAG не требует глобального консенсуса на каждом шаге, что ускоряет запись.

Преимущества и недостатки

Преимущества

Недостатки

Критика и ограничения

Основная критика распределённых DAG связана с их безопасностью. В системах, где нет единого лидера (как в блокчейне), атака 51% может быть реализована через координацию злоумышленников, контролирующих значительную долю вычислительной мощности или стейка. Кроме того, в некоторых реализациях (например, ранние версии IOTA) был обнаружен уязвимый механизм выбора транзакций для подтверждения, что позволяло проводить атаки «спам-транзакциями».

Другая проблема — отсутствие стандартизации. Каждый проект (IOTA, Hedera, Avalanche) использует собственный уникальный протокол консенсуса, что затрудняет сравнение и аудит. В корпоративных системах (Apache Airflow) распределённый DAG требует тщательного управления зависимостями, иначе возможны deadlock-ситуации.

Сравнение с блокчейном

ПараметрБлокчейнРаспределённый DAG
СтруктураЛинейная цепочка блоковОриентированный ациклический граф
Порядок транзакцийГлобальный, строгийЧастичный, возможен параллелизм
Пропускная способностьОграничена размером блокаПотенциально неограничена
ЭнергопотреблениеВысокое (Proof-of-Work)Низкое (Proof-of-Stake или без майнинга)
Время подтвержденияОт минут до часовСекунды (в некоторых реализациях)
Сложность реализацииОтносительно низкаяВысокая

Будущее развитие

Исследования в области распределённых DAG продолжаются. Основные направления:

Источники

  1. Popov, S. (2018). The Tangle. IOTA Whitepaper.
  2. Baird, L. (2016). The Swirlds Hashgraph Consensus Algorithm: Fair, Fast, Byzantine Fault Tolerance. Swirlds Technical Report.
  3. Rocket, T. (2019). Snowflake to Avalanche: A Novel Metastable Consensus Protocol Family for Cryptocurrencies. Avalanche Whitepaper.
  4. Apache Flink Documentation. (2024). Distributed DAG Execution.
  5. Apache Airflow Documentation. (2024). Directed Acyclic Graphs in Workflow Management.
  6. Mazieres, D. (2015). The Stellar Consensus Protocol. Stellar Development Foundation.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →