Вы находитесь на странице: 1из 24

Міністерство освіти і науки України

Харківський національний університет ім. В.Н.Каразіна


Факультет комп’ютерних наук
Кафедра безпеки інформаційних систем і технологій

Реферат
на тему: ” Ориентированный ациклический граф.
Использование DAG в криптовалютах”

Виконала :
Студентка групи КБ-42.
Доценко О.О.

Харків – 2019
Содержание
1. Введение…………………………………………………………………….
2. Преимущества DAG перед блокчейном………………………………....
3. Использвание DAG в криптовалютах…………………………………...
3.1 Byteball…………………………………………………………….....
3.1.1 Введение………………………………………………...
3.1.2 Внутренняя валюта……………………………………
3.1.3 Комиссия………………………………………………..
3.1.4 Распределение монет…………………………………..
3.1.5 Сравнение с аналогами……………………………….
3.1.6 Преимущества………………………………………….
3.2 Tangle (IOTA)………………………………………………………..
3.2.1 Введение………………………………………………...
3.2.2 Ширина сети. Tip selection algorithm………………..
3.2.3 Преимущества и критика

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

Рис. 1 DAG

Одной из ключевых характеристик групп обеспечения доступности


баз данных и потоков обработки данных, которые они моделируют,
является то, что в потоке может быть несколько путей. Это важно,
потому что он признает необходимость обработки данных несколькими
способами для удовлетворения различных результатов и потребностей. В
приведенном ниже примере потока обрабатывается поток данных
датчика. Данные сначала загружаются с датчиков, затем разделяются по
типу датчика. Данные датчика X будут суммироваться в секунду, а затем
3
анализироваться в режиме реального времени. Если наблюдается какое-
либо критическое состояние, отправляется предупреждение. Данные
также сохраняются для длительного хранения и, возможно, для другого
анализа. Также в этом потоке находятся данные от датчика Y, которые
на данный момент суммируются за минуту, а затем сохраняются в том
же долговременном хранилище, что и данные для датчика X.

Так как граф направленный, мы уже имеем некоторый порядок.


Каждая транзакция ссылается на одну или несколько предыдущих,
родительских. Родители, в свою очередь, ссылаются на своих родителей,
и так далее. Родители, очевидно, появляются раньше дочерних
транзакций. Если какая-либо из транзакций может быть достигнута
переходами по ссылкам «родитель-ребёнок», мы точно знаем порядок
между транзакциями в этой цепочке транзакций. Но порядок между
транзакциями не всегда можно определить только из формы графа.
Например, когда две транзакции лежат на параллельных ветвях графа.

После проверки транзакции ее необходимо связать с


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

2 Преимущества DAG перед блокчейном


Биткоин всегда был неэффективен из-за системы proof-of-work.
Блоки не могут создаваться параллельно. Связанная структура хранения
допускает только одну цепочку во всей сети. Данные о транзакциях,
произошедших примерно в одно время, записываются в блок. Затем
майнеры конкурируют друг с другом, стараясь проверить блок как
можно быстрее и получить вознаграждение. Новый блок создается

4
каждые 10 минут. Впервые идея применить концепцию DAG к хранению
данных родилась у разработчиков NXT. Если оставить время майнинга
неизменным, вместимость сети можно увеличить в Х раз, одновременно
генерируя Х блоков.
Блокчейн собирает много транзакций (далее записей) в один блок,
ждет определенное время и добавляет этот блок в цепочку. DAG берет
каждую запись и тут же добавляет эту запись в «цепочку». Это
обеспечивает быстрые транзакции Из-за безблочного устройства
транзакции проводятся прямо в сетях DAG. Этот процесс гораздо
быстрее и занимает намного меньше времени, чем в случае блокчейнов,
основанных на PoW и PoS.
В DAG нет нужды в майнинге и нет майнеров. Подтверждение
проходит непосредственно в самих транзакциях. В блокчейне именно
майнеры решают, какую транзакцию добавить в следующий блок, а
какую — нет. Именно у майнеров есть эксклюзивный доступ к блокам и
право решать, чью транзакцию принять для добавления в реестр. Для
пользователей это означает, что сделки проходят почти мгновенно.

Рис.2 Майнинговые пулы

