Ошибка Ripple: как dApp анонимного разработчика выявило уязвимость блокчейна XRP
Хотя большинство блокчейнов используются для хранения информации о транзакциях, их можно использовать и для других целей. Этой возможностью воспользовался анонимный программист, который запустил блокчейн-приложение IndImm для хранения файлов любого размера в блокчейне криптовалюты XRP. Криптосообщество третьей по капитализации цифровой валюты забило тревогу, поскольку с помощью такого dApp злоумышленники смогут загружать незаконный контент, а спамеры — сбрасывать гигантские файлы, замедляя работу сети и задерживая транзакции. DeCenter разобрался, как одно приложение может помешать работоспособности всей сети XRP и может ли подобное случиться с другими блокчейнами.
Чем опасно приложение IndImm
Иногда инновации — это палка о двух концах. То, что является серьезным прорывом для одних, может привести к неожиданным последствиям для других. Так получилось и с новым блокчейн-приложением IndImm.
22 июля анонимный программист выпустил приложение с открытым кодом, которое позволяет любому пользователю загружать файлы любого размера в блокчейн XRP. Приложение использует собственный протокол обмена сообщениями, оно основано на работе с целевыми тегами, имеющимися у всех транзакций XRP и предназначенными для идентификации транзакций.
Почти каждый день неизвестный автор выкладывает новости об очередном обновлении в Twitter-аккаунте IndImm. Например, недавно была добавлена индексация файлов-изображений, воспроизведение видео в формате WebM, комментирование, а вскоре должен появиться поиск по файлам. Судя по твитам, сейчас IndImm находится в стадии бета-тестирования, однако в будущем будет выпущен весь код.
Сначала кажется, что приложение не несет ничего плохого — это просто еще один вариант использования блокчейна. Несмотря на то, что сеть XRP предназначена в первую очередь для финансовых транзакций, возможность хранения файлов в ней может быть интересным вариантом применения для корпоративных пользователей, уже экспериментирующих с ней. Однако IndImm несет больше проблем, чем пользы.
Во-первых, IndImm может быть использовано для незаконных загрузок, например, детской порнографии или пиратского контента. Этот контент, конечно, хранится в зашифрованном виде и извлечь его оттуда не так просто. Но такое уже случалось с блокчейном Bitcoin, и это явно не то, с чем хочет ассоциироваться Ripple.
Во-вторых, в руках спамеров IndImm может замедлить работу сети и повысить стоимость транзакций. Главная сложность в том, что блокчейн плохо подходит для хранения неограниченных объемов данных. Спамер может сбрасывать в блокчейн Ripple огромные файлы, тем самым забивая сеть дополнительными данными, хранение и стоимость обработки которых будут очень дороги — примерно $11 за один мегабайт.
У сети Ripple есть встроенная защита от спама — чем больше транзакций сеть не может обработать, тем дороже становится комиссия за одну транзакцию. Поэтому, чтобы нанести сети реальный ущерб, понадобилось бы потратить огромные деньги на создание достаточного количества спам-транзакций. Но в любом случае у блокчейна криптовалюты XRP появляется серьезная уязвимость.
Какую цель преследует разработчик?
В конце июля издание TheBlock опубликовало интервью с анонимным разработчиком IndImm. Программист рассказал, что «не является экспертом по разработке блокчейнов», и у него «очень небольшие» знания о Ripple. XRP был выбран потому, что у него «солидный послужной список и сообщество», «простой в использовании API», низкая стоимость комиссий и высокая скорость транзакций.
Главный интерес для программиста представляет криптография сама по себе — разработчик разочарован, что «99% блокчейнов используются лишь для торговли спекулятивными активами». По его мнению, приложения вроде IndImm, могут стать частью «большого и нетривиального рынка». «В этом проекте я преследовал две цели: борьба с цензурой и реальное использование криптографии», — рассказал программист. Более того, цели заработать у него нет — у приложения открытый исходный код.
В отдельном сообщении на форуме 4chan разработчик отметил, что проблемы с пропускной способностью сети и незаконным контентом при необходимости можно легко решить. Тем не менее будущее IndImm находится в подвешенном состоянии — программист получил много отзывов от операторов узлов сети и подумывает о закрытии проекта. Большинство операторов поддерживает разработку IndImm, меньшая часть — выступает решительно против, однако все они отмечают, что хоть это и неплохая идея, но она не подходит для блокчейна Ripple. Автор приложения всерьез обеспокоен тем, что его работа может угрожать существованию Ripple. «Я не хочу причинить вред Ripple, XRP или сообществу», — заявил он в интервью.
Ответная реакция команды Ripple
Вскоре после твита о разработке IndImm представители Ripple поблагодарили анонимного программиста за работу, но в то же время выразили озабоченность по поводу возможных последствий запуска dApp. Поэтому, по словам представителя Ripple, команда активно работает над решением, которое сведет на нет возможные последствия IndImm.
Так, Уитси Винд, основатель XRP Labs, написал в GitHub, что благодарен разработчику за вклад в развитие экосистемы, но опасается сценария, в котором приложение получит действительное и широкое использование. По его словам, это лишь вопрос времени, когда в сеть XRP загрузят нелегальный контент (прежде всего, противники XRP), который будет невозможно удалить. «Это стало бы юридическим кошмаром, — предостерег Винд. — Я любезно прошу (умоляю) вас прекратить проект». На будущее программист предложил обновления в сеть — экспоненциально увеличить минимальную комиссию за транзакцию при отправке больших сообщений. Это должно свести на нет возможные нежелательные последствия IndImm.
При этом в GitHub развернулась целая дискуссия о том, как решить возможные проблемы. Например, технический директор Ripple Дэвид Шварц предложил еще несколько решений: отменить приоритет крупных транзакций, оставляя их в общей очереди, и взимать высокие комиссии для тех, кто отправил крупные транзакции. По его словам, он не верит в возможность крупной одномоментной спам-атаки. Более вероятен вариант, при котором злоумышленники будут постепенно увеличивать стоимость хранения истории сети — а это не принесет ощутимого вреда.
Пока никаких конкретных действий предпринято не было, хотя ожидается, что в ближайшие дни и недели будет опубликовано больше информации. «Думаю, угрозы для сети и клиентов нет. Проблему относительно легко решить. Например, голосованием валидаторов против длинных MEMO или за увеличение комиссии при бесконечных потоковых транзакциях с длинными MEMO (по принципу увеличения комиссии при спаме на сеть). Наверняка скоро будет принят коммит, который это все решит», — заметил Константин Артемов, крипто-инвестор, основатель посреднической платформы RiseX.net.
Угрожают ли подобные приложения сетям других блокчейнов?
Забивать сеть ненужными огромными файлами, чтобы замедлить ее работу — довольно старый метод, который уже использовался для биткоина. Это не приносит сети большого вреда. Особенно это не критично для децентрализованных некорпоративных блокчейнов. Комиссии за транзакции в них пропорциональны размеру передаваемых файлов, и блокчейны относительно защищены против спам-атак. «Метод загрузки большого количества данных опасен только в том смысле, что может замедлить работу сети и, следовательно, может задержать транзакции. Любая технология, которая позволяет каждому желающему добавлять метаданные в транзакцию, является уязвимой. Но пространство для метаданных обычно невелико, поэтому огромные файлы придется разбивать на несколько частей, а каждая транзакция обычно предусматривает вознаграждение, что делает загрузку огромных файлов дорогостоящей. Если бы транзакционные издержки не были пропорциональны размеру загрузки или не принимали бы во внимание метаданные, блокчейны были бы гораздо более восприимчивыми к атакам, поскольку затраты на выполнение таких атак были бы значительно ниже», — рассказал Петр Ковач, старший исследователь Avast.
IndImm — это яркий пример проблем, возникающих в любом блокчейне, который позволяет бесплатно использовать часть своих ресурсов. «В публичных блокчейнах, вроде Bitcoin, Ethereum, EOS, огромное внимание уделяется ограничению вычислений, доступных пользователям — в них каждый байт оплачивается и учитывается. Это делается не для заработка майнеров, но прежде всего для защиты сети именно от такого рода атак. Когда корпорации строят блокчейн, они очень часто прежде всего предоставляют доступ к блокчейну без наличия криптовалюты на балансе пользователя, то есть — попросту разрешают бесплатные транзакции. Но, получив доступ к единственному аккаунту, злоумышленник может заваливать блокчейн множеством мусорных данных или просто бесплатно записывать и хранить любую информацию. Блокчейн, созданный для точного хранения и учета всех (!) данных пользователей будет обязан хранить этот мусор, либо будет вынужден делать сложный и дорогой хардфорк и вычистку базы», — рассказал Сергей Прилуцкий, сооснователь компании-разработчика «MixBytes», преподаватель программы дополнительного образования BCL.
Ripple позволил пользователям бесплатно записывать информацию в свою сеть. Появление приложения вроде IndImm, которое бесплатно сохранит в сети нужные пользователю данные, было лишь вопросом времени. Обновление кода в Ripple централизованно, поэтому компания легко решит проблему. «Но случай с IndImm хорошо показывает, что любые бесплатные операции в блокчейнах — это всегда проблемы с безопасностью», — заметил Сергей Прилуцкий.