Недавно основатель Ethereum Виталик Бутерин опубликовал пост на Reddit, в котором он размышляет о кроссчейн-совместимости блокчейнов. Если кратко: он пессимистично настроен в отношении этой концепции, хотя и верит в мультичейн-экосистему в понимании сосуществования сетей и сообществ с разными ценностями.
Специально для ForkLog основатель проекта deBridge.finance Алекс Смирнов разобрал тезисы Бутерина и объяснил, почему атаки 51% не являются приговором для кроссчейн-мостов. Он убежден, что будущее за полной совместимостью блокчейн-экосистем, а не параллельным существованием без прямых связей.
Допустимость атаки 51%
Свой пессимизм Виталик Бутерин связывает с моделью безопасности и рассматривает на примере атаки 51%. По его мнению, атаки такого типа не являются критическими и их не нужно предотвращать.
Блокчейн — это некоторая последовательность состояний, и самое болезненное для пользователя, — откат состояния к какому-то предыдущему значению. Например, вы успешно обменяли 1 ETH на 3300 USDT на Uniswap. В случае атаки худшее, что может произойти, — откат состояния на тот момент, когда у вас еще не было 3300 USDT, но был 1 ETH на балансе кошелька. Бутерин резюмирует, что в рамках одной экосистемы эти атаки не так критичны и не нужно бросать все силы на их преодоление.
С кроссчейн-мостами же ситуация совсем другая: если вы успешно получили активы из одного блокчейна в другом через мост, то в случае атаки на цепь отправки и отката состояния вам вернется ваш изначальный актив. В этот момент обернутые активы, выпускаемые протоколом моста в других сетях, теряют залоговое обеспечение в нативной цепи.
Опасения Бутерина действительно обоснованны, однако все ли настолько критично?
Мы не должны относиться к атакам 51% как к чему-то нормальному, что предусмотрено протоколом. В каждом блокчейне сложился социальный консенсус касательно финальности транзакций — в сети Ethereum необходимо 11 подтверждений, и только тогда перевод считается необратимым. Предполагается, что при соблюдении этого условия транзакцию нельзя будет откатить с помощью атак с реорганизацией блоков.
Потенциальные атаки влияют не только на кроссчейн-мосты, но и на всю экосистему приложений и сервисов поверх блокчейна: биржи, платежные и кастодиальные решения, шлюзы и многое другое. Любая атака, нарушающая общепринятый стандарт финальности транзакций, подрывает доверие к безопасности всей экосистемы, — поэтому их допускать нельзя.
Методы защиты
Как же протоколам совместимости (мостам) защищаться от такого рода атак?
В deBridge протокол состоит из двух уровней:
- Уровень протокола, который представлен набором смарт-контрактов в каждой из поддерживаемых сетей.
- Уровень инфраструктуры, который представлен валидаторами, которых назначает правительство (governance) протокола. Задача валидаторов — предоставлять протоколу инфраструктуру и иметь запущенные ноды всех поддерживаемых блокчейнов наряду с нодой deBridge, которая считывает информацию из смарт-контрактов.
Каждой кроссчейн-транзакции смарт-контракт автоматически назначает уникальный номер (nonce), который является ее порядковым номером. Валидаторы подтверждают транзакции в порядке возрастания нонсов — если в последовательности появляются дубли, то в сети произошла реорганизация блоков или атака. Валидаторы автоматически приостанавливают валидацию всех транзакций из этой сети, чтобы правительство протокола разобралось, что случилось и нужно ли усилить требования к финальности транзакций в данной цепи.
Учитывая, что состояния в блокчейне всегда консистентны, атакующие не могут внедрить произвольное состояние (например, подменить нонс). В случае атаки 51% у них будет только одна попытка на перевод только одного определенного токена через мост, для осуществления которой им нужно атаковать консенсус всего блокчейна. Кроме стоимости атаки на консенсус, атакующим нужно приобрести актив на ту сумму, на которую планируется атака, что сделает атаку еще более дорогостоящей.
Более того, валидаторы всегда могут исключить валидацию сценариев, вероятность которых близка к нулю. Например, если в протоколе моста заблокировано $10 млрд в ETH, вряд ли существуют сценарии, где вся сумма принадлежит одному кошельку и может быть выведена одной транзакцией. Для таких сценариев в ноде валидаторов может быть усилено требования к финальности (например, 400 подтверждений вместо 11), что сделает атаку на мост еще более дорогостоящей.
Страхование рисков
В ближайшее время все кроссчейн-взаимодействия будут абстрагированы интерфейсом кошельков и децентрализованных приложений (dapps), пользователь не будет даже знать о том, что пользуется каким-то мостом. На примере кроссчейн-свопов — пользователь просто совершает обмен, указывая какой актив он отдает и какой актив в другой сети он хочет получить. Вся магия происходит в фоновом режиме, и пользователям не нужно даже знать про существование обернутых активов, выпущенных мостом, или про существование пулов ликвидности. Мосты — это как протокол TCP/IP для интернета. Когда мы пользуемся сайтами, мы не думаем о том, как передаются пакеты, мы лишь наслаждаемся результатом, а все остальное абстрагируется за окном браузера.
Весь риск берут на себя те, кто владеет обернутым токеном актива, который пострадал в ходе атаки, а именно — поставщики ликвидности. Например, если я как поставщик ликвидности являюсь держателем какого-то обернутого актива из сети Ethereum, я беру на себя риск финальности транзакций и осознаю, что на эту сеть невозможно совершить атаку 51%, которая продлится дольше 11 блоков. В случае успешной атаки, сумма потерь пропорционально разделится между поставщиками ликвидности, которые заведомо взяли на себя риск.
Бутерин утверждает, что проблема усугубляется еще больше, если мост поддерживает сразу большое количество сетей, поскольку атака на одну сеть может привести к атаке на все активы протокола моста в других сетях.
Тут он не прав — многое зависит от дизайна протокола моста. Например, в deBridge с каждой транзакцией между сетями нода валидаторов вычисляет текущее состояние в каждой из сетей и знает общее число вводов и выводов по каждому активу. Таким образом, из каждой сети невозможно вывести больше, чем (общая сумма депозитов - общая сумма выводов) для каждого конкретного токена/актива. Такая транзакция просто не будет провалидирована, а валидация для этой сети приостановится для выяснения причин сбоя.
Атака на каждый конкретный блокчейн изолируется, а риски делятся между поставщиками ликвидности активов из данного конкретного блокчейна.
Протоколы кроссчейн-совместимости — это неотъемлемая часть Web3 и ближайшей волны развития DeFi. В ближайшее время мы увидим построение новых кроссчейн-приложений и примитивов, которые не были доступны раньше. Протоколы начнут взаимодействовать друг с другом и обмениваться информацией, несмотря на то, что они существуют в разных блокчейнах, а индустрия станет еще более сплоченной, что позволит быстрее создавать новый финансовый мир.
Поэтому будущее не только за мультичейн-сосуществованием, но и определенно за полной кроссчейн-совместимостью между протоколами и экосистемами.
Подписывайтесь на новости ForkLog в Telegram: ForkLog Feed — вся лента новостей, ForkLog — самые важные новости, инфографика и мнения.