Обычно небольшое количество пулов майнеров коллективно


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

5
Как только правильно созданная транзакция была добавлена в
реестр, она произошла. И точка. Информация об этом может доходить до
всех участников в разное время, но в конце концов все ноды получат эту
транзакцию и узнают, что она произошла.
Для полного понимания этого принципа криптовалют без
Blockchain следует описать процесс майнинга криптовалют с Blockchain.
Майнинг осуществляется посредством вычисления
поля nonce блока транзакций, сложность этого вычисления задана
заранее и основана на необратимости однонаправленной хеш-функций.
Также майнинг имеет соревновательный характер: кто первый получит
значение nonce, удовлетворяющее условию, тот и получит награду за
вычисление, к примеру, для криптовалюты Bitcoin награда за блок равна
50 BTC.
В современных реалиях функционирования таких
распространенных криптовалют как Bitcoin индивидуальный майнинг
становится невыгодным, поскольку обладая слабыми техническими
возможностями, индивидуальные майнеры имеют очень малые шансы
вычислить значение быстро и получить награду.
В противовес им выгодным такое положение вещей является для
майнинг пулов — объединение большого числа майнеров под эгидой
какого-либо пула. Блок вычисляется совместно всеми майнерами внутри
пула, в случае успеха от суммы награды вычитается комиссия пула, а
оставшаяся сумма делится между всеми остальными участниками.
Такой способ понижает прибыль от майнинга для одного
конкретного майнера, но значительно увеличивает шансы на успех.
Такое явление также называется олигополией майнинг пулов, и
проектируя криптовалюты без Blockchain, разработчики стараются
избавиться от этого явления.
В криптовалютах без Blockchain это достигается построением
таких алгоритмов функционирования, при которых техническое
превосходство не даст явного превосходства при майнинге. В частности,
это достигается путем увеличения скорости обработки транзакций, что
тесно связано с главенствующей ролью транзакций, а не блоков, в
криптовалютах без Blockchain.

6
С развитием технологии DAG мы можем стать свидетелями
появления сетей с высокой производительностью и минимальными
издержками. Пользователи смогут отправлять микроплатежи без
огромных комиссий (в отличие от биткоина или эфира). Китайский
проект IoT Chain (ITC) построен на DAG и может проводить до 10 тыс.
транзакций в секунду. У стартапа конкретные цели и сильное
сообщество. Его поддерживали ведущие блокчейн-фонды, такие как
ChainFunder и FBG. IoT Chain имеет все шансы стать блокчейном 3.0.
Направленные ациклические графы будут использоваться в
приложениях, требовательных к масштабируемости и пропускной
способности. Запуск игры CryptoKitties изрядно «засорил» сеть
Ethereum, вызвав серьезное замедление транзакций и рост комиссий. У
Ethereum есть решение этой проблемы, называемое «Sharding»
(разделение огромной базы данных на несколько меньших по размеру),
однако до его практической реализации пока далеко. Поэтому весьма
вероятно, что в поисках масштабируемости разработчики приложений
будут склоняться именно в сторону DAG.

3 Использвание DAG в криптовалютах

Самые известные криптовалюты с DAG:


 IOTA
 Byteball
 Dagcoin (Дагкоин)

Нами далее будут рассмотрены первые две.

3.1 Byteball

3.1.1 Введение

Когда пользователь хочет добавить данные в базу данных, он


создает новый блок хранения и передает его своим коллегам. Блок
хранения включает в себя (среди прочего):
• Данные для хранения. Блок может включать в себя более одного
пакета данных, называемого сообщением. Существует много разных

