Как Liquid Network получил контроль над 870 BTC и насколько безопасен протокол?
Из-за бага в сайдчейн-решении Liquid Network от компании Blockstream ее сотрудники в течение 18 месяцев имели доступ к чужим средствам. Руководство знало о проблеме, но не сообщило о ней. 25 июня уязвимость случайно обнаружил блокчейн-разработчик Джеймс Прествич, заметив, что операторы Liquid Network получили доступ к 870 ВТС, замороженным в сети. В сложившейся ситуации криптосообщество обвиняет Blockstream в излишней централизованности и возможном мошенничестве. Руководство компании заявляет, что средства были в безопасности, ни один сатоши не был украден и скоро баг будет исправлен. В чем причина уязвимости, почему Blockstream не спешил ее исправлять и насколько пострадала репутация компании, разобрался DeCenter.
Как устроен протокол Liquid Network
Чтобы лучше понять суть случившегося, коротко напомним, как работает протокол Liquid Network.
Liquid Network — частный централизованный сайдчейн блокчейна Bitcoin, работающий как расчетно-платежная сеть для бирж, трейдеров, маркет-мейкеров и брокеров. Liquid Network разработан и контролируется канадской компанией Blockstream и был запущен для массового использования в октябре 2018 года.
Всего у Liquid Network 44 партнера, включая Atlantic Financial, OKCoin, Xapo, Bitfinex, Bitmax, BitME, BitMEX, Ledger, Tether и Xapo среди прочих. С марта этого года протокол обогнал по количеству обращающихся биткоинов другой продукт Blockstream — решение второго уровня Lightning Network. В день выхода статьи в Liquid Network заблокировано 2161 ВТС — около $19.7 млн.
Liquid Network — отдельный дополнительный блокчейн, построенный поверх основной сети Bitcoin. Он позволяет совершать мгновенные транзакции в большом объеме, сохраняя конфиденциальность, и хранить средства за пределами биржи.
Транзакции осуществляются с помощью Liquid Bitcoin (L-BTC) — специальных токенов, привязанных к биткоину в отношении 1:1. Пользователь основной сети Bitcoin сначала отправляет монеты на выходящий адрес своп-кошелька, выполняющего роль моста между сайдчейном и основной сетью. В нем монеты «замораживаются» группой валидаторов — это исключает возможность траты монеты в другом месте. Валидаторы также гарантируют, что каждому ВТС в сайдчейне соответствует ВТС, замороженный в кошельке. После этого в сайдчейн переводится эквивалентное отправленным биткоинам количество L-BTC, а при отправке из сайдчейна в основной блокчейн все происходит в обратном порядке.
Как Джеймс Прествич нашел пропавшие 870 ВТС
25 июня блокчейн-разработчик и основатель стартапа Summa Джеймс Прествич заметил, что операторы Blockstream получили доступ к 870 ВТС (≈$7.9 млн), застрявшим в очереди на обработку транзакции еще 11 июня. Это стало неожиданностью для разработчика и для криптосообщества. Предполагалось, что такой возможностью сотрудники Blockstream могут воспользоваться только в самом крайнем случае.
Биткоины, отправленные в сеть Liquid в виде L-BTC, заморожены в кошельке с мультиподписью. Чтобы разблокировать монеты, нужно подтверждение подлинности транзакции 11 из 15 держателей ключа (контролирующих нод), выбранных случайным образом.
Важным условием, прописанным в технической документации Liquid Network, является то, что в случае выхода из сети 30% нод, например, при хакерской атаке, удерживаемые средства будут заблокированы навсегда. Чтобы этого не случилось, все средства, удерживаемые Liquid Network, также доступны с помощью набора из трех аварийных ключей.
Аварийный механизм срабатывает каждый раз, когда обработка одной транзакции превышает 2015 блоков — примерно 14 дней. 25 июня, то есть через две недели с 11 июня, период ожидания подтверждения транзакции с 870 BTC истек. Чтобы не потерять средства, 870 ВТС на протяжении получаса оказались доступны для расходования аварийным операторам Blockstream. Однако они перевели их в новый неизрасходованный выход транзакций (UTXO), что позволило обнулить счетчик аварийного смарт-контракта и не потерять средства навсегда.
Прествич заявляет, что обнаружил действия Blockstream совершенно случайно. В Twitter он задался вопросом «Как часто такое могло происходить раньше?» и обвинил компанию в нарушении модели безопасности. Также он поднял вопрос о том, что код протокола «не является полностью открытым исходным кодом, поэтому мы не можем проверить, как он работает».
Через несколько часов на сообщение Прествича ответил глава Blockstream Адам Бэк, рассказав, что компания в курсе проблемы и занимается ее решением. Сообщение не успокоило криптосообщество — получается, что аварийные операторы Liquid Network получают доступ к средствам пользователей каждые две недели. И если разработчики молчали об этой уязвимости, то о каких еще проблемах они не рассказали? В комментариях дошло до обвинений в том, что Liquid Network — не настоящий сайдчейн.
Blockstream объяснила инцидент
29 июня СЕО Blockstream Адам Бэк опубликовал официальное разъяснение случившегося, в котором подробнее объяснил механизм уязвимости. По его словам, проблема была вызвана несоответствием между параметрами временных ограничений, используемыми хост-сервером, на которых функционирует протокол, и аппаратных модулей безопасности (HSM), в которых хранятся аварийные ключи. Ошибка привела к тому, что сброс временного счетчика произошел после его истечения, а не «до», как было необходимо.
Бэк уточнил, что такая проблема ранее случалась лишь с небольшими транзакциями. Но из-за быстрого роста Liquid Network со 100 ВТС в декабре прошлого года до более 2000 ВТС сейчас, ошибка произошла и на крупной транзакции.
Адам Бэк заверил, что все 870 ВТС и остальные средства в сети были и остаются в безопасности — резервные ключи не используются в устранении проблемы, а временные ограничения был обновлены сетью без какого-либо ручного вмешательства. Кроме того, ошибка открывает только возможность внутренней кражи сотрудниками — украсть монеты «со стороны» таким образом невозможно.
Blockstream работает над устранением уязвимости
Бэк признал, что команда проекта знала об уязвимости уже 18 месяцев, но ее устранение откладывалось из-за «внешних проблем в координации обновлений на функциональных серверах, обслуживающих сеть». Разработчики решили не заявлять о проблеме публично до ее устранения.
Бэк рассказал, что компания работает над решением проблемы, и пообещал исправить баг в ближайшее время. Однако это сложный процесс. Разработчики обновили ПО серверов, а вот программное обеспечение аппаратных модулей безопасности осталось пока без изменений. Это физические устройства, географически распределенные по разным странам, и координация их обновлений сложна.
Впрочем, код их обновления уже представлен на рассмотрение технологической комиссии Liquid и после утверждения будет запущен. Также разработчики работают над поэтапным развертыванием «динамического обновления» (DynaFed), которое должно значительно изменить протокол и сделать его более надежным. В комментариях для издания CoinDesk директор по маркетингу Blockstream Нил Вудфайн уточнил, что эти обновления должны быть реализованы к четвертому кварталу 2020 года.
Почему криптосообщество не доверяет Liquid Network
Blockstream вносит огромный вклад в развитие инфраструктуры биткоина. Среди ее продуктов:
Lightning Network — протокол второго уровня для проведения микроплатежей вне основного блокчейна биткоина;
Blockstream Satellite — спутниковая сеть, транслирующая блокчейн биткоина;
Blockstream Green — безопасный биткоин-кошелек;
Blockstream Explorer — обозреватель блоков сети Bitcoin, совместимый с Liquid Network;
Проект Elements — биткоин-платформа, позволяющая совершать операции с различными типами активов;
Blockstream Mining — сервис для корпоративных майнеров;
Cryptocurrency Data Feed — информационный сервис, отслеживающий 400 торговых пар и состояние рынка.
Но несмотря на это Blockstream и Liquid Network пользуются неоднозначной репутацией среди криптосообщества, особенно среди владельцев биткоинов: компанию упрекают в стремлении монополизировать инфраструктуру, а Liquid Network — в излишней централизации и непрозрачности.
Liquid Network — частная сеть, опирающаяся на доверенных функционеров. Храня ВТС вне основного блокчейна Bitcoin, компания получает значительный контроль над средствами пользователей. Кажется, что эти биткоины принадлежат в основном биржам и трейдерам, но на самом деле это монеты простых держателей первой криптовалюты. Централизованная модель безопасности противоречит децентрализованному принципу, заложенному в Bitcoin, и делает Blockstream мало отличной от традиционных платежных систем, вроде SWIFT или PayPal.
У самой Blockstream — запятнанная репутация. Компания была уличена во взломе и манипуляции голосованием на Reddit при непосредственном участии бывшего технического директора Грегори Максвелла, в работе с бывшими разведчиками, а также ее обвиняли в стремлении нажиться на патентах на SegWit.
Кроме того, у ряда партнеров Liquid Network тоже есть определенная слава и неоднократные случаи взломов на счету. Так, к эмитенту Bitfinex, компании iFinex, постоянно возникают вопросы как со стороны криптосообщества, так и от правоохранительных органов — ее уже обвиняют в обмане клиентов и использовании долларовых резервов стейблкоина Tether, а также в манипулировании ценами. Против BitMex также выдвинуты обвинения в мошенничестве, манипулировании рынком и отмывании денег. Концепция безопасности Liquid Network предполагает, что именно этим организациям пользователи сети должны доверять свои деньги.
Случившийся инцидент с 870 ВТС хоть и закончился хорошо, но явно играет против Liquid Network и Blockstream. Компания знала о проблеме полтора года, но за все это время не нашла ресурсов на ее исправление и даже не уведомила сообщество.