Введение
Когда вы думаете о криптовалюте, на ум, скорее всего, приходят термины «блокчейн» или «технология распределенного реестра». С момента запуска Биткойна были созданы сотни других криптовалют. Большинство из них полагаются на схожую сетевую архитектуру. Их структуры данных позволяют пользователям передавать ценности или взаимодействовать с децентрализованными приложениями.
В блокчейне к растущей цепочке блоков периодически добавляется новый блок. Каждый блок связан с предыдущим своего рода криптографической связью (в частности, хешем). В каждом из этих блоков содержатся недавние транзакции, опубликованные пользователями.
Но между трансляцией транзакции и ее включением в блок часто проходит период ожидания. Думайте об этом как об ожидании поезда на станции. В зависимости от размера вагонов (размера блока) и количества других людей, ожидающих (ожидающих транзакций), вы, возможно, даже не сможете сесть на следующий поезд. Или даже тот, что после этого. Вы можете ждать подтверждения транзакции от нескольких секунд до нескольких часов.
Для многих это достойный компромисс. В конце концов, он обеспечивает очень высокую степень безопасности, не полагаясь на централизованного координатора. Для других технология блокчейна имеет срок годности. Недоброжелатели полагают, что в долгосрочной перспективе проблемы масштабируемости, с которыми сталкивается технология блокчейна, будут препятствовать ее массовому внедрению.
Некоторые считают, что будущее сетей криптовалютных платежей лежит в совершенно другой архитектуре — направленных ациклических графах (или DAG).
Что такое ДАГ?
DAG — это другой тип структуры данных. Думайте о ней как о базе данных, которая соединяет вместе различные фрагменты информации. «Направленный ациклический граф» — это сложный термин, поэтому давайте начнем с его разбора.

Ориентированный ациклический граф.
Концептуально группы обеспечения доступности баз данных выглядят примерно так, как показано выше. Они состоят из вершин (сфер) и ребер (линий, соединяющих их). Они направлены, потому что движутся в одном направлении (вы можете видеть это стрелками). Они ацикличны (т. е. не цикличны), поскольку вершины не зацикливаются сами на себя — если вы начнете с одной точки и будете следовать по графику, вы не сможете вернуться в ту же точку. Вскоре это станет яснее.
Такие структуры данных обычно используются для моделирования данных. Вы можете положиться на DAG в научной или медицинской сфере, чтобы наблюдать взаимосвязь между переменными и определять, как они влияют друг на друга. Например, вы можете взять такие вещи, как питание, циклы сна и физические симптомы, чтобы установить связь между ними и установить, как они влияют на пациента.
Для наших целей нас больше интересует, как они могут помочь достичь консенсуса в распределенной сети криптовалют.
Как работает DAG?
В криптовалюте на основе DAG каждая вершина структуры представляет собой транзакцию. Здесь нет понятия блоков, и для расширения базы данных не требуется майнинг. Таким образом, вместо того, чтобы собирать транзакции в блоки, каждая транзакция строится поверх другой. Тем не менее, существует небольшая операция Proof-of-Work, которая выполняется, когда узел отправляет транзакцию. Это гарантирует, что сеть не будет рассылаться спамом, а также проверяет предыдущие транзакции.
Чтобы добавить новую транзакцию, она должна быть построена на основе старых. Предположим, что Алиса создает новую транзакцию. Для подтверждения эта транзакция должна ссылаться на предыдущие. Это немного похоже на то, как блок в Биткойне ссылается на предыдущий, но здесь упоминается несколько транзакций.
В некоторых системах алгоритм выбирает, на каких транзакциях (или «подсказках») должна основываться новая транзакция. Советы, которые будут выбраны с большей вероятностью, имеют больший совокупный вес — меру того, сколько подтверждений имеет путь к совету.
Транзакции, на основе которых будет строиться Алиса, не подтверждены. Но как только Алиса ссылается на них, они подтверждаются. Транзакция Алисы теперь не подтверждена, поэтому кто-то другой должен доработать ее, прежде чем она будет принята.
Пользователи с большей вероятностью будут подтверждать транзакции с «большим» весом, чтобы система продолжала расти. В противном случае ничто не мешает пользователям постоянно использовать старые транзакции.
С помощью блокчейнов защититься от двойных расходов достаточно просто. Одни и те же средства не могут быть потрачены дважды в блоке — узлы легко обнаруживают любую попытку и отклоняют любой блок, содержащий конфликтующие транзакции. Поскольку майнерам очень дорого производить блоки, у них есть стимул играть честно.
Группы DAG также имеют механизм предотвращения двойных расходов. Вроде похоже, но без майнеров. Когда узел подтверждает старые транзакции, он оценивает весь путь до самой первой транзакции группы обеспечения доступности баз данных, чтобы убедиться, что отправитель имеет достаточный баланс. Путей может быть несколько, но проверять нужно только один.

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