7
типов сообщений, каждое со своей структурой. Одним из типов
сообщений является оплата, которая используется для отправки байтов
или других ресурсов одноранговым узлам.
• Подпись (и) одного или нескольких пользователей, создавших
устройство. Пользователи идентифицируются по их адресам. Отдельные
пользователи могут (и поощряются) иметь несколько адресов, как в
биткойнах. В простейшем случае адрес получен из открытого ключа,
опять-таки похожего на биткойн.
• Ссылки на одну или несколько предыдущих единиц (родителей),
идентифицированных по их хэшам.
Как и в блокчейне, где каждый новый блок подтверждает все
предыдущие блоки (и транзакции в них), каждый новый дочерний блок в
DAG подтверждает своих родителей, всех родителей родителей,
родителей родителей родителей и т.д. Если кто-то пытается
отредактировать блок, ему также придется изменить его хэш. Это
неизбежно приведет к поломке всех дочерних блоков, которые
ссылаются на этот блок по его хэшу, поскольку как сигнатуры, так и
хэши детей зависят от родительских хешей. Следовательно, невозможно
пересмотреть юнит, не сотрудничая со всеми его дочерними элементами
или не похитить их секретные ключи. Дети, в свою очередь, не могут
пересматривать свои подразделения без сотрудничества со своими
детьми (внуками исходного подразделения) и так далее. Как только
модуль транслируется в сеть, и другие пользователи начинают строить
свои модули поверх него (ссылаясь на него как на родителя), количество
вторичных ревизий, необходимых для редактирования этого модуля,
следовательно, растет как снежный ком. Вот почему этот дизайн и
называется Byteball (наши снежинки - это байты данных).
В отличие от блокчейна, где выдача блока является редким
событием, и на практике этим занятием занимается только
привилегированная каста пользователей, в новом байтбольном модуле
начинается накопление подтверждений сразу после его выпуска, и
подтверждения могут поступать от кого угодно, каждый раз, когда
другой новый модуль выпущен. Не существует двухуровневой системы
обычных пользователей и майнеров. Вместо этого пользователи
помогают друг другу: добавляя новый блок, его автор также
подтверждает все предыдущие блоки.

8
В отличие от Биткойна, где попытка пересмотреть прошлую
транзакцию требует больших вычислительных усилий, попытка
пересмотреть прошлую запись в Byteball требует координации с
большим и растущим числом других пользователей, большинство из
которых являются анонимными незнакомцами. Неизменность прошлых
записей поэтому основана на явной сложности координации с таким
большим количеством незнакомцев, которые труднодоступны, не
заинтересованы в сотрудничестве, и где каждый из них может наложить
вето на пересмотр.
Ссылаясь на своих родителей, блок включает в себя родителя. Он
не включает полное содержание родителя, но включает хэш
родительского элемента. Точно так же единица косвенно зависит от
родителей и, следовательно, включает в себя родителей родителя, их
родителей и т. Д., И каждый узел в конечном итоге включает узлы
своего происхождения.
Существует правило, согласно которому узел не может ссылаться
на избыточных родителей, то есть таких родителей, что один родитель
включает другого. Например, если блок B ссылается на блок A, тогда
блок C не может ссылаться на оба блока A и B одновременно. A в
некотором смысле уже содержится в B. Это правило удаляет ненужные
ссылки, которые не добавляют никакой новой полезной связи на график.

3.1.2 Внутренняя валюта

Чтобы сохранить ваши данные в глобальной децентрализованной


базе данных, вы должны заплатить плату во внутренней валюте,
называемой байтами, а сумма, которую вы платите, равна размеру
данных, которые вы собираетесь хранить (включая все заголовки,
подписи и т. Д.).
Байты могут использоваться не только для оплаты сборов за
хранение (также называемых комиссиями), но также могут отправляться
другим пользователям для оплаты товаров или услуг или в обмен на
другие активы. Чтобы отправить платеж, пользователь создает новый
модуль, который включает в себя сообщение о платеже.
Сообщение содержит:
• Массив выходов: один или несколько адресов, которые получают
байты и суммы, которые они получают.
9
• Массив входных данных: одна или несколько ссылок на
предыдущие выходные данные, которые использовались для
финансирования перевода. Это выходные данные, которые были
отправлены на адрес (а) автора в прошлом и еще не использовались.
Общее количество байтов в обращении составляет 10 15, и это число
является постоянным. Все байты выдаются в модуле генезиса, а затем
передаются от пользователя к пользователю. Сборы взимаются другими
пользователями, которые помогают поддерживать работоспособность
сети (подробнее об этом позже), поэтому они остаются в обращении.
Число 10 15 было выбрано как наибольшее круглое целое число, которое
может быть представлено в JavaScript. Суммы могут быть только
целыми числами. Большие единицы валюты выводятся путем
применения стандартных префиксов: 1 килобайт (Кб) равен 1000 байтов,
1 мегабайт (Мб) равен 1 миллиону байтов и т. д.
Помимо байтов (byte, единица измерения Byteball) владелец
получает также «темные байты» (blackbytes) — токены для приватных
неотслеживаемых платежей, полная информация о которых передается
напрямую от плательщика получателю и не записывается в публичную
базу данных.
Транзакции темных байтов проводят путем сопряжения кошельков
плательщика и получателя.
Вы можете обменять обычные байты на темные с помощью
встроенного P2P-обменника, а также на форуме bitcointalk через гаранта.

