Добавить в корзинуПозвонить
Найти в Дзене
Трофим Воробьев

Как вайб-кодер и Claude чуть не убили стартап

Каждый день из каждого утюга мы слышим про вайб-кодинг и сказки о невероятных возможностях AI. Слышим, что программисты скоро будут не нужны. Да и вообще ИИ заменит всех кожаных, держащих в руках мышку. Долго тянуть не будем, хотя можно распеть тирады о том, что ИИ не заменит человека. Как минимум потому, что НАДО НА КОГО-ТО В СЛУЧАЕ ЧЕГО СВАЛИТЬ ОТВЕТСТВЕННОСТЬ. И так, история о том, как вайб-кодер почти убил стартап. Ну, формально он еще живой, но ни один здравомыслящий человек с ним более не свяжется. Держите ссылку на подробное объяснение происходящего, если хотите. Сейчас буду происходящее в статье просто копировать, потому что не разбираюсь в этой теме и не планирую. Но вот затем лучше окунемся в методику разработки ребят, чтобы понять глубину проблемы. Дело было в крипте. Протокол кредитования Moonwell столкнулся с атакой, в результате которой проект лишился $1,78 млн. Инцидент произошел 15 февраля 2026 года после активации предложения MIP-X43, разрешившего использование контр
Оглавление

Каждый день из каждого утюга мы слышим про вайб-кодинг и сказки о невероятных возможностях AI. Слышим, что программисты скоро будут не нужны. Да и вообще ИИ заменит всех кожаных, держащих в руках мышку.

Долго тянуть не будем, хотя можно распеть тирады о том, что ИИ не заменит человека. Как минимум потому, что НАДО НА КОГО-ТО В СЛУЧАЕ ЧЕГО СВАЛИТЬ ОТВЕТСТВЕННОСТЬ.

И так, история о том, как вайб-кодер почти убил стартап. Ну, формально он еще живой, но ни один здравомыслящий человек с ним более не свяжется.

Держите ссылку на подробное объяснение происходящего, если хотите. Сейчас буду происходящее в статье просто копировать, потому что не разбираюсь в этой теме и не планирую. Но вот затем лучше окунемся в методику разработки ребят, чтобы понять глубину проблемы.

Что случилось

Дело было в крипте. Протокол кредитования Moonwell столкнулся с атакой, в результате которой проект лишился $1,78 млн. Инцидент произошел 15 февраля 2026 года после активации предложения MIP-X43, разрешившего использование контрактов Chainlink OEV на рынках Base и Optimism.

По мнению экспертов, ключевой проблемой стала некорректная настройка оракула, отвечающего за оценку стоимости Coinbase Wrapped ETH (cbETH). Из-за ошибки протокол начал получать неверные ценовые данные, что открыло путь для эксплуатации.

Вместо корректного расчета через cbETH/ETH и ETH/USD система фактически использовала лишь соотношение токенов, не «домножив» его на долларовую цену Ethereum. В итоге оракул показывал стоимость cbETH около $1,12, хотя рыночная цена актива была на уровне $2200.

Заниженная котировка мгновенно запустила каскад ликвидаций, поскольку боты начали закрывать позиции, обеспеченные cbETH.

Они погашали незначительный долг и получали непропорционально большой объем залога. В отдельных случаях речь шла о том, что за примерно $1 долга атакующие забирали более тысячи cbETH, что «выжигало» обеспечение заемщиков и оставляло их позиции с остаточной задолженностью.

Команда Moonwell заявила, что после обнаружения проблемы риск-менеджер оперативно снизил лимит заимствования cbETH до 0,01. Это позволило ограничить дальнейшие потери и остановить распространение атаки.

Кратко, что произошло

Примерно так: один из элементов кода системы считал, что для получения размера капитала в денежном эквиваленте умножать количество актива на стоимость актива не нужно. Условно говоря, у вас 2 биткойна ценой по 100 000 каждый. Капитал в денежном эквиваленте - 2 * 100 000 = 200 000. А у ребят считалось, что ваш капитал в денежном эквиваленте равен 2.

А дальше у огромной кучи трейдеров случились ликвидации. Кратко, как работает механизм. Вы хотите биткойн. Но у вас нет 100 000 баксов. Есть только 1 000. Вы идете на биржу и говорите "дай взаймы сумму, стократно превышающую мою 1 000 баксов, чтобы я купил биткойн". 100 * ваша 1 000 как раз равно 100 000 - стоимость биткойна. Биржа говорит "хорошо, но как только цена упадет со 100 000 до 99 000, я заберу твою 1 000 баксов". Вот что такое "ликвидация" - цена актива упала до установленной биржей во избежание убытков от займа.