Это действительно возможно, но это решается с помощью алгоритма выбора, который отдает предпочтение наконечникам с более тяжелым совокупным весом. Это означает, что со временем вы получите ветку, которая будет намного сильнее остальных. Более слабые будут заброшены, а сеть продолжит строиться на самом тяжелом.
Как и в случае с блокчейнами, здесь нет абсолютной окончательности — вы никогда не можете быть на 100% уверены, что транзакция не будет отменена. Это невероятно маловероятно, но теоретически вы можете «отменить» блок Биткойна или Эфириума, отменяя все транзакции внутри. Чем больше блоков будет добавлено после того, в котором находится ваша транзакция, тем больше у вас будет уверенности в ней. Вот почему рекомендуется дождаться шести подтверждений, прежде чем тратить средства.
В DAG, таком как Tangle от IOTA, существует идея уверенности в подтверждении. Алгоритм отбора запускается 100 раз, и вы подсчитываете, сколько раз ваша транзакция была прямо или косвенно одобрена в выбранных подсказках. Чем выше процент, тем больше у вас уверенности в том, что ваша транзакция останется «расчетной».
Может показаться, что это приводит к ухудшению пользовательского опыта. Но это не так. Если Алиса отправит Бобу 10 токенов MagicDAGToken, ей не нужно будет беспокоиться о выборе правильных кончиков графика. Под капотом ее кошелек может делать следующее:
Выбирайте тяжелые советы (помните, это те, у которых больше всего подтверждений).
Пройдите путь назад по предыдущим транзакциям, чтобы убедиться, что чаевые имеют достаточный баланс для расходования.
После удовлетворения они добавляют свою транзакцию в группу обеспечения доступности баз данных, подтверждая транзакции, на которых они основаны.
Для Алисы это будет выглядеть как обычный рабочий процесс с криптовалютой. Она вводит адрес Боба и сумму, которую хочет потратить, а затем нажимает «Отправить». Приведенный выше список представляет собой доказательство работы, которое каждый участник запускает при создании транзакции.
➠ Хотите начать работу с криптовалютой? Купите биткойны на Binance!
Плюсы и минусы ориентированных ациклических графов
Плюсы DAG
Скорость
Не ограниченный временем блокировки, каждый может транслировать и обрабатывать свои транзакции в любое время. Нет ограничений на количество транзакций, отправляемых пользователями, при условии, что они подтверждают более старые транзакции.
Нет майнинга
Группы обеспечения доступности баз данных не используют алгоритмы консенсуса PoW так, как мы привыкли. Таким образом, их углеродный след составляет лишь небольшую часть от выбросов криптовалют, которые полагаются на майнинг для защиты своей сети блокчейнов.
Никаких комиссий за транзакцию
Поскольку майнеров нет, пользователям не нужно платить комиссию за трансляцию своих транзакций. Тем не менее, некоторые требуют уплаты небольшой комиссии за особые виды узлов. Низкие комиссии (или, лучше, нулевые комиссии) привлекательны для микроплатежей, поскольку их цель сводится на нет из-за значительных сетевых комиссий.
Никаких проблем с масштабируемостью
Не ограниченные временем блока, DAG могут обрабатывать гораздо больше транзакций в секунду, чем традиционные сети блокчейнов. Многие сторонники полагают, что это сделает их ценными в случаях использования Интернета вещей (IoT), где все виды машин будут взаимодействовать друг с другом.
Минусы DAG
Не полностью децентрализовано
Протоколы, использующие группы DAG, имеют различные элементы централизации. Для некоторых это предположительно является краткосрочным решением для загрузки сети, но еще неизвестно, смогут ли группы DAG процветать без вмешательства третьих сторон. В противном случае они откроются для векторов атак, которые в конечном итоге могут нанести вред их сетям.
Не тестировалось в масштабе
Хотя криптовалюты на основе DAG существуют уже несколько лет, им предстоит пройти долгий путь, прежде чем они получат широкое распространение. Таким образом, трудно предсказать, какие стимулы могут возникнуть у пользователей для использования системы в будущем.
Заключительные мысли
Направленные ациклические графы, безусловно, являются интересной технологией для построения криптовалютных сетей. На данный момент существует относительно немного проектов, использующих структуру данных, и они еще не полностью развились.
Тем не менее, если они смогут реализовать свой потенциал, они смогут стать основой масштабируемых экосистем. Технология DAG имеет множество вариантов использования в областях, где требуется высокая пропускная способность и отсутствие комиссий, например, в Интернете вещей (IoT) и микроплатежах.