3.1.3 Комиссия

Как упоминалось ранее, стоимость хранения единицы - это ее


размер в байтах. Комиссия разделена на две части: комиссия заголовков
и комиссия полезной нагрузки. Комиссия за полезную нагрузку равна
размеру сообщений; комиссия заголовков - размер всего остального. Два
типа комиссий распределены по-разному.
Платят только комиссию за заголовки, а не всю комиссию тем, кто
быстро выбрал наш узел в качестве родителя, по следующей причине.
Если бы платили всю комиссию, то стимулировали бы оскорбительное
поведение: разбить свои данные на несколько частей и построить
длинную цепочку из своих собственных блоков, хранящих один кусок на
единицу. Все комиссии, выплаченные в предыдущем блоке, будут
10
немедленно собраны этим же пользователем в следующем блоке.
Поскольку платят только комиссию за заголовки, такое поведение не
выгодно, поскольку для создания каждого дополнительного элемента
цепочки нужно потратить дополнительную комиссию за заголовки -
примерно столько же, сколько зарабатывает. Оставшуюся (полезную)
комиссию используют, чтобы стимулировать других, чья деятельность
важна для поддержания работоспособности сети.
Комиссия за полезную нагрузку достается свидетелям. Чтобы
побудить свидетелей к публикации достаточно часто, комиссия полезной
нагрузки распределяется в равной степени между всеми свидетелями,
которые достаточно быстры для публикации (чем быстрее они
публикуют, тем быстрее эта единица становится стабильной). Если все
12 свидетелей отправили сообщение в течение этого интервала, каждый
получает 1/12 комиссии за полезную нагрузку. Если опубликовал только
один свидетель, он получает всю комиссию за полезную нагрузку. В
особом случае, когда ни один свидетель не отправил сообщение в
течение этого интервала, все они получают 1/12 комиссии за полезную
нагрузку. Если деление дает дробное число, оно округляется в
соответствии с математическими правилами. Из-за этого округления
общая комиссия, выплачиваемая свидетелям, может быть не равна
общей комиссии за полезную нагрузку, полученной от автора (ов)
подразделения, поэтому общая денежная масса также немного
изменится.
Адреса, получающие комиссионные, не должны совпадать с
адресами авторов - комиссия может быть отправлена на любой адрес.
Даже если блок подписан одним автором, он может включать это поле
для перенаправления комиссий заголовков в другом месте.
Часть комиссии достаётся тем, кто первым сошлётся на вашу
транзакцию как на родительскую, а другая часть - свидетелям. Первое из
этих обстоятельств поощряет ссылки на самые свежие транзакции, в
результате чего DAG растет только в одном направлении (подобно
стволу дерева) и остаётся настолько узкими, насколько позволяет
латентность сети. Если новые транзакции достаточно редки, так что до
появления новой транзакции все узлы сети имеют достаточно времени
для синхронизации, то DAG будет выглядеть почти как цепь, с редкими
ветвлениями и быстрыми слияниями.

11
3.1.4 Распределение монет

Байтбол в действительности воплощает в себе принцип


децентрализованности, которого хотят достичь энтузиасты криптомира.
Из всего количества выпущенных монет разработчики оставят за собой
только 1%. Остальные 99% коинов распределят среди пользователей.
Таким образом исключается возможность внешнего влияния на
стоимость монет, и она будет зависеть только от рыночного спроса.
Отметим, сеть была запущена 25 декабря 2016 года, и в этот день
10% всех байтов и блэкбайтов распределили среди тех, кто связал свои
биткоин- и byteball-адреса. Всего было привязано более 70 000 BTC.
Владелец биржи Cryptox.pl, на которой торгуется Byteball, также
начислил байты всем, кто на Рождество имел балансы в BTC на этой
бирже.
Второй раунд состоялся 11 февраля, было привязано более 120 000
BTC и роздано байтов на более чем 1 млн. долларов по текущему курсу.
В данный момент получить байты (и темные байты) бесплатно
также возможно, если на вашем биткоин-кошельке есть средства. Для
этого нужно:
 Скачать и установить кошелек Byteball.
 Открыть https://byteball.org и пройти по ссылке чата с
