Возможна ли криптовалюта без блокчейна?
Хоть это и трудно представить, сами криптовалюты намного старше блокчейн-технологии. Большинство из нас рассматривают Биткойн как первую криптовалюту, но это лишь первая валюта на основе блокчейна. Такие криптовалюты как B-Money и BitGold существовали до Биткойна, но они не смогли далеко уйти, особенно в сравнении с Биткойном. Проблема с криптовалютами, задуманными до появления Биткойна, была в их централизованной структуре. Без блокчейн-технологии не было «децентрализованного, неизменяемого, прозрачного» реестра для записи транзакций, что вело к централизации. Но, видимо, блокчейн не является единственной и незаменимой технологией для криптовалют.
Недавно появилась новая форма криптовалюты, использующая Направленный Ациклический Граф (DAG) как организационную модель для структуры децентрализованного реестра, позволяя решать старые проблемы и добавлять новый функционал. Сегодня мы собираемся рассмотреть технологию, которая вероятно сможет заменить сам блокчейн и некоторые его реализации. Несмотря на то, что варианты внедрения, которые мы собираемся сейчас обсуждать, новые, сама концепция уже стара. В 2013 был продублирован документ «Ускорение процессинга Биткойн-транзакций. Быстрые деньги растут на деревьях а не на цепях», авторы — Yonatan Sompolinsky и Aviv Zohar представили GHOST протокол, предлагавший заменить блокчейн в Биткойне на древовидную структуру, что позволило бы уменьшить время подтверждения транзакций и улучшило бы безопасность. Но это изменение так и не было реализовано в Биткойне, а другие криптовалюты успешно использовали DAG-систему. Давайте встретим их!
Байтболл: DAG
Криптовалюта Байтболл основана на технологии DAG (Directed Acyclic Graph). Первый в своем роде, Байтболл распределяется посредством раздачи, это процесс при котором GBYTE, валюта этой сети, распределяется в зависимости от имеющихся у пользователя Биткойнов. Недавно также началось распределение GBYTE через cashback-партнёрство с участвующими в программе продавцами. Довольно необычно видеть появление криптовалюты без процесса ico, и такой метод распределения средств является малоинтересной стороной Байтболла.
У Байтболла нет блоков. Вместо них транзакции связываются напрямую друг с другом и каждая транзакция содержит один или больше хешей предыдущих транзакций. Набор связей между транзакциями формирует известный нам DAG, в противоположность блокчейн-системам, используемых в Биткойне и в других криптовалютах. У Байтболла нет майнинга по типу Доказательства Работы или Доказательства Владения. Вместо подтверждения последующих блоков предыдущими, транзакции подтверждаются новыми транзакциями, появляющимися позже. Но такой тип «подтверждения» является лишь подтверждением существования транзакции и не предотвращает двойную трату.
Каким же образом решается проблема двойной траты? В валютах с моделью Доказательства Работы, конфликты вызванные двойной тратой решаются выбором той версии цепи блоков, на которую было затрачено больше работы (более длинной цепи). В Байтболле, так как он основан на DAG, уже существует частичная упорядоченность между транзакциями. Это позволяет немедленно выявлять и отбрасывать почти все попытки двойной траты. А что если двойная трата возникает на параллельных ветках DAG, а их упорядоченность не очевидна? Тогда Байтболл использует «Главную Цепь» — DAG цепь, проходящую через транзакции, объявленными известными доверенными пользователями, которые называются свидетелями. Из двух конфликтных транзакций признаётся действительной та, которая раньше другой появилась в Главной Цепи. Свидетели выбираются самими пользователями, которые объявляют своих предпочтительных свидетелей для каждой публикуемой транзакции.
Хотя ещё многое предстоит объяснить относительно Байтболл и его DAG-системы, уже понятно, что эта система является жизнеспособной альтернативой блокчейн-технологии и способна решить такие важные проблемы, как скорость, устойчивость, масштабируемость, безопасность, конфиденциальность и соблюдение правовых норм. Если система становится повсеместно используемой, транзакции проходят чаще и подтверждаются за несколько секунд, в противоположность 10-ти минутному ожиданию подтверждения у Биткойна. Что касается устойчивости, то система свидетелей используемая в Байтболл предлагает модель без майнинга по типу Доказательства Работы, что означает отсутствие бездумного сжигания электричества для обеспечения безопасности. Так как в системе Байтболла нет блоков, то нет и проблемы размера блока.
По сравнению с Эфириумом, смарт-контракты Байтболла не настолько функциональны и не Тьюринг-полны, но они просты и удобочитаемы для пользователей. А значит, обычные пользователи сами смогут увидеть, что фактически будет происходить с их деньгами. Рынки предсказаний уже работают на основе этих контрактов, а недавно представленная функциональность ручной настройки оракула позволяет любому пользователю без технических знаний создать рынок предсказаний.
По поводу конфиденциальности — другие альткоины, такие как Zcash и Dash, уже реализовали эффективный способ защиты пользовательской конфиденциальности. Но всё же хорошо знать, что вы можете сохранять конфиденциальность в сети, не требующей долгого времени подтверждения или расточительного майнинга по модели Доказательства Работы. Байтболл позволяет передавать средства конфиденциально посредством “blackbytes” (чёрные байты).
Наконец, Байтболл через систему выпуска активов предоставляет соблюдение правовых норм. Вот как это описано в концепции:
«Пользователи могут создавать новые активы и определять правила, регулирующие процесс передачи. Правила могут включать ограничения на трату, такие как например, требование совместного подписания создателем актива всех фактов его передачи, что для финансовых институтов является одним из способов соблюдения правил в области регулирования.»
IOTA: Сплетение
IOTA — уникальная криптовалюта. Она также использует организационную модель Направленного Ациклического Графа (DAG) под названием «Сплетение», её реализация и применения довольно сильно отличаются от Байтболла. Разработанная специально для ИВ (Интернет-Вещей) индустрии, IOTA провела успешное ico в 2015, собрав 1337 BTC, и появилась на Bitfinex в этом году.
Помимо метода распределения, у IOTA есть несколько отличий от Байтболла. Например, в IOTA все созданные транзакции должны быть утверждены минимум двумя предыдущими транзакциями. Чтобы это сделать, пользователи (создающие и утверждающие транзакции) должны решить криптографическую задачу, похожую на ту что есть в криптовалютах на основе системы Доказательства Работы (Proof of Work). Кроме того, в IOTA совсем нет комиссий, независимо от суммы или размера транзакции. Вместо этого, участие узлов в сети, создание и подтверждение транзакций поощряется другими узлами, которые могут исключить неактивные узлы не транслирующие транзакции регулярно в сеть. По мнению разработчиков IOTA, отсутствие транзакций решает две критичные проблемы. Цитата из концепции:
«В стремительно развивающейся индустрии Интернета Вещей, важность микроплатежей будет только возрастать, и ситуация когда размер комиссии больше, чем передаваемые средства, просто нелогична. Кроме того, не так просто избавиться от комиссий в блокчейн-инфраструктуре, ведь они являются поощрением для создателей блоков. И это приводит существующие криптовалютные технологии к другой проблеме, а именно — гетерогенность самой системы. В системе есть два различных типа участников, те кто создаёт транзакции, и те кто утверждает транзакции. Такая схема порождает неизбежную дискриминацию некоторых участников, что в свою очередь создаёт конфликты, и все элементы системы начинают затрачивать ресурсы на разрешение этих конфликтов. Вышеупомянутые проблемы привели к поиску решений, в корне отличающихся от блокчейн-технологии — основы Биткойна и многих других криптовалют.»
Отсутствие комиссий обычно создаёт вектор для спам-атаки на сеть. Чтобы этого избежать, IOTA использует механизм «значимости», при котором транзакции подтверждаются в соответствии со своим весом в сети. Этот вес пропорционален количеству работы, произведённой узлом, распространившим транзакцию. Механизм значимости таким образом гарантирует отсутствие спама, потому что ни один участник сети не сможет генерировать множество транзакций с приемлемым «весом» в короткий промежуток времени.
Несмотря на некоторые различия между этими двумя реализациями основанных на DAG криптовалют, IOTA позиционирует себя отдельно, концентрируясь на индустрии Интернета Вещей. Если вы не знакомы с Интернетом Вещей — его концепция включает в себя глобальную сеть в которой такие устройства как бытовая техника, автомобили и т.д. способны связываться друг с другом и обмениваться данными, при этом позволяя удалённо наблюдать и даже контролировать себя. Цель IOTA — наладить беспрепятственный обмен и передачу ценностей и данных между этими элементами, позволяя любому устройству с функцией Интернета Вещей, технике или автомобилю, эффективным образом быть проданным или сданным в аренду в среде с отсутствием доверия. Информация, предоставляемая самими устройствами также может быть куплена и продана через сеть IOTA. Концепция позволяет развиваться распределённой экономике таким путём, когда каждый может получить максимальную выгоду от своего имущества. IOTA выполняет роль основы для обмена ценностями в парадигме Интернета Вещей, в которой устройства производят средства для своего владельца, а не наоборот.
А теперь плохие новости
IOTA централизована
13 июня 2017 г. IOTA была допущена к торгам на Bitfinex и вскоре появилась на 7-м месте среди криптовалют по рыночной капитализации на coinmarketcap.com с $1,5 млрд.
Bitfinex привела следующие мотивы для допуска к торгам:
IOTA на Bitfinex
Во вторник, 13 июня, мы добавим поддержку биржевых торгов IOTA (IOT) в парах IOT/USD и IOT/BTC. Маржинальная торговля для пар IOT будет разрешена через несколько дней, когда в стакане котировок создастся достаточная ликвидность.
Что такое IOTA (IOT)?
IOTA – первый протокол распределённого реестра, выходящий «за рамки блокчейна» благодаря своему базовому изобретению, «Tangle». IOTA Tangle – это направленный ациклический граф, где нет комиссий с транзакций и нет фиксированного лимита числа подтверждённых транзакций в секунду в сети; вместо этого пропускная способность растёт согласно активности в сети; то есть, чем выше активность, тем быстрее работает сеть. В отличие от типичной блокчейновой архитектуры, в IOTA нет разделения на пользователей и валидаторов; вместо этого валидация является неотъемлемым свойством использования реестра, что помогает избежать централизации.
Bitfinex и IOTA
Bitfinex следила за IOTA с её самых ранних этапов развития и поддерживает новаторский подход проекта к безблоковому распределённому реестру. Мы убеждены, что лежащая в его основе технология может привести к новой экосистеме приложений, построенных поверх этой децентрализованной и саморегулируемой пиринговой сети.
Это согласуется с информацией, представленной на сайте IOTA. Если эти заявления окажутся правдой, то IOTA станет, пожалуй, самой интересной инновацией в этом пространстве.
Перевод: «Главная инновация IOTA – Tangle, новый революционный безблоковый распределённый реестр – масштабируемый, потребляющий мало ресурсов и впервые позволяющий переводить средства без комиссий. В противоположность существующим блокчейнам, консенсус является не отдельной, а неотъемлемой частью системы, результатом чего является децентрализованная и саморегулируемая пиринговая сеть».
Сегодня не хочется углубляться в то, как работает IOTA или что такое DAG (направленный ациклический граф), так как в сети имеется достаточно ресурсов (сайт, whitepaper, GitHub), и сегодня мы уже затрагивали эту тему. Предлагаю очень короткую и упрощённая версию:
Реестр IOTA построен в виде дерева, где корневой узел («узел» здесь означает просто положение на дереве и не имеет ничего общего с сетевыми узлами) является эквивалентом родительского блока (genesis block), и каждая последующая транзакция создаёт новый узел дерева. Из родительского узла все iota, которые когда-либо будут созданы, были распределены между группой адресов, участвовавших в изначальном ICO в 2015 г. Чтобы пользователь расширил это дерево, его транзакция должна указывать на две выбранные случайным образом предыдущие транзакции на дереве и включать небольшой хеш доказательства работы. Так строится постоянно растущее дерево, представляющее реестр.
После выбора двух предыдущих транзакций он также удостоверяется, что они включают необходимое доказательство работы и ни прямо, ни опосредованно не расширяют транзакцию двойного расходования на дереве.
Чтобы выбрать, какую ветвь дерева расширять, он следует определённому алгоритму на основе цепи Маркова, и если большинство пользователей следует тому же алгоритму, дерево будет расширяться в одинаковом направлении. Это направление затем защищается посредством добавления с каждой новой транзакцией очередных доказательств работы. Однако система гарантирует безопасность только в том случае, если взломщик не соберёт больше 33% вычислительной мощности сети.
Проблема
В этом-то и заключается проблема: на данном этапе взломщик очень легко может собрать 33% вычислительной мощности сети, поскольку хеширование происходит только в момент добавления к дереву новых транзакций и длится секунду, если использовать нормальный ноутбук.
Мне не удалось найти информацию о том, как IOTA решает эту настораживающую проблему безопасности, ни на сайте, ни в whitepaper, но после долгих поисков я нашёл следующую информацию в двух независимых блогах (1, 2):
«Майлстоуны: Майлстоун (milestone) – это особая транзакция, проводимая специальным узлом, который называется Coordinator. Coordinator контролируется IOTA Foundation, его главная задача – защищать сеть, пока она не станет достаточно сильной, чтобы выдержать масштабную атаку владельцев GPU. Майлстоуны задают общее направление роста Tangle и определяют своего рода контрольные точки. Транзакции, на которые прямо или опосредовано ссылаются майлстоуны, считаются подтверждёнными».
Для верности я получил подтверждение от одного из разработчиков в Slack:
Это значит, что IOTA в её нынешней форме не предоставляет никакой цензуроустойчивости, поскольку путь дерева направляется централизовано посредством узла Coordinator, контролируемого IOTA Foundation. Таким образом, IOTA не более децентрализована, чем кластер Apache Kafka или Ripple с его списком уникальных узлов (Unique Node List). Кроме того, это также делает IOTA уязвимой к атакам двойного расходования самого Coordinator.
Даже если планируется, что Coordinator в будущем станет необязательным, сейчас мы никак не можем удостовериться, что технология будет безопасно работать без него, а поэтому впечатляющие заявления IOTA остаются всего лишь амбициозной теорией.
Я согласен, что это может быть не так уж и важно для пользователей, но я не представляю, как об этом должен узнать средний человек, так как об этом не упоминается ни в whitepaper, ни на сайте IOTA.
Участие сообщества в жизни проекта
Неха Нарула, Таддеус Драйджа и Мадарс Вирза из медиа-лаборатории Массачусетского технологического института (MIT) и Итан Хейлмен из Бостонского университета обнаружили криптографическую уязвимость в криптовалюте IOTA, при том, что она входит в ТОП-15 по рыночной капитализации.
Уязвимость кода IOTA
Согласно посту Нехи Нерулы, директора инициативы цифровых валют медиа-лаборатории MIT, учёные проанализировали репозитории реестра IOTA на GitHub и обнаружили серьёзную уязвимость в криптографической хеш-функции проекта под названием Curl.
Авторская хеш-функция IOTA Curl создала коллизии, когда разные входы хешируются в один выход. Команда исследователей разработала атаку, в считанные минуты выявляющую коллизии с помощью стандартного аппаратного обеспечения и позволяющую подделывать подписи платежей IOTA, что даёт хакерам возможность похитить средства пользователей IOTA.
Для криптографических хеш-функций желательно, чтобы они были свободны от коллизий, не в строгом смысле, а так, чтобы на поиск коллизии понадобилось неимоверно много времени.
Так как исследователи из MIT и Бостонского университета – не чёрные хакеры, стремящиеся что-нибудь присвоить или разрушить, они ещё в августе ответственно проинформировали команду разработчиков IOTA об уязвимости. Информация об уязвимости была опубликована примерно месяцем позже, 7 сентября 2017 г., с «рекомендацией заменить хеш-функцию Curl общепризнанной и публично проверенной хеш-функцией», чтобы снизить риск появления новых уязвимостей.
«Данный отчёт является следствием процесса ответственного раскрытия информации. За месяц до публикации отчёта мы сообщили об уязвимостях разработчикам IOTA. В ответ разработчики обновили IOTA, чтобы хеш-функция Curl больше не использовалась для хеширования транзакций в рамках процесса подписания IOTA. Curl по-прежнему используется в IOTA в других целях», – написала Нарула в отчёте об уязвимости IOTA на GitHub.
8 августа разработчики IOTA заменили Curl новой криптографической хеш-функцией KECCAK-384 (или «Kerl»), которая устраняет уязвимость в коде IOTA и предотвращает подобные атаки.
Вот пример транзакции, посредством которой можно обогатиться на уязвимости хеш-функции Curl, о которой исследователи сообщили команде IOTA. Алиса подписывает платёж Еве 100 IOTA, и Ева затем может использовать подпись этого платежа для авторизации и обработки платежа, где Ева получает 129 140 263 IOTA из средств Алисы.
В сентября прошлого года прошла встреча с обсуждениями, где обещали в прямом эфире продемонстрировать взлом хеш-функции IOTA, но некоторые комментарии о встрече показывают разочарование демонстрацией.
Реакция IOTA на уязвимость
В ответ на объявление Нарулой об обнаружении недочёта в коде в её блоге и через сообщение об уязвимости на GitHub команда IOTA в тот же день опубликовала заявление, чтобы объяснить свою позицию по этому открытию.
Хотя команда IOTA рада, что исследователи из MIT и Бостонского университета проинформировали её об уязвимости хеш-функции Curl, пример того, как можно эксплуатировать код для хищения средств, «не является действенной атакой на криптовалюту IOTA», и критика обоснована лишь в академическом смысле.
«Во-первых, ни один из существующих кошельков IOTA не предлагает данный функционал для подписания чужих связок – поэтому Алиса должна быть опытным программистом, чтобы вручную подписать связку с помощью существующих библиотек, и достаточно наивной, чтобы подписать связку, созданную кем-то другим.
Во-вторых, чтобы Ева вообще смогла сгенерировать такую связку, она должна знать, какие адреса принадлежат Алисе. Ева не может рассчитать принадлежащие Алисе адреса, зная лишь один адрес Алисы, поэтому для этой атаки Еве потребуется предварительно заполучить seed (что делает атаку маловероятной), или же Алиса должна сообщить свой адрес Еве.
В-третьих, в любой момент в узле IOTA может существовать только одна связка Евы. Если у Евы нет лучшего охвата сети, чем у Алисы, или если она не проведёт успешную атаку затмения (eclipse attack) против Алисы, вредоносная связка Евы не будет подтверждена раньше связки Алисы. Сетевые характеристики IOTA сильно усложняют реализацию атаки затмения», – говорится в заявлении IOTA.
Сергей Иванчегло, сооснователь IOTA, 10 сентября 2017 года опубликовал более подробный ответ, где заявил, что переписка с исследователями показывает, что нет никакой уязвимости, которая влияла бы на пользователей. Таким образом, команда IOTA считает, что в реальной жизни подобные атаки очень маловероятны и поэтому не представляют настоящей угрозы безопасности пользовательских средств.
Что касается использования функции Curl, разработчики IOTA заявили, что наняли в команду пятерых опытных криптографов, а также трёх независимых исследователей криптографии для разработки окончательной версии Curl и последующего продолжительного процесса экспертной проверки, как изначально и планировалось.
Золотое правило криптографии
В своём посте Нарула напоминает сообществу о золотом правиле криптографии: «не внедряй собственную криптографию». Она утверждает, что если спросить любого исследователя в этой области, тот посоветует при разработке новой системы использовать основательно протестированные и широко понимаемые криптографические элементы, так как обычно для того, чтобы проверить новую криптографическую функцию и убедиться в её безопасности, требуется не один год.
Поэтому она считает, что тот факт, что команда IOTA написала собственную хеш-функцию, должен настораживать любого, кто собирается присоединиться к проекту.
Так как об уязвимости кода IOTA было объявлено после того, как разработчики IOTA её устранили, на цену токена IOTA это открытие практически не повлияло. Однако это служит строгим напоминанием инвесторам ICO о том, что они могут инвестировать в токен, построенный на уязвимом коде, что в очередной раз подчёркивает риски инвестирования в новые цифровые токены и активы.
Вывод
Заменят ли валюты, основанные на DAG технологии сам блокчейн? Сложно сказать. Вместе с очевидными преимуществами, эти DAG-системы всё ещё довольно далеки от роли популярной альтернативы, они местами централизованы и сыры, основываются на не проверенных и, возможно, опасных решениях. Очень малое число проектов использует их в работе. Тем не менее, эти проекты ищут свою нишу в криптомире. Не смотря на то, что IOTA входит в топ-15 криптовалют по капитализации (согласно Coinmarketcap), такое вложение на текущий момент может являеться супер-рискованным.
По материалам: Cointelegraph, BTCmanager, Medium
Подписывайтесь на CoinHunt в телеграмм