А теперь представьте, что из-за ошибочного кода система стала считать, что биткойн стоит не 100 000 баксов, а 1. ЛИКВИДНУЛО ВСЕХ, КОГО УСПЕЛО. В какой-то момент сработал бот, остановивший массовые ликвидации, у всех бирж есть такой (hex или dex бот, уже не помню). Суммарный убыток - 2 миллиона долларов.

Решение проблемы - просто заблочить возможность торговать активом, установив максимально допустимый размер обеспечения в 0.01 (считай просто 0).

Из-за чего возникла ситуация?

Ситуация возникла, очевидно, из-за вайб-кодинга. Ребята разрабатывают стартап, полностью пиля код на Claude с минимальным пониманием, что им Claude вообще генерит. Давайте в этом убеждаться. Я пошел чуть дальше разборов из статьи, которую привел, чтобы донести до вас масштаб проблемы.

Как ребята работают

Вот ссылка на косячный мр из репозитория стартапа. Тот самый мр ценой в 2 миллиона. По этой ссылке можете полазать и сами во всем убедиться. Но скрины, конечно же, оставлю, так как проект может долго не прожить с таким подходом. Давайте выделим самое главное:

-2

Вот можно прям на этом статью и заканчивать - лишь 17 из 28 джоб с тестами прошли, в соавторах Claude. Можете проверить, это джобы именно с тестами, поэтому далее будем для простоты называть это просто "тесты". И такое творение вливается в мастер. Едем дальше.

-3

Вот что происходило с репозиторием сразу после факапа. Да, весь код им по-прежнему генерит Claude, но хотя бы по тестам стало примерно ок. Будто бы стали получше "упрашивать" его написать нормальный код. Но мра с исправлением ошибки, или хотя бы отката не видно. Не понятно, исправили проблему или же нет. Или по-прежнему стоит лимит в 0.01 бакс, а ребята просто забили.

Затем еще веселее - в проект стали вливать мры от не верифицированного аккаунта.

-4

Видимо, факапов с вайб-кодингом было мало, и чтобы окончательно убить веру инвесторов/пользователей в проект, решили пустить неизвестного покодить. У которого по заветам мэйнтейнеров проекта тоже проходит лишь половина тестов. И можно придумать 1000 и 1 отмазку ребятам, но с точки зрения инвесторов/пользователей проектом - ПЛЕВАТЬ, какие у них причины, не верифицированные не должны пушить в репозиторий проекта!

Ну и в завершение:

-5

Да, по-прежнему все генерит Claude, по-прежнему не проходят тесты.

И можно привести много доводов о том, что все тесты и не должны проходить, мол это нормально (и это действительно нормально). НО НЕ В ФИН-ТЕХЕ! Вообразите масштаб проблемы - за ваши деньги отвечает код, сгенерированный ИИ, а разработчики вообще не понимают, что он им генерит, как работают тесты и работают ли они вообще, да и к тому же в репозиторий ФИН-ТЕХА вливается код от не пойми кого с половиной проваленных тестов! Я понимаю, когда не прошло до 20% тестов, но когда у тебя падает ПОЛОВИНА тестов - стоит задуматься, а они вообще нужны? Они для кого и зачем сделаны, если просто игнорируются? Или у фин-техов старая новая стратегия - тестировать боем?

В противовес могу привести пример опенсорсного проекта Apache Superset. Это НЕ фин-тех проект, это просто система визуализации данных. В ней нет персональных данных, финансовых транзакций и т.д. И просто сравните уровень ответственности

-6
  • Больше половина коммитов с зелеными тестами (там уже и джобы-билды вперемешку с тестами, справедливости ради)
  • В обратном случае количество проваленных тестов не более 15% от общего количества, что как раз-таки является нормой
  • Все коммиты строго от верифицированных аккаунтов
  • Крайне мало коммитов с использованием Claude (но, к сожалению, они есть, это дерьмо захлестнет и испортит все, до чего дотянется)

Ну и на последок

-7

Такие нынче фин-техи. Даже не знаю, какой итог тут можно подвести. Лишь одна общая мысль рождается. Эффективное использование ИИ возможно только тогда, когда ты сперва стал кодером, а затем вайб-кодером, а не наоборот.