Transition Bot — откроется новый кошелек и начнется чат.
 Следовать инструкциям Transition-бота для подтверждения
вашего биткоин-баланса.

Также можно пройти тест в телеграме.

Рис 3. Телеграм бот

12
Рис 4. Награда за пройденный тест

3.1.5 Сравнение с аналогами

На сегодня ещё одна монета имеет структуру, схожую это  IOTA,


которая реализована на технологии Tangle. В ней по схожему принципу
с Байтболом для подтверждения своей транзакции надо подтвердить 2
предыдущие. Обе криптовалюты похожи друг на друга. Но всё же есть
определённые различия. К основным из них относятся:
 в сети Байтбол присутствуют комиссии, в то время как в
IOTA явных комиссий за переводы нет;
 в сети Byteball могут использоваться несколько монет, в том
числе возможно задействовать умные контракты, могут быть
выпущены ассеты, в то время как в IOTA используется
только один токен;
 все транзакции в IOTA находятся в публичном доступе, в
Byteball же при помощи тёмных байтов можно скрывать
некоторые переводы.

Разный подход используется в продвижении проектов. В Байтбол


ставку делают на бесплатной раздаче, чтобы привлечь как можно больше
пользователей к использованию монеты. В ИОТА стараются показать
преимущества токена для “интернета вещей”, ведут переговоры с
13
крупными компаниями и банками о сотрудничестве. Пока второй
вариант лучше сказывается на популярности коина. К примеру, как
только стало известно о сотрудничестве IOTA с Microsoft, стоимость
токена MIOTA за сутки выросла на 44%. На тот момент криптовалюта
ворвалась в список ТОП-5.
3.1.6 Преимущества проекта

Byteball позиционируется как криптовалюта “третьего поколения”,


которая призвана решить недостатки технологии блокчейн. В связи с
этим она имеет такие преимущества:
 быстрота транзакций. Поскольку отсутствует такое
промежуточное звено, как майнеры, нет необходимости
ждать, пока транзакция попадёт в блок. Новые переводы
реализуются моментально, поскольку сразу начинают
получать хотя бы частичное подтверждение от пиров;
 высокая масштабируемость. С увеличением количества
транзакций система расширяется. Отпадает необходимость
увеличения блоков, которая присуща блокчейновым
проектам;
 возможность диалога между участниками транзакций. При
переводе средств внутри сети создаётся зашифрованный чат,
где можно обмениваться сообщениями;
 выборочная анонимность. Поскольку в сети используется 2
вида монет (bytes и blackbytes) пользователи сами выбирают,
в каком случае проводить публичную транзакцию, а где
нужно скрыть информацию о переводе.

3.2 IOTA

Согласно наиболее распространенной формулировке, интернет


вещей – это концепция вычислительной сети физических предметов (т.е.
собственно, вещей), которые оснащены некими технологиями для
взаимодействия друг с другом.
IOTA – революционная криптовалюта и платформа, созданная
специально для концепции Интернета Вещей (Internet of Things). Она не
похожа ни на один другой проект или коин, что делает ее уникальной и

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

Эмиссия в системе одноразовая и централизованная. Существует


