Почему группы DAG не масштабируются без централизации

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

Эта архитектура позволяет группам доступности баз данных реализовать два основных улучшения. Группы DAG могут обрабатывать транзакции практически мгновенно, за долю времени, необходимого для блокчейнов. DAG, такие как IOTA и Nano, также исключают из уравнения традиционных майнеров, делая транзакции быстрыми и бесплатными; Святой Грааль. Они намекают на то, что проблемы масштабирования, которые мешают блокчейн-проектам, положить конец, и обещают появление глобальных сетей, лежащих в основе таких систем, как Интернет вещей (IoT) и индустрии финансовых платежей.

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

Переход по горизонтали

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

Это позволяет, связывать транзакции с транзакциями. Например, DagCoin (исходная реализация DAG) и IOTA требуют, чтобы каждая ожидающая новая транзакция обрабатывала одну и две другие транзакции соответственно до обработки транзакции. По-прежнему существует майнинг Proof of Work (PoW), он просто осуществляется посредством обработки транзакций, чтобы позволить обработку вашей собственной транзакции.

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

Это также позволяет масштабировать проекты до большего количества транзакций в секунду (tps), чем блокчейн, для удовлетворения будущих потребностей. В отличие от блокчейна, где большее количество участников в сети и большее количество обрабатываемых транзакций до сих пор приводило к более медленной сети, в DAG чем больше участников и транзакций, тем лучше, поскольку теоретически это позволяет быстрее выполнять большее количество транзакций. В то время как Биткойн и Эфириум в настоящее время управляют 7 и 15–20 транзакциями в секунду соответственно, подобные IOTA и Nano требуют ~ 1000 и 7000 транзакций в секунду, насколько это возможно в настоящее время. Это также означает отсутствие комиссии за транзакцию - ваша «комиссия» покрывает другие транзакции.

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

Нет глобального состояния

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

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

Это не проблема, если все узлы могут видеть все транзакции, потому что узлы по-прежнему смогут сверяться с историческими транзакциями, чтобы гарантировать отсутствие двойных расходов. Например, вот как в настоящее время работает IOTA Tangle, при этом Tangle полностью хранится на каждом узле. Поскольку размер базы данных станет слишком большим, если ее не проверить, а требования к жесткому диску станут невыполнимыми, при необходимости база данных сокращается. По сути, это принимает форму снимка состояния, позволяющего узлам удалить все предшествующие транзакции.

Это не оптимальное решение, поскольку одним из преимуществ блокчейна является неизменный и постоянный реестр, который он ведет. Чтобы группы DAG избегали этого необходимого удаления, группу DAG можно разделить на разные сегменты. Это работает аналогично сегментированию блокчейна - группа DAG разделена на множество различных мини-групп DAG. Обработка 1/100 DAG менее интенсивна, чем ее обработка целиком (потому что они должны проверять только гораздо меньшее подмножество транзакций), и поэтому больше транзакций может быть обработано за меньшие временные рамки. Хотя все шарды по-прежнему работают по одному и тому же протоколу, теперь они видят только части текущих транзакций и связанную с ними историю.

Это вызывает ряд проблем.

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

По мере масштабирования группы DAG эта проблема становится более распространенной. Чем больше осколков, тем меньше шансов на перекрытие между осколками, и, следовательно, увеличивается вероятность двойного расходования. Простым решением было бы, чтобы все узлы связывались друг с другом для каждой транзакции, которую они видят, но тогда это будет стоить столько же, сколько все узлы просто удерживают всю DAG.

Кроме того, в отличие от блокчейна, такого как Биткойн, где блоки непрерывно добываются «в унисон», хотя и противодействуют, майнеры, хеширование DAG происходит только при обработке новых транзакций. Злоумышленникам нужно всего лишь набрать более 33% общей хэш-мощности, чтобы иметь возможность атаковать сеть, даже до того, как она будет сегментирована, и отсутствие постоянного майнинга (например, IOTA в настоящее время обрабатывает 1,2–2,4 транзакции в секунду, подавляющее большинство из которых являются пустыми транзакциями) плюс минимальный уровень транзакций делает его уязвимым для атаки.

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

Как бы то ни было, децентрализованная безопасность обменивается на производительность.

В настоящее время единственный способ гарантировать DAG от двойных расходов и 34% атак - это централизованный орган. Byteball, другой DAG, имеет 12 «узлов-свидетелей», а IOTA - «Координатор».

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

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

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

Подумайте, что произойдет, если злоумышленнику удастся вывести из строя значительную часть узлов (либо посредством атаки на систему, либо посредством вспомогательной атаки, например, на электрические сети). Означает ли это, что централизованная власть восстановлена? А что будет в случае DDoS-атаки на сами централизованные узлы? Ограниченное количество узлов гораздо легче атаковать, чем тысячи узлов по всему миру. Одним из основных преимуществ Биткойна было то, что это была распределенная сеть, распространяющаяся по всему миру, и поэтому ее было бы намного сложнее закрыть.

Есть и другие проблемы, связанные с DAG, которые будут препятствовать масштабированию до необходимых уровней.

Жизнь в реальном мире

В условиях тестирования такие переменные, как оборудование и местоположение, обычно оптимизируются или не являются проблемой (поскольку может быть сложно или нежелательно запускать узлы по всему миру). В реальных сценариях ни одна сеть не может контролировать эти факторы. Это означает, что они должны быть готовы к худшему оборудованию и худшему расположению узлов. В сети, которая предоставляет мгновенные (или почти мгновенные, учитывая ограничения скорости света / Интернета) подтверждения, это вызывает проблему для более удаленных или более медленных узлов, которые быстро перестанут синхронизироваться с сетью и вместо этого начнут видеть неподтвержденные транзакции. накапливать.

Таким образом, новые транзакции не будут разрешены так быстро, и система начнет заполняться большим количеством незавершенных транзакций. Из-за архитектурных различий между блокчейном и DAG, скорость обработки ваших транзакций будет зависеть от того, к какому узлу вы подключены - в отличие от блокчейна, где ожидающие транзакции / время ожидания согласованы, прозрачны и одинаковы для всех.

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