Концепция нового поколения криптовалют, в которых отсутствуют майнеры и транзакционные комиссии, а сами сети обладают высокой масштабируемостью (по крайней мере, теоретически), стремительно набирает популярность. Пока таких сетей немного, а уровня минимального рабочего продукта достигли только IOTA
и Raiblocks
(токен XRB), хотя конкуренты и всевозможные клоны уже начинают появляться: в разработке находится довольно интересная концепция Radix, а структуру Tangle, лежащую в основе IOTA, развивает проект Spectre, находящийся пока на стадии теоретических разработок.
Несмотря на внешнее сходство, принципы их работы существенно различаются. В целом, концепция быстрой и бесплатной криптовалютной сети невероятно привлекательна, хотя даже уже работающие сети еще только находятся на ранней и экспериментальной стадии развития, а их будущее не кажется однозначным. Так, например, один из ключевых разработчиков Фонда Эфириума, Ник Джонсон (Nick Johnson), еще в сентябре выделил уязвимости протокола IOTA, решения которых не найдено до сих пор.
Как работают эти сети
IOTA
Для того, чтобы отправить транзакцию в сети IOTA, отправитель должен с помощью простого алгоритма PoW подтвердить две предыдущие транзакции произвольных отправителей. Вычисления PoW занимают от нескольких секунд до нескольких минут, в зависимости от GPU (алгоритм PoW в IOTA оптимизирован для GPU) и некоторой удачи. Как только решение PoW получено, данные отправителя транслируются в сеть и ожидают подтверждений от следующих транзакций. Как только транзакция получает достаточное количество подтверждений от других отправителей, она считается подтвержденной.
В теории, чем больше в сети транзакций, тем быстрее они подтверждаются. На ранних стадиях развития IOTA это так и было, однако, сейчас, перегрузки сети вызывают различного рода задержки. Здесь есть некоторое противоречие, ведь маркетинговые службы IOTA постоянно подчеркивают ее «бесконечную масштабируемость». Проблема заключается в несовершенстве кодов узлов. Апдейты кода узлов и кошельков от 23 декабря принесли значительное облегчение пользователям.
Существенное повышение производительности может принести портирование кода узлов с Java на Rust или другой высокоуровневый язык программирования. Java – простой и распространенный объектно-ориентированный язык, однако, его код должен выполняться на JVM (виртуальной машине, позволяющей миграцию на компьютер любой системы), что плохо отражается на производительности.
Raiblocks
Архитектура Raiblocks называется «решетка блоков». Это не одномерный блокчейн, как у Биткойна или Эфириума; скорее, это база данных, в которой каждый пользователь (или адрес) получает собственный блокчейн. Пользователь отправляет средства, создавая два блока: (а) блок отправителя на собственном блокчейне; и (б) блок получателя на блокчейне получателя. Для получения токенов, пользователь не обязательно должен находиться в сети (проблема ранних версий Raiblocks). Как только пользователь открывает доступ к своим средствам, его кошелек автоматически «кладет в карман» (pocket) все полученные средства. Эта процедура фактически означает подписывание блока получателя своим приватным ключом, что окончательно добавляет его в персональный блокчейн получателя.
Алгоритм консенсуса
В IOTA, транзакции добавляются в структуру Tangle, представляющую собой направленный ациклический граф (DAG). Сложное название на практике означает структуру данных, гарантирующую отсутствие петли, т. е., начав с одного узла, невозможно вернуться к нему снова. По мере того, как большее количество транзакций добавляется в Tangle, растет «вес» родительских транзакций. Когда транзакция набирает достаточный вес, она приобретает статус подтвержденной.
В Raiblocks используется система подтверждений, основанная на доверии «представителям» – адресам с крупными балансами, которые служат арбитрами при выборе между конфликтующими блоками и не допускают двойной траты. Несмотря на то, что подробных экспертиз на основе теории игр не проводилось, можно предположить, что именно в этой системе, похожей на разновидность делегативного PoS, заключается серьезная уязвимость: такие системы в их нынешнем исполнении обычно имеют тенденцию к образованию олигополии, когда вся система управляется небольшой группой «китов» – обладателей максимальных балансов токенов.
Мотивация поддерживать сеть
Наиболее распространенный вопрос, возникающий при обсуждении сетей, не взимающих комиссий: «Кто же оплачивает содержание полных узлов сети»? В традиционных криптовалютах, таких как Биткойн или Эфириум, майнеры обладают достаточной мотивацией для того, чтобы содержать полные узлы, ведь они получают вознаграждение; однако, в IOTA и Raiblocks майнеры отсутствуют. Исчерпывающего ответа на этот вопрос пока нет. В настоящее время, компании-разработчики и криптовалютные биржи содержат полные узлы. Даже если предположить, что каждая биржа имеет 5 узлов (это немного, ведь нужно учитывать балансы, и проводить апгрейды), а обе системы уже успели приобрести популярность, то 100 бирж по всему миру дают 500 узлов.
Помимо этого, узлы содержат коммерческие компании, обеспечивающие услуги IoT, поскольку именно Интернет Вещей остается самым привлекательным местом приложения систем, обслуживающих микроплатежи. Forbes считает, что к 2025 году количество IoT устройств превысит 75 миллиардов. Если даже 0.001% этих устройств по каким-либо причинам будут поддерживать полные узлы, то их будет уже 750 тысяч.
Оффчейн-транзакции
Уникальная функция IOTA – создавать транзакции вне сети (оффчейн), и присоединять их к Tangle позже, в удобное время, т. е., система обладает повышенной устойчивостью к разделению. Устройства IoT могут взаимодействовать друг с другом находясь оффлайн и передавать весь пакет транзакций после подключения к сети. Однако, эта особенность одновременно является и слабым местом: поверит ли получатель в то, что это не транзакция двойной траты, без подтверждения всех узлов сети? Так что пока полезность этой функции остается под вопросом.
В Raiblocks оффчейн-транзакции невозможны. Для проведения транзакции отправитель должен находиться онлайн.
Количество монет в обращении
Токены как IOTA, так и Raiblocks, полностью сгенерированы премайном – количество монет задано при запуске сети и дополнительных эмиссий не будет.
В обращении находится приблизительно 2.8 квадриллиона монет IOTA (для сравнения, максимальное количество сатоши в Биткойне – около 2.1 квадриллиона). Для простоты, биржи предпочитают номинировать монеты в миллионах IOTA – MIOTA.
Минимальная единица Raiblocks raw (аналог сатоши). Общее количество raw составляет 2 в 128 степени (причина такого высокого потолка в том, что баланс представляется 128-битным целым числом. 1 токен XRB содержит 10 в 30 степени raw, тогда общее количество XRB можно записать как 133 248 290 XRB.
Децентрализация
Надежная децентрализация – это слабое место обеих систем.
IOTA постоянно находится под огнем критики за наличие элемента под названием «Координатор», который обладает всей полнотой власти и находится под контролем разработчиков, которые, впрочем, обещают убрать его из системы в 2018 году.
Другая проблема IOTA – пиринг. До недавнего времени, операторы узлов должны были вручную добавлять IP адреса других узлов в свои конфигурации, однако последние разработки должны решить эту проблему.
Raiblocks опирается на систему делегативного PoS, известного склонностью к централизации. Правда, DpoS Raiblocks отличается от традиционной, и разработчики уверяют, что для успешной атаки злоумышленник должен сосредоточить более 50% токенов системы, однако независимой экспертизы пока не проводилось.
Дорожные карты
Обе системы вступили в период интенсивного развития. На данный момент, команда IOTA насчитывает 30 разработчиков. Команда Raiblocks меньше – в ней всего 5 человек.
Различаются и цели: в то время как IOTA анонсирует все больше новинок (приватные транзакции, смарт-контракты, рынки данных), Raiblocks предпочитает фокусироваться на мантре «Делать одну вещь, но делать ее хорошо» и ставит задачу создать наилучшую монету с бесплатными транзакциями.
Ключевой элемент любой криптовалютной платформы – кошелек. Здесь обе сети похожи: их кошельки отличаются крайне неудобным интерфейсом, а последовательности действий как будто специально служат для запутывания пользователей. Однако это можно списать на начальный период развития.
Заключение
IOTA и Raiblocks, будучи совершенно различными по своему устройству, тем не менее, определенно имеют общие области приложения.
Каждая команда имеет свое видение будущего, и сейчас невозможно сказать, будет ли один победитель или каждый проект найдет свою нишу. Во всяком случае, появление одной «совершенной» монеты по меньшей мере, маловероятно. Однако, сейчас так же невозможно сказать что-либо определенное по поводу того, возможно ли вообще создание надежной криптовалюты с неограниченной масштабируемостью и отсутствием комиссий за транзакции.
Спасибо!
Теперь редакторы в курсе.