самая первая транзакция в системе — порождающая (genesis), где
создатель присвоил себе все монеты системы. Всего было создано
2,779,530,283,277,761 монет IOTA, после чего, в ходе краудсейла с
ноября по декабрь 2015 года были проданы 100% всех монет. Часто их
учет ведется в единицах MIOTA, где 1 MIOTA это 1,000,000 IOTA.
Общее и оборотное предложение IOTA составляет 2 779 530 283.
Команда определилась с этим числом, потому что оно оптимизировано
для троичных вычислений, поскольку является максимально возможным
33-значным троичным числом.
Я знаю, что это звучит как небольшое количество, но массовые
продажи и ICO не были очень распространены в 2015 году. Все почти
три квадриллиона токенов IOTA были выпущены для участников
массового продаж в то время, но ни один не был зарезервирован для
основателей, разработчиков или консультантов.
Публичный дебют монеты IOTA состоялся в июне 2017 на бирже
Bitfinex. Осенью команда заключила стратегические сделки с крупными
корпорациями вроде Microsoft, Deutsche Telekom, Samsung, Volkswagen
и Fujitsu.
Наблюдая за успехом рынка данных с использованием технологии
IOTA, подразделение Robert Bosch Venture Capital крупной корпорации,
занимающееся венчурным инвестированием, сделало свою первую
инвестицию в криптовалюты, купив значительное число токенов
IOTA. Фонд IOTA получил приглашение от администрации Метрополии
Токио на участие в программе ускоренного развития Blockchain Business
Camp Tokyo. Также в программе приняли участие такие фирмы,
как Sony, Honda и Toyota.
Хотя токены IOTA были созданы в 2015 году как часть краудсейла,
только в июне 2017 года токены были внесены в список на бирже. В то
время токен торговался между $ 0,55 и $ 0,65. Маркер был нестабильным
с самого начала, упав с уровня открытия до 0,18 доллара в месяц спустя,
а затем восстановился и поднялся до 1 доллара к середине августа 2017
15
года. Он не смог удержаться на таком высоком уровне, и к ноябрю 2017
года он вернулся ниже $ 0,40, но это продолжалось недолго, так как
декабрь 2017 года стал огромным ралли для всего рынка криптовалют.
19 декабря 2017 года он достиг своего рекордного максимума в $ 5,69 и
быстро упал с этих высот. Тем не менее, он боролся и сумел остаться
выше 1 доллара до июля 2018 года. Оттуда неуклонно снижается и по
состоянию на август 2019 года он стоит всего 0,265044 доллара.
Фонд «IOTA Foundation» был зарегистрирован в Германии как
некоммерческая корпорация, которая координирует разработку
экосистемы IOTA, а также выделяет на это средства. Целью фонда
является создание устойчивой экосистемы вокруг IOTA для ускорения её
развития и коммерческого внедрения как технологии с открытым
исходным кодом.
«IOTA Foundation» стал первым регулируемым некоммерческим
фондом в Германии (нем. gemeinnützige Stiftung), финансируемым
исключительно посредством криптовалюты. 
Технология IOTA основана на Tangle, структуре данных, которая
основана на технологии ориентированного ациклического графа (DAG)
Он представляет собой обобщение протокола блокчейн (то есть,
блокчейн является частным случаем DAG). Структура данных DAG
становится все более сложной по мере добавления большего количества
узлов и транзакций, что помогает обеспечить безопасность. Кроме того,
группа обеспечения доступности баз данных движется в одном
направлении и не зацикливается на себе.
Инфраструктура IOTA не предусматривает такого отдельного типа
участников, как майнеры, вместо этого обычные пользователи сами
подтверждают транзакции друг друга. Соответственно, для проведения
транзакции необходимо выбрать две мало подтвержденные транзакции,
проверить на противоречивость их, а также все транзакции на которые
ссылаются эти две (т.е. все транзакции в выбранной под цепочке должны
тратить существующие деньги только один раз). Существует
специальный алгоритм выбора этих двух транзакций — tip selection
algorithm.
В IOTA Tangle все подключенные узлы содержат транзакционные
данные. Вместо использования блокчейна Proof-of-Work, Tangle требует
от каждого участника подтвердить две другие транзакции, чтобы

16
подтвердить свою собственную транзакцию. Это дает нам полностью
децентрализованную и саморегулирующуюся сеть.
Этот механизм позволяет IOTA оставаться бесплатной, и она
всегда будет оставаться бесплатной независимо от размера сети.
Благодаря устранению майнеров нет необходимости платить кому-либо
напрямую в сети. Вместо этого каждый пользователь платит, используя
очень небольшую часть своей вычислительной мощности для
подтверждения двух других транзакций. Это работает, потому что, как
каждая транзакция подтверждается и те транзакции
Это работает, потому что, поскольку каждая транзакция
подтверждается, и те транзакции, которые подтвердили ее, сами
получают подтверждения, за транзакциями накапливается вес. И чем
больше этот вес, тем надежнее и надежнее становится каждая
транзакция.
IOTA способна связать воедино практически все процессы в
экосистеме IoT за счет настройки цепей транзакций и способности
проводить микро транзакции в огромных количествах. Проблем с
масштабируемостью у Tangle в отличии от blockchain нет. Причем
платформа реализована так, что устройство для взаимодействия с
другими узлами не должно иметь бесперебойного доступа к Интернету.
Для некоторых «машин» достаточно будет подключаться раз в месяц или
даже в год – все зависит от функционала. Это позволит экономить заряд
батареи или даже электричество.
 
Уровень подтвержденности транзакции считается как сумма
проведенной работы самой транзакции и всех которые прямо или
косвенно ссылаются на нее до последних известных в сети. Таким
способом сеть защищается от атаки Сибилы Атака Сивиллы  (англ. Sybil
attack) — вид атаки в одноранговой сети, в результате которой жертва
подключается только к узлам, контролируемым злоумышленником. 
Одна из проблем, с которой IOTA столкнулась с самого начала,
заключается в том, что эта сеть DAG может быть захвачена
злоумышленником, получившим контроль только за 33% мощности
хеширования в сети. Чтобы этого не случилось, Фонд IOTA ввел
специальный узел под названием Координатор для обеспечения
надежности. Поскольку, предполагается, что текущая версия не

17
способна работать в открытой среде, образуя полностью
распределенную одноранговую сеть. Планы по развитию IOTA
включают избавление от необходимости доверенной стороны
(координатора), предполагается такая работа сети, что ни один узел не
имеет представления о полном состоянии Tangle. В текущей бета-версии
The Coordinator делает полный обзор и контроль всех транзакций в сети,
а остальные узлы ориентируются на него. Таким образом The Coordinator
является временным центральным органом необходимым для защиты от
атак, который управляется сообществом IOTA.
Фонд IOTA говорит, что, как только сеть станет достаточно
большой, Координатор больше не будет нуждаться, и в это время он
будет выведен из эксплуатации, что сделает IOTA полностью
децентрализованной.
Этот координатор контролируется Фондом IOTA и защищает сеть
IOTA от атак.

3.2.2 Ширина сети. Tip Selection Algorithm


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

18
Рис 5. Ленивый совет

В приведенном выше примере (Рис 5) транзакция 14 - это ленивый


совет, который одобряет некоторые очень старые транзакции. Если мы
используем алгоритм выбора единого случайного наконечника,
транзакция 14 будет также одобрена, как и любая другая, поэтому она
вообще не будет оштрафована. При использовании невзвешенной
прогулки это плохое поведение даже поощряется, по крайней мере, в
этом конкретном примере.
Как можно справиться с этой проблемой? Одна вещь, которую
нельзя сделать, - это заставить участников одобрять только недавние
транзакции, поскольку это противоречит идее децентрализации.
Транзакции могут утверждать, кого пожелают. Также нет надежного
способа точно сказать, когда была совершена каждая транзакция,
поэтому нельзя применять такое правило. Решение состоит в том, чтобы
создать систему со встроенными стимулами против такого поведения,
так что ленивые советы вряд ли будут одобрены кем-либо.
Стратегия состоит в том, чтобы смещать случайную прогулку,
поэтому мы реже выбираем ленивые советы. Используется термин
«совокупный вес» для обозначения важности транзакции. Мы более
склонны идти к тяжелой сделке, чем к легкой. Определение совокупного
веса очень просто: мы подсчитываем, сколько утверждающих имеет
транзакция, и добавляем одно. Считаюся как прямые, так и косвенные
утверждающие. В приведенном ниже примере (Рис 6) транзакция 3
имеет совокупный вес пять, потому что она имеет четыре транзакции,
которые ее одобряют (5 напрямую; 7, 8 и 10 косвенно).

Рис 6. Совокупный вес транзакции

19
Почему это работает? Давайте посмотрим на еще одну ситуацию
ленивых советов. В приведенном ниже примере (Рис 7) транзакция 16
является ленивой подсказкой. Чтобы транзакция 16 была подтверждена,
случайный обходчик должен достичь транзакции 7, а затем выбрать
транзакцию 16 вместо транзакции 9. Но это вряд ли произойдет, потому
что транзакция 16 имеет совокупный вес 1, а транзакция 9 имеет
совокупный вес 7! Это эффективный способ сдерживать ленивое
поведение.

Рис 7. Сдерживание ленивого поведения

В этот момент мы можем спросить: нужна ли нам случайность


вообще? Мы можем изобрести супервзвешенную случайную прогулку,
где на каждом перекрестке мы выбираем самую тяжелую транзакцию без
вероятностей. Затем мы получим что-то вроде этого:

20
Рис 8. Супервзвешенная прогулка

Серые квадраты - это подсказки с нулевыми утверждающими.


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

21
Рис 9. Контроль предвзятости

Если мы установим α на ноль, мы вернемся к невзвешенной


прогулке. Если мы установим α на очень высокое значение, мы получим
сверх-взвешенную прогулку. Между ними мы можем найти хороший
баланс между наказанием за ленивое поведение и не оставляя слишком
много советов позади. Определение идеального значения для α является
важной темой исследования в IOTA. Этот метод установки правила для
определения вероятности каждого шага в случайном блуждании
называется техникой Марковской цепочки Монте-Карло, или MCMC. В
цепочке Маркова каждый шаг не зависит от предыдущего, а следует из
правила, которое определяется заранее.
3.2.3 Преимущества и критика

Преимущества IOTA:
Масштабируемость и скорость транзакций. Увеличение количества
операций для Bitcoin или Ethereum приводит к задержкам
подтверждения транзакций. Йота работает наоборот – чем больше в сети
проходит транзакций, тем быстрее они подтверждаются.
Отсутствие комиссий за транзакции; что делает ее наиболее
подходящей для проведения микротранзакций.
Нет майнинга, поэтому IOTA не грозят форки и спекулятивные
колебания курса; вместо них каждый участник сети, осуществляющий
транзакцию, активно участвуя в консенсусе, таким образом, участники
Tangle образуют более децентрализованную систему, чем участники
Blockchain. =
22
IOTA Foundation – фонд, который занимается развитием проекта и
привлекает солидные инвестиции; Уникальность платформы в сравнении
с другими проектами, что делает IOTA привлекательным
инвестиционным активом.
Возможность работы в локальной сети. Если устройства проводят
между собой транзакции, не подключаясь к интернету (например, для
экономии заряда аккумулятора), а потом через некоторое время
происходит подключение, эти транзакции не будут отвергнуты, как это
произошло бы для большинства криптовалют. Они будут учтены и
вольются в общий поток без потерь.
Независимость от оборудования. Т.к. все монеты IOTA уже
выпущены, то поддержка работоспособности сети не зависит от
майнинга, и соответственно, от дорогостоящего оборудования.
Предполагаемая устойчивость к квантовым
вычислениям. Несмотря на то, что полноценного квантового компьютера
еще не существует, IOTA уже готова к его появлению. Алгоритм, на
котором основана IOTA, квантовый компьютер не может просчитать
настолько же быстро, как, например, блокчейн биткойна.
IOTA не оставалась без критики на протяжении всей своей жизни,
и большая часть ее была сосредоточена на технических недостатках
алгоритма шифрования. Также произошла кража IOTA на сумму 11,4
миллиона долларов США в 2018 году, когда хакер создал поддельные
семена и таким образом получил доступ к кошелькам пользователей.
Самая большая критика проекта связана с тем, что в проекте
используется алгоритм шифрования Curl, который разработчики сами
«свернули». Это означает, что они создали алгоритм шифрования с нуля,
крайне обескураженный предмет в индустрии криптографии.
Еще одна критика проекта связана с тем, что команда избегает
использования открытого исходного кода, который некоторые даже
считают враждебным. Один из краеугольных камней большинства
проектов блокчейна - это кодовая база с открытым исходным кодом,
поэтому, когда IOTA презирает открытый исходный код, многие
задаются вопросом, что они могут скрывать
Наконец, существует спор вокруг использования Координатора,
который по существу делает IOTA централизованной криптовалютой.

23
Хотя Фонд IOTA заявил, что их первоочередной задачей является
отстранение Координатора, до тех пор, пока это не произойдет, остается
недоверие к проекту.

24